一个典型的报表程序是由许多的程序区块(Code Block)所组成,在区块间最好能加上一些
说明以利程序可读性,一个典型的报表程序格式如下:
* PROGRAM SOURCE HEADER : 说明程序名称及目的
* Program Name:
* Description:
* Date/Author:
* Table Update:
* Special Logic:
* Include:
*---------------------------------------------------------------
* MODIFICATION LOG : 程序修改更新记录
*---------------------------------------------------------------
* ChangeDate Programmer Request Description
* ========== ============= ============ ==========================
* NEW PROGRAM
*---------------------------------------------------------------
* REPORT NAME : 宣告程序名称及报表格式,
*------------------------------------------------------------------
REPORT Z_____ NO STANDARD PAGE HEADING
MESSAGE-ID __ “ 所使用的MESSAGE
LINE-COUNT ___ “ 每页报表列数 LINE-SIZE ___. “ 每页报表宽度
* TABLE DESCRIPTION : 宣告程序会使用的TABLE *------------------------------------------------------------------
TABLES:
* DATA : 宣告程序所使用的变量及自定型态
*----------------------------------------------------------------
TYPES:
DATA:
* SELECTION SCREEN / OPTION / PARAMETER : 屏幕输入报表筛选条件 *-----------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK ____
SELECT-OPTIONS:
SELECTION-SCREEN END OF BLOCK ___ 49
* INITIALIZATION : 启动程序开始执行, 如SELECT-OPTION及PARAMETER *---------------------------------------------------------------- INITIALIZATION. INCLUDE ____.
* AT START SELECTION : 输入结束后启动的区块, 如按下<F8>
*--------------------------------------------------------------- START-OF-SELECTION. SET PF-STATUS ____. “ 指定报表执行时所用的 GUI-STATUS名称
PERFORM READ_DATA.
PERFORM PROCESS_DATA.
PERFORM PRINT_DATA.
PERFORM PRINT_SUMMARY.
* AT USER Commaand : 执行在GUI-STATUS中自定的命令
*--------------------------------------------------------------------
AT USER_COMMAND.
* AT LINE SELECTION : 由在报表中按下<F2>或Double-Click启动 *--------------------------------------------------------------------
AT LINE-SELECTION.
* TOP OF PGAE : 每页开始打印时执行, 用于定义报表表头
*--------------------------------------------------------------------
* END OF PAGE : 报表打印完最后一页后启动
*---------------------------------------------------------------------
END-OF-PAGE
* END OF SELECTION : 在结束打印数据后启动, 如可用来印出USER输入的条件
*---------------------------------------------------------------------
END-OF-SELECTION. INCLUDE _____
* FORM : 撰写程序中所使用到的子程序
*-------------------------------------------------------------
* Read Data : 自TABLE读取数据放入Internal Table
*-------------------------------------------------------------
50
FORM READ_DATA. SELECT * FROM ______ INTO _______ WHERE _______.
IF SY-SUBRC = 0.
ENDIF. APPEND _____. “ 增加Internal Table元素
ENDSELECT.
ENDFORM.
* Process Data : 处理Internal Table的数据, 如排序及汇总 *-------------------------------------------------------------
FORM PROCESS_DATA. ENDFORM. * Print Data : 依序输出 Internal Table的数据 *-------------------------------------------------------------
FORM PRINT_DATA.
ENDFORM.
* Print Summary : 印出数值资料加总
*-------------------------------------------------------------
FORM PRINT_SUMMARY.
ENDFORM.
* Include Program : 列出所含入的其它程序source code, 如子程序
*-------------------------------------------------------------
INCLUDE _____
INCLUDE _____