宏(Macros)是一段獨立的代碼,能實作資料的運算與輸出,功能與子程式類似,主要應用于同一程式中某些重複的運算,以簡化代碼,其定義文法如下:
DEFINE INCREMENT. "INCREMENT為自定義宏的名稱。
......
END-OF-DEFINITION.
對宏的參數傳遞通過&N來實作,N為整數,即調該宏的參數順序。
DEFINE INCREMENT. "定義宏
ADD 1 TO &1.
WRITE: / &1.
WRITE: / &2.
DATA:number TYPE I VALUE 1,
str(10) TYPE C VALUE 'HELLO SAP'.
INCREMENT number str. "調用宏
與子程式不同的是,宏通過&N(N為索引)接收傳入的參數,不需要定義接收參數的類型及格式。宏隻能被本程式中定義于宏後面的語名所調用,宏一般定義于程式最開始。