前言
SAP 常用的就是报表,那么一个简单的ALV 报表如何实现。
创建ABAP报表
事务码:SE38,开始创建。另报表程序命名一般由规范约束,请以Z开头,如图:
代码编写
这里不仔细阐述,直接贴代码,看结果。
REPORT ZGUO_TEST.
*调用数据表
TABLES: SPFLI.
*定义、申明变量
TYPE-POOLS: SLIS.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GT_SPFLI TYPE TABLE OF SPFLI WITH HEADER LINE.
*初始化界面
SELECT-OPTIONS:
P_CARRID FOR SPFLI-CARRID,
P_CONNID FOR SPFLI-CONNID.
*初始化列宽
INITIALIZATION.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*设计form数据
START-OF-SELECTION.
PERFORM FRM_LOAD_DATA.
*&---------------------------------------------------------------------*
*& Form FRM_LOAD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_LOAD_DATA.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SPFLI FROM SPFLI WHERE CARRID IN P_CARRID AND CONNID IN P_CONNID.
PERFORM FRM_FIELD.
*函数
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = GT_FIELDCAT
I_SAVE = 'A'
IS_LAYOUT = LS_LAYOUT
TABLES
T_OUTTAB = GT_SPFLI.
ENDFORM. "FRM_LOAD_DATA
*显示栏位
FORM FRM_FIELD.
DATA: LS_FCAT LIKE LINE OF GT_FIELDCAT.
REFRESH: GT_FIELDCAT.
CLEAR: GT_FIELDCAT.
*显示数据表格ALV的栏位
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CARRID'.
LS_FCAT-REPTEXT_DDIC = 'Airline Code'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CONNID'.
LS_FCAT-REPTEXT_DDIC = 'Flight Connection Number'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'COUNTRYFR'.
LS_FCAT-REPTEXT_DDIC = 'Country Key'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CITYFROM'.
LS_FCAT-REPTEXT_DDIC = 'Departure city'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'AIRPFROM'.
LS_FCAT-REPTEXT_DDIC = 'Departure airport'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'COUNTRYTO'.
LS_FCAT-REPTEXT_DDIC = 'Country Key'.
APPEND LS_FCAT TO GT_FIELDCAT.
ENDFORM. "FRM_FIELD
结果,如图:
总结:
本文仅仅简单介绍了ABAP的ALV使用,后续会继续完善增加功能和事件等。