一,? 首先介紹一下 ABAP 的程序的類型:
Program type (程序類型)
|
Introductory statement (類型描述)
|
1
|
REPORT (報表)
|
M
|
PROGRAM (屏幕程序)
|
F
|
FUNCTION-POOL (函數組)
|
K
|
CLASS-POOL (類組)
|
J
|
CLASS-POOL (接口組)
|
T
|
TYPE-POOL (類型池)
|
二,? 下面介紹報表中用到的事件以及作用 :
1.????? LOAD-OF-PROGRAM :程序開始執行時候自動調用
這個事件在 SUBMIT , CALL TRANSACTION , PERFORM 等執行的時候系統會自動調用這個事件。所以無需聲明即可。
2.????? INITIALIZATION
( 1 ) . 只能用于報表程序
( 2 ) . 在選擇屏幕出現之前執行,如果用邏輯數據庫的話,這個是唯一能夠修改選擇屏幕初始值的地方。
( 3 ) . 通常的用法是在這里給選擇屏幕中的字段賦值。
3.????? AT SELECTION-SCREEN
( 1 ) . 其實就像一個 FORM ,所以在這個事件里聲明的變量都是局部變量。
( 2 ) . 根據 SY-UCOMM 這個系統變量可以判斷用戶的命令
( 3 ) . 在這個事件里響應的是屏幕上選擇條件中的事件,例如 CHECKBOX 的選擇與否, RADIOBUTTON 的選擇, LISTBOX 的選擇等等。所以分為以下幾個方面:
1. ... ON psel :在 PARAMETER 變化是觸發的事件
2. ... ON END OF sel : SELECT-OPTION 觸發的事件
3. ... ON VALUE-REQUEST FOR psel_low_high :選擇的幫助 (F4)
4. ... ON HELP-REQUEST FOR psel_low_high :選擇的幫助 (F1)
5. ... ON RADIOBUTTON GROUP radi :單選按鈕事件
6. ... ON BLOCK block :框架的觸發事件
7. ... OUTPUT :響應屏幕上的事件,修改選擇屏幕的唯一方法
4.????? START-OF-SELECTION
報表程序必須執行的事件,在進入第二屏幕之前觸發。
5.????? GET
獲得邏輯數據庫的值。前提是必須首先聲明邏輯數據庫。
6.????? END-OF-SELECTION
第二屏幕顯示完畢,結束處理。
7.????? MODULE
這個是當你調用自己定義的屏幕時,響應屏幕事件的方法。
8.????? ENDMODULE
9.????? CHECK
只對邏輯數據庫使用,檢查是否取得數據。
10.?? REJECT
同樣只對邏輯數據庫使用,退出。
11.?? STOP
結束一個處理塊。
12.?? RETURN
返回一個處理塊。
三,? 附加說明:
1.????? SET PF-STATUS :
基本語法格式: SET PF-STATUS pfstat.
擴展:
1. ... EXCLUDING f oder ... EXCLUDING itab
????? 這個是設置屏幕菜單,命令行等的命令,詳細地信息我會在后面關于菜單設計的時候說明。
2.????? SET TITLEBAR :
設置屏幕標題,在屏幕顯示之前調用。