*==========================================================*
* 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
ALV输出示例
最新推荐文章于 2021-01-13 04:40:14 发布