ABAP:参数输入屏幕SELECTION-SCREEN中的事件
生活随笔
收集整理的這篇文章主要介紹了
ABAP:参数输入屏幕SELECTION-SCREEN中的事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在SAP開發中,有用戶提出,在輸入參數的屏幕中,根據用戶的選擇對某些輸入框進行屏蔽,防止用戶在不需要的地方輸入參數。這需要用到SELECTION-SCREEN的事件。
下面的選擇屏幕中,要求根據用戶選擇的單選按鈕,對不同的參數輸入欄進行控制,不允許用戶輸入。
*??PARAMETERS
*//===========================================================//*
*屏幕條件查詢顯示界面
SELECTION-SCREEN?BEGIN?OF?BLOCK?blk01?WITH?FRAME?TITLE?text-001?.
PARAMETERS:
??p_d1?TYPE?c?RADIOBUTTON?GROUP?pz?DEFAULT?'X'
???????????????????????????????????USER-COMMAND?rad_click?,??"?物料憑證
??p_d2?TYPE?c?RADIOBUTTON?GROUP?pz?.?????????????????????????"?預留單
SELECTION-SCREEN??END?OF?BLOCK?blk01?.
SELECTION-SCREEN?BEGIN?OF?BLOCK?blk02?WITH?FRAME?TITLE?text-002?.
PARAMETERS:
??p_mjahr?LIKE?mkpf-mjahr?DEFAULT?sy-datum+0(4)?MODIF?ID?sa?."?年度
SELECT-OPTIONS:
??s_bldat?FOR?mkpf-bldat?MODIF?ID?sa?,???????????????????????"?物料憑證日期
??s_mblnr?FOR?mkpf-mblnr?MODIF?ID?sa?,???????????????????????"?物料憑證號碼
??s_rsdat?FOR?rkpf-rsdat?MODIF?ID?sb?,???????????????????????"?預留單憑證日期
??s_rsnum?FOR?rkpf-rsnum?MODIF?ID?sb?,???????????????????????"?預留號
??s_matnr?FOR?mseg-matnr,????????????????????????????????????"?物料號碼
??s_bwart?FOR?mseg-bwart.????????????????????????????????????"?移動類型
SELECTION-SCREEN??END?OF?BLOCK?blk02.
為了方便單選按鈕的控制,我們對輸入控件進行了分組,使用MODIF ID name(name只能為3個字符以內),對這一組參數進行屏蔽或打開。在本例程中組名為sa/sb。
還需要注意,我們希望屏幕上的radiobutton能夠觸發事件,因此需要在第一個RadioButton上加上USER-COMMAND name的代碼,它會觸發屏幕標準的事件。
?
*?處理輸入屏幕的互相鎖定AT?SELECTION-SCREEN?OUTPUT?.
??LOOP?AT?SCREEN?.
????IF?screen-group1?=?'SA'?AND?SCREEN-GROUP3?<>?'OPU'?AND?SCREEN-GROUP3?<>?'TXT'.
??????IF?p_d1?=?'X'?.
????????screen-input?=?'1'?.
??????ELSE.
????????screen-input?=?'0'?.
??????ENDIF.
????ELSEIF?screen-group1?=?'SB'?AND?SCREEN-GROUP3?<>?'OPU'?AND?SCREEN-GROUP3?<>?'TXT'.
??????IF?p_d2?=?'X'?.
????????screen-input?=?'1'?.
??????ELSE.
????????screen-input?=?'0'?.
??????ENDIF.
????ENDIF.
????MODIFY?SCREEN.
??ENDLOOP.
AT?SELECTION-SCREEN?OUTPUT?.事件會被單選控件觸發。
Screen的Group1是給用戶編程使用的,在前面給控件編組以后,這里可以得到控件的組名稱。
Group3是保留屬性,通過跟蹤,猜測它可能是控件的類型屬性,對于TXT和OPU的控件,我們不需要改變它的INPUT屬性,因此將它們排出在外。
詳細可查看http://help.sap.com/saphelp_470/helpdata/EN/9f/dbab6f35c111d1829f0000e829fbfe/frameset.htm
總結
以上是生活随笔為你收集整理的ABAP:参数输入屏幕SELECTION-SCREEN中的事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven教程初级篇01: 简介
- 下一篇: 删除SQL Server注册