SAP ABAP F4的检索帮助(包括自定义检索帮助)
abap開發(fā)中,檢索幫助的方法大概有4種,下面進(jìn)行簡(jiǎn)單描述下。
1.? 參照數(shù)據(jù)庫字段,用數(shù)據(jù)字典自帶的檢索幫助,或者參照字段的定義域?qū)崿F(xiàn)F4檢索幫助。也是最簡(jiǎn)單的方法,參照字段定義即可。
?
2.? SE11里面創(chuàng)建一個(gè)檢索幫助ID(search_help),然后再定義的時(shí)候,使用MATCHCODE OBJECT search_help 綁定即可。
?
3.? 使用函數(shù)'F4IF_INT_TABLE_VALUE_REQUEST'實(shí)現(xiàn)。
????? 具體方法如下:
????? 3-1.添加VALUE-REQUEST事件???????????????
?????????????AT?SELECTION-SCREEN?ON?VALUE-REQUEST?FOR?s1-low.
???????????? * 檢索幫助(年/月)
????????????????PERFORM?frm_s1_low_f4.
?????? 3-2.在子程序中實(shí)現(xiàn)檢索幫助
???????????? FORM frm_s1_low_f4.????
???????????????DATA?lt?TYPE?STANDARD?TABLE?OF?dd07v.
?????????????**************************************************
????????????? * 如果要獲取某字段的定義域的值作為檢索幫助的話,可以使用以下函數(shù)。
????????????????CALL?FUNCTION?'DD_DOMVALUES_GET'
???????????????????EXPORTING
????????????????????????domname??????????????=?'ZZLZT'???????????"有定義域的字段
????????????????????????text????????????????????????=?'X'??????????????????? "要獲取該定義域?qū)?yīng)的文本
??????????????????TABLES
?????????????????????? ?dd07v_tab??????????? ?=?lt
???????????????? ?EXCEPTIONS
??????????????????????? WRONG_TEXTFLAG???????=?1
????????????????????????OTHERS???????????????????????????=?2
????????????.
??????????????????IF?sy-subrc?<>?0.
????????????????????????? *???Implement?suitable?error?handling?here
??????????????????ENDIF.
????????????? * 把上面獲取到的值,綁定到S1-LOW字段上
????????????????CALL?FUNCTION?'F4IF_INT_TABLE_VALUE_REQUEST'
?????????????????? ?EXPORTING
??????????????????????? retfield???????????????????????????? ??=?'DOMVALUE_L'???????"lt內(nèi)表里面的字段
????????????????????????dynpprog????????????????????????? ?=??sy-repid
???????????????????? ??dynpnr??????????????????????????????? ?=?sy-dynnr
????????????????????? ?dynprofield??????????????????????? ??=?'S1-LOW'???????????????? "畫面上綁定字段
???????????????????????value_org????????????????????????????=?'S'
???????????????????? ??callback_program?????????????? ?=?sy-repid
??????????????? ???TABLES
??????????????????????? value_tab???????????????????????? ????=?lt????????????????????????????"需要顯示幫助的值內(nèi)表
???????????????????EXCEPTIONS
?????????????????????? ?PARAMETER_ERROR????????=?1
??????????????????????? NO_VALUES_FOUND????? ???=?2
?????????????????????? ?OTHERS????????????????????????? ?????=?3.
?????????????????
???????????????????IF?sy-subrc?<>?0.
?????????????????????? *?Implement?suitable?error?handling?here
???????????????????ENDIF
4.? 使用函數(shù)'F4IF_FIELD_VALUE_REQUEST'實(shí)現(xiàn)。
????? F4 help for fields that are only known at runtime這是這個(gè)函數(shù)的描述,即運(yùn)行時(shí)使用。
????? 在日常的工作中,其實(shí)都是在運(yùn)行時(shí)使用,所以就當(dāng)正常的函數(shù)使用就可以了。
????? 實(shí)現(xiàn)方法如下:????
??????? CALL?FUNCTION?'F4IF_FIELD_VALUE_REQUEST'
????????????EXPORTING
?????????????????tabname?????=?gs_selfields-tabname??????? ?“數(shù)據(jù)字典中的表明
???????????????? fieldname??=?gt_Selfields-fieldname????? ???”數(shù)據(jù)字典中的字段名
??????????????? *?value????????=?selval
??????????? TABLES
??????????????? return_tab???????????????????????=?return_tab
?????????????EXCEPTIONS
???????????????? FIELD_NOT_FOUND?????=?1
???????????????? NO_HELP_FOR_FIELD ?=2
???????????????? INCONSISTENT_HELP ?=3
???????????????? NO_VALUES_FOUND???=?4
?????????????????OTHERS?????????????????????????=?5.
???? 運(yùn)行這個(gè)函數(shù)就會(huì)彈出F4幫助界面的值選擇窗口,
???? 窗口中的值就是tabname中字段fieldname的所有可選值,當(dāng)選擇某個(gè)值后,
???? 那么這個(gè)值和其相關(guān)的屬性就會(huì)存放到表return_tab中。這里不詳細(xì)列舉,請(qǐng)developer們自行測(cè)試。
?????深入研究發(fā)現(xiàn),這個(gè)函數(shù)隸屬于函數(shù)組SDHI(外部應(yīng)用程序 F4 界面模塊),
???? 在這個(gè)函數(shù)組中有很多可用的允許開發(fā)者自定義幫助的函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的SAP ABAP F4的检索帮助(包括自定义检索帮助)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WM基本功能
- 下一篇: 【转】SAP采购订单屏幕增强