复制粘贴即可使用,只需要修改一下几点即可实现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代码示例相关推荐

  1. 74. 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能

    文章目录 ABAP 应用日志对象的概念和创建 如何创建需要通过应用日志记录的消息(message) 使用应用日志创建 API 进行日志记录的创建 使用事物码 SLG1 查看生成的应用日志内容 总结 笔 ...

  2. SAP ABAP ZBA_R005获得事务代码分段,完成关键用户参数权限

    ERP项目有这样一个场景: 我们需要在SAP_ALL全部的授权中,只拿掉BASIS相关和SPRO后台配置入口的权限,剩下99%的权限给关键用户使用. 我们需要在10万个事务代码中,把BASIS的几个T ...

  3. 75. SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍

    文章目录 什么是 Checkpoint Group 如何查看 Checkpoint Group 里记录的内容 如何创建 activation variant 有选择性地控制 ABAP 程序里断点的触发 ...

  4. SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的使用方法介绍试读版

    本教程前一篇文章介绍的内容: 74. 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能 有读者向我提问:一个 ABAP 程序植入了应用日志的记录功能之后,有没有 ...

  5. SAP FUNCTION ALV、SALV开发总结

    文章目录 1.ABAP 编程中的三种ALV 的展示方式 2.FUNCTION ALV 的两种实现方式及常用参数分析总结 3. FUNCTION ALV ALV常见功能点实现 3.1 ALV编辑功能实现 ...

  6. 【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 项目中最常开发的程 ...

  7. ABAP:利用SAP定时器自动刷新ALV

    ABAP:利用SAP定时器自动刷新ALV 曾于无意之中发现,SAP系统中有个名为CL_GUI_TIMER的类,测试下来发现还是挺好用的,比网上那些自动刷新的例子直观多了.这里我们就做个演示实例. 先做 ...

  8. SAP abap alv报表实例

    这是一个sap alv报表实例 REPORT ztest005.*定义类型组 TYPE-POOLS: abap,slis.*定义ALV变量 DATA : lt_fieldcat TYPE slis_t ...

  9. 浅谈 SAP ABAP 系统里的 ALV 输出方式实现

    由于国情原因,ABAP ALV相关的报表开发在国内众多SAP技术交流群里永远都是一个热门话题. 最近Jerry和朋友的技术交流群里,郭爷向大家介绍了ALV Integrated Data Access ...

最新文章

  1. 1035等差数列末项计算
  2. 解决【Bootstrap‘s JavaScript requires jQuery】的问题
  3. 禁止 VMware Fusion 自动调整 Windows 分辨率
  4. HTTP basic auth
  5. 一个SCSS里mixin的使用例子
  6. Azure 内容审查器之羞羞图审查
  7. 【转】GitHub入门详细讲解
  8. 印度软件水平和中国的程序员
  9. JavaScript学习之—prototype
  10. Spring Cloud Stream
  11. 爬虫之代理和cookie的处理
  12. 最好的git命令行基础使用教程 windows
  13. CF724G. Xor-matic Number of the Graph
  14. 教学案例 计算机,计算机教学案例
  15. 光猫(吉比特h2-2)超级用户名与密码
  16. 华为研发模式演进历程
  17. 期刊论文发表的格式详细介绍
  18. 充气泵方案设计-汽车打气泵PCBA
  19. ubuntu系统下快速安装谷歌浏览器(图文教程)
  20. 实现文章上一篇和下一篇的两种方式

热门文章

  1. 新浪乐居——走进用友软件园活动
  2. ITK系列4_ ITK访问图像像素数据
  3. 300元搭建远程下载+视频服务器 Debian nginx+aria2+各种视频服务(smb+nfs+dlna)
  4. 子网掩码划分,交换机,SecureCRT命令行
  5. 数据库的读写分离方案
  6. Could not determine artifacts for“xxx“No cached version available for offline mode
  7. UglifyJs无法压缩vendor.js: ERROR in static/js/vendor.xxx.js from UglifyJs
  8. Ubuntu双系统+pytorch环境搭建日记
  9. 经验 | 如何编写优质嵌入式C代码
  10. pytorch python学习(三)