宏(Macros)是一段独立的代码,能实现数据的运算与输出,功能与子程序类似,主要应用于同一程序中某些重复的运算,以简化代码,其定义语法如下:
DEFINE INCREMENT. "INCREMENT为自定义宏的名称。
......
END-OF-DEFINITION.
对宏的参数传递通过&N来实现,N为整数,即调该宏的参数顺序。
DEFINE INCREMENT. "定义宏
ADD 1 TO &1.
WRITE: / &1.
WRITE: / &2.
END-OF-DEFINITION.
DATA:number TYPE I VALUE 1,
str(10) TYPE C VALUE 'HELLO SAP'.
INCREMENT number str. "调用宏
与子程序不同的是,宏通过&N(N为索引)接收传入的参数,不需要定义接收参数的类型及格式。宏只能被本程序中定义于宏后面的语名所调用,宏一般定义于程序最开始。