ABAP宏--Macros

定义语法

DEFINE macro.

... &1 ... &9 ...

END-OF-DEFINITION.

调用语法:

macro [p1 p2 ... ].

最多时能有9参数

 

例子:

 

DATA: result TYPE i,

n1 TYPE i VALUE 5,

n2 TYPE i VALUE 6.

 

DEFINE operation.

result = &1 &2 &3.  *&1 &2 &3是参数

output &1 &2 &3 result.

END-OF-DEFINITION. * operation是定义的宏的名称

 

DEFINE output.

write: / 'The result of &1 &2 &3 is', &4.

END-OF-DEFINITION.

 

operation 4 + 3.

operation 2 ** 7.

operation n2 - n1. 

 

Notes:

1,与子程序不同的是,宏通过&N接收传入参数,不需要定义接收参数的类型及格式。

宏只能被本程序中定义于宏后面的语句所调用,宏一般定义于程序最开始,而子程序则可以放在程序中的任意位置。

2, 以前,若叙述的宏在当前程序中未定义,只会在用TYPE-POOLS语句加载的的Type groups中进行搜索。

但现在会在所有可用的Type groups中搜索。

3,若ABAP编译器在当前程式或可用的Type groups中都未搜到该叙述的宏,那么它会搜索TRMAC表。

TRMAC表中的宏跟Type groups中命名规则不同,therefore nothing should be hidden。

posted @ 2014-02-24 10:32  xiaoliziwangli  阅读(662)  评论(0编辑  收藏  举报