SAP开发涉及主要类型及结构简介
开发主要类型 1.REPORT (SE38)
2.FUNCTION(SE37) 3.DIALOG
4.SMARTFORM 5.USEREXIT 6.CATT&LSMW
1
一个典型的报表程序是由许多的程序区块(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 ___
* INITIALIZATION : 激活程序开始执行, 如SELECT-OPTION及PARAMETER *---------------------------------------------------------------- INITIALIZATION.
INCLUDE ____.
* AT START SELECTION : 输入结束后激活的区块, 如按下*--------------------------------------------------------------- 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 : 由在报表中按下或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
*------------------------------------------------------------- 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 _____