SAP-ABAP-一般FUNCTION ALV代码示例
复制粘贴即可使用,只需要修改一下几点即可实现ALV报表展示
1.TY_ALV的定义,这是展示的alv的结构
2.选择屏幕
3.PERFORM GET_DATA.的内容,在里面写入报表的取值即可,ALV的展示表是GT_ALV
4.FIELDCAT 报表展示的清单
5.gui状态,不写会导致按钮报错
6.选择屏幕文本
TABLES : BKPF,BSEG.
"定义内表
TYPES:BEGIN OF TY_ALV,SEL TYPE C ,BUKRS TYPE BSEG-BUKRS ,BELNR TYPE BSEG-BELNR ,GJAHR TYPE BSEG-GJAHR ,BUZEI TYPE BSEG-BUZEI ,WRBTR TYPE BSEG-WRBTR ,HKONT TYPE BSEG-HKONT ,SHKZG TYPE BSEG-SHKZG ,MWSKZ TYPE BSEG-MWSKZ .TYPES END OF TY_ALV.
"定义内表和工作区
DATA:GT_ALV TYPE STANDARD TABLE OF TY_ALV,GS_ALV TYPE TY_ALV,GS_LAYOUT TYPE LVC_S_LAYO,GT_FCAT TYPE LVC_T_FCAT,GT_EVENTS TYPE SLIS_T_EVENT.SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_BUKRS FOR BKPF-BUKRS , "公司代码S_GJAHR FOR BKPF-GJAHR , "会计年度S_MONAT FOR BSEG-H_MONAT , "过账期间S_BLART FOR BKPF-BLART , "凭证类型S_HKONT FOR BSEG-HKONT . "科目
SELECTION-SCREEN END OF BLOCK BLK1.
**********************************************************************
* INITIALIZATION
**********************************************************************
INITIALIZATION.
**********************************************************************
* AT SELECTION-SCREEN OUTPUT *
**********************************************************************
AT SELECTION-SCREEN OUTPUT.
**********************************************************************
* AT SELECTION-SCREEN.
**********************************************************************
AT SELECTION-SCREEN.
**********************************************************************
* S T A R T O F S E L E C T I O N *
**********************************************************************
START-OF-SELECTION.PERFORM GET_DATA.PERFORM PROCESS_DATA.PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form FRM_AUTH_CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_AUTH_CHECK ."
" AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
" ID 'BUKRS' FIELD S_BUKRS
" ID 'ACTVT' FIELD '03'.
" IF SY-SUBRC <> 0.
" MESSAGE E001(00) WITH '您没有该公司的权限' S_BUKRS.
" ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM GET_DATA .SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE @GT_ALV UP TO 10 ROWS.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM PROCESS_DATA .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .PERFORM FRM_SET_LAYOUT.PERFORM FRM_SET_EVENT.PERFORM FRM_SET_FIELDCAT.PERFORM FRM_DISPLAY_ALV.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*& text alv 布局
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_SET_LAYOUT .CLEAR GS_LAYOUT.GS_LAYOUT-CWIDTH_OPT = 'X'.GS_LAYOUT-SEL_MODE = 'A'.GS_LAYOUT-BOX_FNAME = 'SEL'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_SET_FIELDCAT .DATA: LS_FCAT LIKE LINE OF GT_FCAT.DATA: LV_INDEX TYPE I.DEFINE MCR_BUILD_FCAT.lv_index = lv_index + 1.CLEAR ls_fcat.ls_fcat-col_pos = lv_index.ls_fcat-fieldname = &2.ls_fcat-ref_field = &3.ls_fcat-ref_table = &4.ls_fcat-no_out = &5.ls_fcat-coltext = &6.ls_fcat-scrtext_l = &6.ls_fcat-scrtext_m = &6.ls_fcat-scrtext_s = &6.IF ls_fcat-fieldname = 'ZNUM'.""改成需要去前导零的字段ls_fcat-no_zero = 'X'.ENDIF.APPEND ls_fcat TO &1.CLEAR ls_fcat.END-OF-DEFINITION.
*** ALV1 fieldcat 设置字段
* - 固定字段MCR_BUILD_FCAT GT_FCAT 'BUKRS ' 'BUKRS ' 'BSEG' '' '公司代码'.MCR_BUILD_FCAT GT_FCAT 'BELNR ' 'BELNR ' 'BSEG' '' '凭证编号'.MCR_BUILD_FCAT GT_FCAT 'GJAHR ' 'GJAHR ' 'BSEG' '' '财年'.MCR_BUILD_FCAT GT_FCAT 'BUZEI ' 'BUZEI ' 'BSEG' '' '行项目'.MCR_BUILD_FCAT GT_FCAT 'WRBTR ' 'WRBTR ' 'BSEG' '' '金额'.MCR_BUILD_FCAT GT_FCAT 'HKONT ' 'HKONT ' 'BSEG' '' '科目'.MCR_BUILD_FCAT GT_FCAT 'SHKZG ' 'SHKZG ' 'BSEG' '' '借贷'.MCR_BUILD_FCAT GT_FCAT 'MWSKZ ' 'MWSKZ ' 'BSEG' '' '税码'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_EVENT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_SET_EVENT.DATA:LS_EVENT LIKE LINE OF GT_EVENTS.LS_EVENT-NAME = 'USER_COMMAND' . "用户响应事件LS_EVENT-FORM = 'FRM_USER_COMMAND'.APPEND LS_EVENT TO GT_EVENTS.LS_EVENT-NAME = 'PF_STATUS_SET' . "工具栏事件LS_EVENT-FORM = 'FRM_SET_STATUS'.LS_EVENT-NAME = 'DATA_CHANGED' . "修改事件LS_EVENT-FORM = 'frm_alv_data_changed'.APPEND LS_EVENT TO GT_EVENTS.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .DATA ls_grid_settings TYPE LVC_S_GLAY .ls_grid_settings-edt_cll_cb = 'X' .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGI_CALLBACK_PROGRAM = SY-REPIDIS_LAYOUT_LVC = GS_LAYOUTIT_FIELDCAT_LVC = GT_FCATIT_EVENTS = GT_EVENTSi_grid_settings = ls_grid_settingsI_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'I_SAVE = 'A'TABLEST_OUTTAB = GT_ALVEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
FORM FRM_SET_STATUS USING P_EXTAB TYPE SLIS_T_EXTAB .SET PF-STATUS 'STANDARD'.SET TITLEBAR 'STANDARD'.
ENDFORM.
FORM FRM_USER_COMMAND USING P_UCOMM TYPE SY-UCOMMP_RS_SELFIELD TYPE SLIS_SELFIELD.READ TABLE GT_ALV INTO DATA(LS_ALV) INDEX P_RS_SELFIELD-TABINDEX .CASE P_UCOMM.WHEN '&DATA_SAVE' . " 保存数据PERFORM FRM_SAVE_DATA .ENDCASE.P_RS_SELFIELD-REFRESH = 'X' . " 当用户在显式界面上对数据进行修改时,同时内表中的数据也随之刷新
ENDFORM. " frm_alv_user_command
FORM FRM_SAVE_DATA .LOOP AT GT_ALV INTO DATA(LS_ALV) WHERE SEL = 'X' .ENDLOOP.
ENDFORM .
form frm_alv_data_changed using p_changed_data type ref to cl_alv_changed_data_protocol.data: field_name(20),modified_cells type lvc_s_modi.data: l_city like spfli-cityto.field-symbols <field_value>.loop at p_changed_data->mt_mod_cells into modified_cells . "" where fieldname = 'C'.READ TABLE GT_ALV INDEX modified_cells-ROW_ID ASSIGNING FIELD-SYMBOL(<FS_ALV>) .IF SY-SUBRC = 0.""alv数据变化了,其他字段同步修改ENDIF.endloop.
endform.
SAP-ABAP-一般FUNCTION ALV代码示例相关推荐
- 74. 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能
文章目录 ABAP 应用日志对象的概念和创建 如何创建需要通过应用日志记录的消息(message) 使用应用日志创建 API 进行日志记录的创建 使用事物码 SLG1 查看生成的应用日志内容 总结 笔 ...
- SAP ABAP ZBA_R005获得事务代码分段,完成关键用户参数权限
ERP项目有这样一个场景: 我们需要在SAP_ALL全部的授权中,只拿掉BASIS相关和SPRO后台配置入口的权限,剩下99%的权限给关键用户使用. 我们需要在10万个事务代码中,把BASIS的几个T ...
- 75. SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍
文章目录 什么是 Checkpoint Group 如何查看 Checkpoint Group 里记录的内容 如何创建 activation variant 有选择性地控制 ABAP 程序里断点的触发 ...
- SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍试读版
本教程前一篇文章介绍的内容: 74. 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能 有读者向我提问:一个 ABAP 程序植入了应用日志的记录功能之后,有没有 ...
- SAP FUNCTION ALV、SALV开发总结
文章目录 1.ABAP 编程中的三种ALV 的展示方式 2.FUNCTION ALV 的两种实现方式及常用参数分析总结 3. FUNCTION ALV ALV常见功能点实现 3.1 ALV编辑功能实现 ...
- 【SAP Abap】SAP ALV开发(REUSE_ALV_GRID_DISPLAY_LVC)全网最详细 DEMO
SAP ALV开发(REUSE_ALV_GRID_DISPLAY_LVC)全网最详细 DEMO 1.ALV 简介 2.演示程序 1.ALV 简介 ALV 报表程序,是我们在 SAP 项目中最常开发的程 ...
- ABAP:利用SAP定时器自动刷新ALV
ABAP:利用SAP定时器自动刷新ALV 曾于无意之中发现,SAP系统中有个名为CL_GUI_TIMER的类,测试下来发现还是挺好用的,比网上那些自动刷新的例子直观多了.这里我们就做个演示实例. 先做 ...
- SAP abap alv报表实例
这是一个sap alv报表实例 REPORT ztest005.*定义类型组 TYPE-POOLS: abap,slis.*定义ALV变量 DATA : lt_fieldcat TYPE slis_t ...
- 浅谈 SAP ABAP 系统里的 ALV 输出方式实现
由于国情原因,ABAP ALV相关的报表开发在国内众多SAP技术交流群里永远都是一个热门话题. 最近Jerry和朋友的技术交流群里,郭爷向大家介绍了ALV Integrated Data Access ...
最新文章
- 1035等差数列末项计算
- 解决【Bootstrap‘s JavaScript requires jQuery】的问题
- 禁止 VMware Fusion 自动调整 Windows 分辨率
- HTTP basic auth
- 一个SCSS里mixin的使用例子
- Azure 内容审查器之羞羞图审查
- 【转】GitHub入门详细讲解
- 印度软件水平和中国的程序员
- JavaScript学习之—prototype
- Spring Cloud Stream
- 爬虫之代理和cookie的处理
- 最好的git命令行基础使用教程 windows
- CF724G. Xor-matic Number of the Graph
- 教学案例 计算机,计算机教学案例
- 光猫(吉比特h2-2)超级用户名与密码
- 华为研发模式演进历程
- 期刊论文发表的格式详细介绍
- 充气泵方案设计-汽车打气泵PCBA
- ubuntu系统下快速安装谷歌浏览器(图文教程)
- 实现文章上一篇和下一篇的两种方式
热门文章
- 新浪乐居——走进用友软件园活动
- ITK系列4_ ITK访问图像像素数据
- 300元搭建远程下载+视频服务器 Debian nginx+aria2+各种视频服务(smb+nfs+dlna)
- 子网掩码划分,交换机,SecureCRT命令行
- 数据库的读写分离方案
- Could not determine artifacts for“xxx“No cached version available for offline mode
- UglifyJs无法压缩vendor.js: ERROR in static/js/vendor.xxx.js from UglifyJs
- Ubuntu双系统+pytorch环境搭建日记
- 经验 | 如何编写优质嵌入式C代码
- pytorch python学习(三)