ALV输出示例
*==========================================================** ZTEST ALV事例程序01 **==========================================================** 作成者: 莫怀远 ** 作成日期: 2006/11/29 ** 变更履历: yyyy/mm/dd xxx ** text ** yyyy/mm/dd xxx ** text ** 概要内容:自定义ALV输出项目事例 **----------------------*REPORT ZTEST0001111 NO STANDARD PAGE HEADING.*==========================================================** TYPE-POOLS*==========================================================*TYPE-POOLS SLIS.*==========================================================** TABLES*==========================================================*TABLES: EKPO.*----------------DEFINE MACRO------------------------------*DEFINE ADD_FIELD. WA_FIELD-FIELDNAME = &1. WA_FIELD-REPTEXT_DDIC = &2. APPEND WA_FIELD TO IT_FIELD.END-OF-DEFINITION.*==========================================================** 定义变量和字段组*==========================================================*DATA: G_REPID TYPE SY-REPID, GS_LAYOUT TYPE SLIS_LAYOUT_ALV.*==========================================================** TYPES定义*==========================================================*TYPES : BEGIN OF TY_EKPO, EBELN LIKE EKPO-EBELN, AEDAT LIKE EKPO-AEDAT, TXZ01 LIKE EKPO-TXZ01, MENGE LIKE EKPO-MENGE, MEINS LIKE EKPO-MEINS, NETWR LIKE EKPO-NETWR, END OF TY_EKPO.*==========================================================** 定义内部表和工作区*==========================================================*DATA: WA_FIELD TYPE SLIS_FIELDCAT_ALV, IT_FIELD TYPE SLIS_T_FIELDCAT_ALV.DATA : WA_EKPO TYPE TY_EKPO, IT_EKPO TYPE STANDARD TABLE OF TY_EKPO. "自定义用*==========================================================** 抬头设置(自定义用)ADD_FIELD 'EBELN' '订单编号'.ADD_FIELD 'AEDAT' '订单日期'.ADD_FIELD 'TXZ01' '物料名称'.ADD_FIELD 'MENGE' '数 量'.ADD_FIELD 'MEINS' '单 位'.ADD_FIELD 'NETWR' '金 额'.*==========================================================** SELETION-SCREEN*==========================================================*SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME . SELECT-OPTIONS: S_AEDAT FOR EKPO-AEDAT.SELECTION-SCREEN END OF BLOCK BLOCK1.*==========================================================** START-OF-SELECTION*==========================================================*START-OF-SELECTION. PERFORM FRM_GET_DATA.*==========================================================** END-OF-SELECTION*==========================================================*END-OF-SELECTION. PERFORM FRM_OUTPUT_ALV.*&---------------------**& Form FRM_GET_DATA*&---------------------** 读取数据*----------------------*FORM FRM_GET_DATA. SELECT EBELN AEDAT TXZ01 MENGE MEINS NETWR INTO TABLE IT_EKPO FROM EKPO WHERE AEDAT IN S_AEDAT. IF SY-SUBRC <> 0. MESSAGE S208(00) WITH 'NO GET DATA!'. LEAVE LIST-PROCESSING. ENDIF.ENDFORM. " FRM_GET_DATA**&---------------------**& Form OUT_BY_ALV*&---------------------** ALV样式输出*----------------------*FORM FRM_OUTPUT_ALV.G_REPID = SY-REPID.GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.GS_LAYOUT-WINDOW_TITLEBAR = TEXT-101. "TITLE*TEXT-101(自定义ALV输出项目事例)CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = G_REPID* I_STRUCTURE_NAME = 'EKPO' "系统参照调用方法 IT_FIELDCAT = IT_FIELD "自定义调用方法 IS_LAYOUT = GS_LAYOUT "输出式样 I_SAVE = 'A' "报表可保存状态设定 TABLES T_OUTTAB = IT_EKPO. "报表明细数据ENDFORM. " FRM_OUTPUT_ALV