宏(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為索引)接收傳入的參數,不需要定義接收參數的類型及格式。宏只能被本程序中定義於宏后面的語名所調用,宏一般定義於程序最開始。