sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)
搜索幫助在SAP GUI中應(yīng)用非常廣泛,在上一篇<ABAP系列-數(shù)據(jù)字典(搜索幫助)>中,我們介紹了系統(tǒng)標(biāo)準(zhǔn)搜索幫助的創(chuàng)建和使用方法。實(shí)際工作中,我們還經(jīng)常會(huì)遇到一些特別的搜索要求,需要在標(biāo)準(zhǔn)搜索幫助的基礎(chǔ)上做增強(qiáng)開(kāi)發(fā)。這一篇我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)看看如何實(shí)現(xiàn)搜索幫助的增強(qiáng)。
先回顧下上一篇數(shù)據(jù)字典搜索幫助的內(nèi)容。首先,創(chuàng)建一個(gè)系統(tǒng)標(biāo)準(zhǔn)搜索幫助ZEMPNO_ESH1。
創(chuàng)建完成后,賦值給相關(guān)對(duì)象,比如數(shù)據(jù)元素ZE_EMPNO。激活生效后,我們看到屏幕上實(shí)際的使用效果是這樣的。
現(xiàn)在有個(gè)小需求,需要將姓氏和名字合成一個(gè)字段<姓名>,該如何實(shí)現(xiàn)?可以使用搜索字段的增強(qiáng)來(lái)完成。我們新建一個(gè)搜索幫助ZEMPNO_ESH2,在之前ZEMPNO_ESH1的基礎(chǔ)上,稍作改造。
步驟1:調(diào)整輸出參數(shù),去掉FNAME, LNAME, 新增一個(gè)字段NAME1。
步驟2:指定搜索幫助增強(qiáng),(增強(qiáng)又稱(chēng)作出口)。系統(tǒng)有一個(gè)樣例Function <F4IF_SHLP_EXIT_EXAMPLE> 可供參考,可將樣例拷貝至ZF4IF_SHLP_EXIT_EMPNO, 通過(guò)事務(wù)碼SE37查看,會(huì)看到有個(gè)變量CALLCONTROL-STEP,這代表了搜索幫助處理過(guò)程中的各個(gè)事件,包括SELONE,PRESEL,SELECT,DISP等,每一個(gè)事件在程序中都有詳細(xì)的備注說(shuō)明。我們可以在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.這段代碼主要是用于合并姓氏和名字,合并后更新回結(jié)果列表 recode_tab, 如果初學(xué)的朋友們對(duì)這些代碼感到陌生,沒(méi)關(guān)系,可以先大概了解,后面熟悉語(yǔ)法后再回頭來(lái)看。
創(chuàng)建完搜索幫助ZEMPNO_ESH2,將其賦給數(shù)據(jù)元素ZE_EMPNO。我們看看屏幕上實(shí)際使用的效果。
可以看到,姓氏和名字已經(jīng)合并成姓名字段了。增強(qiáng)完成,是不是很簡(jiǎn)單呢,各位如果還有疑問(wèn),可以加入群討論。
微信號(hào):eckwise
總結(jié)
以上是生活随笔為你收集整理的sap abap开发从入门到精通_SAP开发-ABAP数据字典(搜索帮助增强)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 解决:building 'twisted
- 下一篇: 零基础入门机器学习——声音识别——打卡T