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