SAP屏幕事件的控制
1. INITALIZATION事件
该事件在屏幕未显示之前执行,对程序设置值及屏幕元素进行初始化赋值。
REPORT Y001.
PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM.
INITIALIZATION.
QUAL_DAY+6(2) = '01'.
QUAL_DAY = QUAL_DAY - 3."当天日期-3
2. START-OF-SELECTION事件
在单击执行按钮后触发该事件.
REPORT Y001.
PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM.
INITIALIZATION.
QUAL_DAY = QUAL_DAY + 1."当天日期+1
START-OF-SELECTION."在单击执行按钮后触发该事件
WRITE:'DATE:',QUAL_DAY.
点击执行按钮
3. END-OF-SELECTION事件
该事件应用于所有数据处理完成,即START-OF-SELECTION相关事件执行完成,但输出屏幕还未显示之前。在实际开发中,主要应用于一些执行结果的检验等。其输出数据叠加于同一输出屏幕中,如下例:
REPORT Y001.
PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM.
INITIALIZATION.
QUAL_DAY = QUAL_DAY + 1."当天日期+1
START-OF-SELECTION."在单击执行按钮后触发该事件
WRITE:'DATE:',QUAL_DAY.
END-OF-SELECTION.
IF QUAL_DAY <> SYST-DATUM.
WRITE:'Today is', SYST-DATUM.
ENDIF.
点击执行,
4. 屏幕事件的中止
ABAP中主要通过以下 语法来实现屏幕事件的中止:
4.1) EXIT:中止某一事件模块,如START-OF-SELECTION,但是不影响其他事件的执行。
4.2) REJECT:功能与EXIT基本一致。
PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM.
INITIALIZATION.
QUAL_DAY = QUAL_DAY + 1."当天日期+1
START-OF-SELECTION."在单击执行按钮后触发该事件
*EXIT."若在此加入EXIT,表示从此处开始中此
WRITE:'DATE:',QUAL_DAY.
END-OF-SELECTION.
EXIT."若在此加入EXIT,表示从此处开始中此
IF QUAL_DAY <> SYST-DATUM.
WRITE:'Today is', SYST-DATUM.
ENDIF.
4.3) STOP:強制中止所有事件
例如:
REPORT Y001.
PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM.
INITIALIZATION.
QUAL_DAY+6(2) = '01'.
QUAL_DAY = QUAL_DAY - 1.
START-OF-SELECTION.
STOP.
WRITE: 'DATE:',QUAL_DAY.
END-OF-SELECTION.
IF QUAL_DAY <> SYST-DATUM.
WRITE: 'Today is',SYST-DATUM.
ENDIF.