ABAP中包含程序和宏的使用

1,包含程序:一种单纯的代码复用,相当于把代码段插入到引用该包含程序的位置,且不能与调用它的程序进行显示数据传递。包含程序必须被其他程序调用,并且不能调用自身。

* 对于大型程序,包含程序将主程序分割成独立的部分进行维护。它们是独立的,如果只需修改其中一个,则不需要改动整个程序。

* 若在多个程序使用相同的语句代码段,则可以将公用的代码部分编写到包含程序中,以确保同类型程序间的一致性。修改的时候,只需修改包含程序,所有引用该包含程序的报表都会自动更新。

调用包含程序,使用INCLUDE语句:(INCLUDE语句必须独占一行)

INCLUDE incl.

简单调用实例:

REPORT z_include_demo.

INCLUDE z_include_pgm. 

SKIP.

WRITE: / 'Report Output' .

2,宏:另一种单纯的代码复用,不存在参数传递机制,往往只是为了增强程序的可读性。可以从宏中调用另一个宏,但是宏不能调用自身。

定义宏,使用DEFINE语句:宏的定义不属于数据定义和声明部分,所以宏的定义一定要出现在引用它的程序之前。

DEFINE macro.

        <statements>

END-OF-DEFINITION.

该语句定义名为macro的宏。必须在DEFINE和END-OF-DEFINITION之间指定完整的语句。这些语句中可以包含最多九个占位符(&1,&2, ... ,&9)。占位符的意义在于暂时不指定代码,调用的时候进行代码替换。

完成定义之后,可以对其进行引用。

macro [p1 p2 ... p9].

简单使用宏实例:

REPORT z_macro_demo.

DATA: result TYPE i,

            int1 TYPE i VALUE 1,

            int2 TYPE i VALUE 2.

DEFINE operation.

result = &1 &2 &3.

output &1 &2 &3 result.

END-OF-DEFINITION.

DEFINE output.

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

END-OF-DEFINITION.

operation 1 + 2.

operation int2 - int1.

猜你喜欢

转载自blog.csdn.net/littlemangoyx/article/details/80235861