用户选择屏幕搜索帮助的代码实现
很久不寫程序了,最近接手一財務報表修改,對一用戶選擇屏幕開發搜索幫助;第一反應就是搜索幫助是與數據字典相關聯,大凡系統表字段里的數據元素都會有默認的,但找遍了所有的表,此字段就是沒有自帶的搜索幫助,在想是否要自建一個數據庫表,對數據元素內置一個搜索幫助,要建數據庫表、數據元素、字段.....;做的前期工作非常多;但卻忘了,利用屏幕事件,在程序里開發一個搜索幫助,之前是有用過的,一下子卻忘了個干凈;
代碼實現如下:
屏幕字段: 為一區間 對前后的兩個區間字段分別開發搜索幫助;因是同一數據,可共用一個搜索幫助;
第一步: 字義一內表,注:包含的若干字段為搜索幫助顯示的內容;
第二步:在INITIALLIXATION 事件 初始化此內表的值,就是用戶想看到的預選清單;
第三步:在選擇屏幕事件中對屏幕參數作如下處理:
??AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_xxx-low.
???? ? PERFORM FRM_GET_KOSTL.
??AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_xxx-HIGH.
??? PERFORM FRM_GET_KOSTL.
??因參數P_xxx在屏幕上為一選擇區間
??子程序:
FORM FRM_GET_KOSTL .
?????? CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
????? EXPORTING
*???? DDIC_STRUCTURE???????? = ' '
??????? RETFIELD?????????????? = 'xxxxx'???? 預選值要填入的字段名
*???? PVALKEY??????????????? = ' '
?????? DYNPPROG?????????????? =??本程序名
?????? DYNPNR???????????????? = SY-DYNNR
?????? DYNPROFIELD??????????? = 'XXXX'? "?此屏幕字段參數
?????? VALUE_ORG????????????? = 'S'
*???? MULTIPLE_CHOICE??????? = ' '
*???? CALLBACK_PROGRAM?????? = ' '
*???? CALLBACK_FORM????????? = ' '
????? TABLES
??????? VALUE_TAB????????????? = IT_CSKS[]??? " 存放預選值清單的內表
*???? FIELD_TAB????????????? =
*???? RETURN_TAB???????????? =
*???? DYNPFLD_MAPPING??????? =
???? EXCEPTIONS
?????? PARAMETER_ERROR??????? = 1
?????? NO_VALUES_FOUND??????? = 2
?????? OTHERS???????????????? = 3.
ENDFORM.??????????????????? " FRM_GET_KOSTL
總結
以上是生活随笔為你收集整理的用户选择屏幕搜索帮助的代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP选择屏幕建议
- 下一篇: 搜索帮助1:在选择屏幕使用自定义搜索帮助