SAP ABAP 宏

2018-01-01 12:56 更新

如果我們想在程序中多次重復(fù)使用同一組語(yǔ)句,我們需要將它們包含在宏中。 例如,宏可用于長(zhǎng)計(jì)算或用于編寫復(fù)雜的WRITE語(yǔ)句。 我們只能在定義它的程序中使用宏。 宏定義應(yīng)在程序中使用宏之前發(fā)生。

宏是基于占位符設(shè)計(jì)的。 占位符的工作方式類似于C語(yǔ)言中的指針。 您可以在DEFINE ... END-OF-DEFINITION語(yǔ)句中定義一個(gè)宏。

以下是宏定義的基本語(yǔ)法:

DEFINE <macro_name>. <statements> 
END-OF-DEFINITION. 
   ...... 
  
   <macro_name> [<param1> <param2>....].

704/5000在調(diào)用它之前必須首先定義一個(gè)宏。 ...。 替換宏定義中包含的ABAP語(yǔ)句中的占位符和1 ...。

宏定義中占位符的最大數(shù)量為9。 也就是說(shuō),當(dāng)執(zhí)行程序時(shí),SAP系統(tǒng)用適當(dāng)?shù)恼Z(yǔ)句替換宏,并且用參數(shù)param1,param2,... param9替換占位符&1,&2,...,&9。 我們可以在另一個(gè)宏中調(diào)用宏,但不能調(diào)用同一個(gè)宏。

轉(zhuǎn)到事務(wù)SE38。 創(chuàng)建一個(gè)新程序ZMACRO_TEST以及短文本字段中的描述,以及類型和狀態(tài)等適當(dāng)屬性,如以下屏幕截圖所示:

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個(gè)復(fù)選框。 在執(zhí)行程序時(shí),讓我們選擇S2復(fù)選框。

Macro Program Checkbox

上面的代碼產(chǎn)生以下輸出:

A Macro Program 
 
This is Macro 2

如果選中所有復(fù)選框,代碼將生成以下輸出:

A Macro Program 
 
This is Macro 1 This is Macro 2 This is Macro 3
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)