ABAP Help Document(6):2.1ABAP程序类型

2.Program structure

2.1ABAP程序类型

1. Executable program,可执行程序,使用SUBMIT,dynpro,使用Tcode执行selection screen,不能再Function Module中使用;

2. Class pool,类,使用Call,只能在Method中使用;

3. Function group or function pool,使用CALL FUNCTION执行;

4. Interface pool,接口;

5. Module pool,使用Tcode执行的dynpro;

6. Subroutine pool,子程序;

7. Type group or type pool,数据类型;

   

程序类型声明

1. REPORT;

2.PROGRAM;

3.FUNCTION POOL;

4.CLASS POOL;

5.INTERFACE POOL;

6. TYPE POOL;

示例1:

"function pool
FORM f_program_type_function.
  "Function Group
  "Function Pool命名规则
  "LXXXTOP,定义数据
  "LXXXDxx,定义本地class
  "LXXXUxx,function module实现;
  "LXXXPxx,本地class,method实现;
  "LXXXOxx,PBOmodule;
  "LXXXIxx,PAImodule;
  "LXXXExx,Event block;
  "LXXXFxx,子程序subroutine;
    
* Function group SAPLABAP_DOCU is structured from include programs. 
*
* *&---------------------------------------------------------------------* 
**&  Function Group SAPLABAP_DOCU 
**&---------------------------------------------------------------------* 
*
*INCLUDE labap_docutop.               " Global Declarations 
*
*INCLUDE labap_docue00.               " Load of Program 
*
*INCLUDE labap_docuuxx.               " Function Modules 
*
*INCLUDE labap_docuo01.               " PBO Modules 
*
*INCLUDE labap_docui01.               " PAI Modules 
*
*INCLUDE labap_docue01.               " Handling of Runtime-Events</ 
*
*INCLUDE labap_docup01.               " Class implementations 
*INCLUDE labap_docup02. 
*INCLUDE labap_docup03. 
*INCLUDE labap_docup04.  
*
*The function group includes the top include in the first place; it contains the FUNCTION-POOL statement and other include programs for data and class declarations: 
*
* *&---------------------------------------------------------------------* 
**&  Include           LABAP_DOCUTOP 
**&---------------------------------------------------------------------* 
*
*FUNCTION-POOL abap_docu. 
*
*INCLUDE labap_docud00.               " Global Data for Screens 
*
*INCLUDE labap_docud01.               " Classes for Docu Display 

ENDFORM.

示例2:

"程序类型
FORM f_program_type_report.
  "Report程序
  "语法:
*  REPORT rep [list_options]
*           [MESSAGE-ID mid]
*           [DEFINING DATABASE ldb]
*           [REDUCED FUNCTIONALITY].
  "[list_options]
  "[NO STANDARD PAGE HEADING],系统变量:sy-wtitl = 'N';
  "[LINE-SIZE width],系统变量:sy-linsz,最大值1023,默认为0;
  "[LINE-COUNT page_lines[(footer_lines)]],系统变量:sy-linct,0~60000;
  "示例:REPORT z_report LINE-COUNT 65(8) LINE-SIZE 132.

  "DEFINING DATABASE ldb
  "定义逻辑数据库
  "MESSAGE-ID mid
  "message id,指定程序使用message,message class表:T100
  "REDUCED FUNCTIONALITY ,只用于subroutine pools,应用于PROGRAM

  "Program程序
  "语法:
*  PROGRAM prog [list_options]
*             [MESSAGE-ID mid]
*             [REDUCED FUNCTIONALITY].
  "[list_options]忽略,[REDUCED FUNCTIONALITY]只在subroutine pools有效

ENDFORM.

示例3:

"语法:
  "CLASS-POOL [MESSAGE-ID id]. 
  
  "语法:
  "INTERFACE-POOL. 

示例4:

  "语法:
  "TYPE-POOL tpool.
原文地址:https://www.cnblogs.com/tangToms/p/14686928.html