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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值