SAP ABAP 宏

2018-01-01 12:56 更新

如果我们想在程序中多次重复使用同一组语句,我们需要将它们包含在宏中。 例如,宏可用于长计算或用于编写复杂的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以及短文本字段中的描述,以及类型和状态等适当属性,如以下屏幕截图所示:

New Program ZMACRO

下面是代码:

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复选框。

Macro Program Checkbox

上面的代码产生以下输出:

A Macro Program 
 
This is Macro 2

如果选中所有复选框,代码将生成以下输出:

A Macro Program 
 
This is Macro 1 This is Macro 2 This is Macro 3
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号