*==========================================================* * ZTEST ALV事例程序01 * *==========================================================* * 作成者: 莫怀远 * * 作成日期: 2006/11/29 * * 变更履历: yyyy/mm/dd xxx * * text * * yyyy/mm/dd xxx * * text * * 概要内容:自定义ALV输出项目事例 * *----------------------------------------------------------* REPORT ZTEST 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