SAP ABAP 宏
如果我们想在程序中多次重复使用同一组语句,我们需要将它们包含在宏中。 例如,宏可用于长计算或用于编写复杂的WRITE语句。 我们只能在定义它的程序中使用宏。 宏定义应在程序中使用宏之前发生。
宏是基于占位符设计的。 占位符的工作方式类似于C语言中的指针。 您可以在DEFINE ... END-OF-DEFINITION语句中定义一个宏。
以下是宏定义的基本语法:
DEFINE <macro_name>. <statements> END-OF-DEFINITION. ...... <macro_name> [<param1> <param2>....].
704/5000在调用它之前必须首先定义一个宏。 ...。 替换宏定义中包含的ABAP语句中的占位符和1 ...。
宏定义中占位符的最大数量为9。 也就是说,当执行程序时,SAP系统用适当的语句替换宏,并且用参数param1,param2,... param9替换占位符&1,&2,...,&9。 我们可以在另一个宏中调用宏,但不能调用同一个宏。
例
转到事务SE38。 创建一个新程序ZMACRO_TEST以及短文本字段中的描述,以及类型和状态等适当属性,如以下屏幕截图所示:
下面是代码:
REPORT ZMACRO_TEST. DEFINE mac_test. WRITE: 'This is Macro &1'. END-OF-DEFINITION. PARAMETERS: s1 type C as checkbox. PARAMETERS: s2 type C as checkbox. PARAMETERS: s3 type C as checkbox default 'X'. START-OF-SELECTION. IF s1 = 'X'. mac_test 1. ENDIF. IF s2 = 'X'. mac_test 2. ENDIF. IF s3 = 'X'. mac_test 3. ENDIF.
我们有3个复选框。 在执行程序时,让我们选择S2复选框。
上面的代码产生以下输出:
A Macro Program This is Macro 2
如果选中所有复选框,代码将生成以下输出:
A Macro Program This is Macro 1 This is Macro 2 This is Macro 3