SAP ABAP 報表事件

2021-02-24 14:23:38 浏览数 (1)

程序運行結構–事件

  1. INITIALIZATION. 初始化字段,設定selection-screen畫面顯示之前的字段內容。設定GUI status和Titlebar 的內容。
  2. AT SELECTION-SCREEN. 輸入Selection-screen值前或后觸發的事件。 AT SELECTION-SCREEN.在Selection-screen中輸入的值有變更時執行的事件; AT SELECTION-SCREEN ON field. 可用於對輸入值的正確性進行判斷,可提示錯誤; AT SELECTION-SCREEN ON END OF field.多行輸入時觸發事件,可以判斷上限和下限; AT SELECTION-SCREEN ON VALUE-REQUEST FOR field.自定義輸入框的F4事件。range類型需指定low或high; AT SELECTION-SCREEN ON HELP-REQUEST FOR field.自定義輸入框的F1事件。range類型需指定low或high; AT SELECTION-SCREEN ON RADIOBUTTON GROUP grpname.單選按鈕事件,選中組內按鈕時觸發。 AT SELECTION-SCREEN ON BLOCK block.框架的觸發事件。 AT SELECTION-SCREEN OUTPUT.響應屏幕上的事件,可以修改輸入框中的值。可以帶出,也可以修改輸入的值。
代码语言:javascript复制
DATA field1(10) TYPE c.
SELECT-OPTIONS sel_opt1 FOR field1.
AT SELECTION-SCREEN OUTPUT.
  IF sel_opt1-low = '123'.
    sel_opt1-high = '456'.
    MODIFY sel_opt1 INDEX 1 TRANSPORTING high.
  ENDIF.
  1. START-OF-SELECTION. 完成選擇屏幕上字段的初始值設定及檢查后,開始讀取數據之前觸發。
  2. END-OF-SELECTION. 查詢完所有數據后,在輸出到畫面之前執行。

一個事件開始后,沒有手動關閉事件的語句,只有在下一個事件開始時,才會自動關閉當前事件。

程序結構–List Process事件

  1. TOP-OF-PAGE. 在遇到第一個write語句之前;遇到SKIP、ULINE時;當前頁面行數超過line-count定義的行數;New-Page命令時會觸發TOP-OF-PAGE事件。 Top-of-page僅在新頁面輸出第一行之前觸發,並不是由New-page觸發。
  2. END-OF-PAGE. 指定當前頁頁腳。當頁行數超過Line-count時觸發。Line-count在Report後面定義REPORT ztest LINE-COUNT 10(2).10代表一頁的總行數,2代表頁腳要顯示的行數。未明確指定Line-count時,初始寬度為83,行數為60000行。如果程序中追加了New-page事件,則不會觸發。
  3. AT-LINE-SELECTION. 當雙擊報表的一行或按F2時觸發的事件。使用format時可以轉為單擊觸發。
代码语言:javascript复制
  FORMAT HOTSPOT on.
  WRITE:/ 'line2'.
  FORMAT HOTSPOT OFF.
  1. AT USER-COMMAND. 執行用function定義的功能,單擊按鈕時觸發的事件。
  2. TOP-OF-PAGE DURING LINE-SELECTION. 在重新使用write輸出時,報表索引sy-lsind加1,用於指定次級報表表頭。

0 人点赞