ABAP 用户选择屏幕 搜索帮助 实现代码
代碼實現如下:
屏幕字段: 為一區間 對前后的兩個區間字段分別開發搜索幫助;因是同一數據,可共用一個搜索幫助;
第一步: 字義一內表,注:包含的若干字段為搜索幫助顯示的內容;
第二步:在INITIALLIXATION 事件 初始化此內表的值,就是用戶想看到的預選清單;
第三步:在選擇屏幕事件中對屏幕參數作如下處理:
??AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_xxx-low.
???? ? PERFORM FRM_GET_KOSTL.
??AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_xxx-HIGH.
??? PERFORM FRM_GET_KOSTL.
??因參數P_xxx在屏幕上為一選擇區間
?
代碼:
?
*?F4 變量定義.
data:?LT_SKAT??like?table?of?SKAT?with?header?line.
data?:?begin?of?LT_VALUE??occurs?0,
?????????VALUE(50)?type?C,
???????end?of?LT_VALUE.
???????data?:?LT_FIELD_TAB?type?table?of?DFIES,
??????WA_FIELD?like?line?of?LT_FIELD_TAB,
??????LT_RETURN_TAB?type?table?of?DDSHRETVAL,
??????WA_RETURN?like?line?of?LT_RETURN_TAB.
* F4 執行
? start-of-selection.
?
at?selection-screen?on?value-request?for??S_SAKNR-LOW.
perform?show_values.
at?selection-screen?on?value-request?for?S_SAKNR-HIGH.
perform?show_values.
?
*F4 子程序
?
FORM?SHOW_VALUES?.
??refresh?LT_VALUE.
??refresh?LT_FIELD_TAB.
??refresh?LT_RETURN_TAB.
??select
????SAKNR
????TXT50
?????from?SKAT
?????into?corresponding?fields?of?table?LT_SKAT
?????where?SPRAS?=?'EN'.
??clear?WA_FIELD.
??WA_FIELD-TABNAME?=?'SKAT'.
??WA_FIELD-FIELDNAME?=?'SAKNR'.
??append?WA_FIELD?to?LT_FIELD_TAB.
??clear?WA_FIELD.
??WA_FIELD-TABNAME?=?'SKAT'.
??WA_FIELD-FIELDNAME?=?'TXT50'.
??append?WA_FIELD?to?LT_FIELD_TAB.
??clear?LT_VALUE.
??loop?at?LT_SKAT.
????LT_VALUE-VALUE?=?LT_SKAT-SAKNR.
????append??LT_VALUE.
????LT_VALUE-VALUE?=?LT_SKAT-TXT50.
????append??LT_VALUE.
??endloop.
??call?function?'F4IF_INT_TABLE_VALUE_REQUEST'
????exporting
??????RETFIELD????????=?'SAKNR'
????tables
??????VALUE_TAB???????=?LT_VALUE
??????FIELD_TAB???????=?LT_FIELD_TAB
??????RETURN_TAB??????=?LT_RETURN_TAB
????exceptions
??????PARAMETER_ERROR?=?1
??????NO_VALUES_FOUND?=?2
??????others??????????=?3.
??if?SY-SUBRC?<>?0.
????message?id?SY-MSGID?type?SY-MSGTY?number?SY-MSGNO
????????????with?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
??else.
????read?table?LT_RETURN_TAB?into?WA_RETURN?index?1.
????S_SAKNR?=?WA_RETURN-FIELDVAL.
??endif.
ENDFORM.????
總結
以上是生活随笔為你收集整理的ABAP 用户选择屏幕 搜索帮助 实现代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP选择屏幕的例子
- 下一篇: ABAP 搜索帮助