ABAP 關於abap語言的乙個錯誤的理解

2021-08-22 20:15:50 字數 1380 閱讀 3013

在這麼多年的sap使用中,我一直以為不包塊在任何事件塊內的abap語句sap會自動新增到start-of-selection事件塊中,但今天無意被乙個新同事發現不是這樣。

仔細查閱sap的abap語言幫助,幫助對於「不包塊在任何事件塊內的abap語句」是這樣定義的:在report或者program語句到第乙個處理塊(處理塊不僅僅指事件塊,也包含過程等)之間出現的語句。這些語句才會自動插於到start-of-selection事件塊中。具體參見示例

示例1reportdemo_abap_events_1.

write / 'statement 1'.

form routine.

write / 'subroutine'.

endform.

write / 'statement 2'.

perform routine.

write / 'statement 3'.

執行的結果:

statement 1

在該例子中的紅色部分語句就沒有新增到start-of-selection事件塊中

示例2reportdemo_abap_events_2.

write / 'statement 1'.

form routine.

write / 'subroutine'.

endform.

start-of-selection.

write / 'statement 2'.

perform routine.

write / 'statement 3'.

執行的結果:

statement 1

statement 2

subroutine

statement 3

在該例子中的所有語句就沒有新增到start-of-selection事件塊中。

當然你按規範的方法寫**就不會出現上面的情況了,規範的**如下:

reportdemo_abap_events_3.

start-of-selection.

write / 'statement 1'.

write / 'statement 2'.

perform routine.

write / 'statement 3'.

form routine.

write / 'subroutine'.

endform.

另外提醒大家注意的在事件塊中定義的變數是全域性,且不要認為是事件塊範圍有效。

詳細的變數有效範圍說明參見:

ABAP 關於Data Reference的使用

data references 只能指向abap定義的基本資料或者基本資料組合體 定義資料參考變數 data references data dref type ref to data.指向任意型別,但在建立時必須指定物件型別 data dref type ref to data type.或者ty...

ABAP語言常用的系統欄位及函式

常用的系統變數如下 1.sy pagno當前頁號 2.sy datum當前時間 3.sy linsz當前報表寬度 4.sy linct當前報表長度 5.space空字元 6.sy subrc執行狀態為0,表示成功.7.sy uname 使用者名稱 8.sy uzeit當前時間 9.sy tcode當...

ABAP語言常用的系統欄位及函式

size medium 常用的系統變數如下 1.sy pagno當前頁號 2.sy datum當前時間 3.sy linsz當前報表寬度 4.sy linct當前報表長度 5.space空字元 6.sy subrc執行狀態為0,表示成功.7.sy uname 使用者名稱 8.sy uzeit當前時間...