报表过程事件
在报表运行过程中由系统自动控制、按照一定次序被触发的事件,其目的是从数据库中选择数据并整理,准备进行列表输出。
INITIALIZATION-初始化事件:用于程序初始化,例如选择屏幕中字段默认值的填充。
START-OF-SELECTION-选择开始事件:如果报表中含有选择屏幕,则在选择屏幕的处理结束后触发,是报表程序的默认事件块。
END-OF-SELECTION-选择结束事件:在所有逻辑数据库处理结束后触发,一般在该事件之中输出列表。
选择屏幕事件
AT SELECTION-SCREEN OUTPUT-选择屏幕PBO事件:显示选择屏幕之前触发。
AT SELECTION-SCREEN-选择屏幕PAI事件:用户在选择屏幕中执行某些功能后被触发。可用于输入不正确的提示。
一个函数、两个控制结构的使用
- 函数: REUSE_ALV_GRID_DISPLAY_LVC
调用此函数输出内表数据。 - 控制结构FIELD CATALOG(字段目录)
- 控制结构LAYOUT(布局控制)
两个触发事件
- 工具栏的自定义PF-STATUS
- 用户命令实现USER-COMMAND
输出ALV表头(实际项目较少使用)
以HTML的方式输出ALV表头。
调用函数: REUSE_ALV_GRID_DISPLAY_LVC
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT_LVC = FIELDCAT
IS_LAYOUT_LVC = LAYOUT
I_SAVE = 'A'
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = ITAB.
FIELD CATALOG(字段目录)
FIELDCAT用来控制ALV显示的网格中每个字段的属性,如对应内表字段,输出长度
、可编辑状态、颜色、标签文本、样式等。
传入ALV函数的FIELDCAT参考系统表类型LVC_T_FCAT,其工作区参考结构LVC_S_FCAT。如:
DATA: FIELDCAT TYPE LVC_T_FCAT.
DATA: FIELD TYPE LVC_S_FCAT.
LAYOUT(布局)
LAYOUT用来控制ALV显示的网格的整体布局,如选择模式、编辑状态、隐藏网格线、优化列宽、单元格和行颜色等。
传入ALV函数的LAYOUT参数系统结构LVC_S_LAYO,如:
DATA: LAYOUT TYPE LVC_S_LAYO.
转换例程(内部转换、外部转换):导入程序需要特别注意。
ALV颜色的优先级:单元格>行>列。