sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)
搜索幫助在SAP GUI中應用非常廣泛,在上一篇<ABAP系列-數據字典(搜索幫助)>中,我們介紹了系統標準搜索幫助的創建和使用方法。實際工作中,我們還經常會遇到一些特別的搜索要求,需要在標準搜索幫助的基礎上做增強開發。這一篇我們通過一個簡單的例子來看看如何實現搜索幫助的增強。
先回顧下上一篇數據字典搜索幫助的內容。首先,創建一個系統標準搜索幫助ZEMPNO_ESH1。
創建完成后,賦值給相關對象,比如數據元素ZE_EMPNO。激活生效后,我們看到屏幕上實際的使用效果是這樣的。
現在有個小需求,需要將姓氏和名字合成一個字段<姓名>,該如何實現?可以使用搜索字段的增強來完成。我們新建一個搜索幫助ZEMPNO_ESH2,在之前ZEMPNO_ESH1的基礎上,稍作改造。
步驟1:調整輸出參數,去掉FNAME, LNAME, 新增一個字段NAME1。
步驟2:指定搜索幫助增強,(增強又稱作出口)。系統有一個樣例Function <F4IF_SHLP_EXIT_EXAMPLE> 可供參考,可將樣例拷貝至ZF4IF_SHLP_EXIT_EMPNO, 通過事務碼SE37查看,會看到有個變量CALLCONTROL-STEP,這代表了搜索幫助處理過程中的各個事件,包括SELONE,PRESEL,SELECT,DISP等,每一個事件在程序中都有詳細的備注說明。我們可以在DISP事件中添加一段代碼:
IF callcontrol-step = 'DISP'. * PERFORM AUTHORITY_CHECK TABLES RECORD_TAB SHLP_TAB * CHANGING SHLP CALLCONTROL.DATA ls_record LIKE LINE OF record_tab.DATA lv_name TYPE string.LOOP AT record_tab INTO ls_record.lv_name = ls_record-string+9(10).CONDENSE lv_name.lv_name = | { ls_record-string+9(10) }{ ls_record-string+19(10) } |.CONDENSE lv_name.ls_record-string+74(10) = lv_name.MODIFY record_tab FROM ls_record.ENDLOOP.EXIT.ENDIF.這段代碼主要是用于合并姓氏和名字,合并后更新回結果列表 recode_tab, 如果初學的朋友們對這些代碼感到陌生,沒關系,可以先大概了解,后面熟悉語法后再回頭來看。
創建完搜索幫助ZEMPNO_ESH2,將其賦給數據元素ZE_EMPNO。我們看看屏幕上實際使用的效果。
可以看到,姓氏和名字已經合并成姓名字段了。增強完成,是不是很簡單呢,各位如果還有疑問,可以加入群討論。
微信號:eckwise
總結
以上是生活随笔為你收集整理的sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决:building 'twisted
- 下一篇: 零基础入门机器学习——声音识别——打卡T