ABAP学习(33):Selection Screen的Search Help
14search help
示例1:
"************************************************ "search help "************************************************ DATA:gv_date TYPE datum. DATA:gv_carrid TYPE spfli-carrid. "自定义search help DATA:gv_field TYPE char10. DATA:gv_str TYPE string. TYPES:BEGIN OF s_carrname, carrname TYPE char20, END OF s_carrname. DATA:lt_carrname TYPE TABLE OF s_carrname. DATA:ls_carrname LIKE LINE OF lt_carrname. SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME. "1日期类型,只要定义datum类型,触发search help PARAMETERS:p_date TYPE datum. SELECT-OPTIONS:s_date FOR gv_date. "2表类型,字段spfli-carrid,使用table定义search help:H_SCARR PARAMETERS:p_carr LIKE gv_carrid. SELECT-OPTIONS:s_carr FOR gv_carrid. "3自定义search help值,使用f4 help PARAMETERS:p_field LIKE gv_field. SELECT-OPTIONS:s_field FOR gv_field. "4使用f1,帮助文档 PARAMETERS:p_field1 LIKE gv_field. "5已有search help,f4 help PARAMETERS:p_field2 LIKE gv_field. SELECT-OPTIONS:s_field2 FOR gv_field. "6文件选择search help PARAMETERS:p_field3 LIKE gv_str. SELECTION-SCREEN END OF BLOCK blk1. "使用f4帮助 AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_field. PERFORM f_search_hlp_field USING 'CARRNAME' CHANGING p_field. AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_field-low. PERFORM f_search_hlp_field USING 'CARRNAME' CHANGING s_field-low. "使用f1帮助 AT SELECTION-SCREEN ON HELP-REQUEST FOR p_field1. PERFORM f_search_hlp_field1. "使用f4帮助 AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_field2. PERFORM f_search_hlp_field2 CHANGING p_field2. AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_field2-low. PERFORM f_search_hlp_field2 CHANGING s_field2-low. "使用f4帮助 AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_field3. PERFORM f_search_hlp_field3 CHANGING p_field3. START-OF-SELECTION. "使用f4,返回table FORM f_search_hlp_field USING iv_retfield CHANGING ev_field. DATA:lv_retfield TYPE dfies-fieldname VALUE 'CARRNAME'. DATA:lv_dynprofield TYPE help_info-dynprofld. DATA:lt_return TYPE TABLE OF ddshretval. DATA:ls_return LIKE LINE OF lt_return. "获取search help,carrname值表 SELECT carrname INTO TABLE lt_carrname FROM scarr. SORT lt_carrname. DELETE ADJACENT DUPLICATES FROM lt_carrname. "调用search help CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = iv_retfield "返回字段 dynpprog = sy-repid dynpnr = sy-dynnr value_org = 'S' TABLES value_tab = lt_carrname "search help显示值list return_tab = lt_return "返回选择值table . IF sy-subrc <> 0. MESSAGE 'Search help failed!' TYPE 'E'. ELSE. READ TABLE lt_return INTO ls_return INDEX 1. ev_field = ls_return-fieldval. ENDIF. ENDFORM. "f1 help,说明文档 FORM f_search_hlp_field1. DATA:lt_links TYPE TABLE OF tline. DATA:ls_links LIKE LINE OF lt_links. "方式1: CALL FUNCTION 'HELP_OBJECT_SHOW' EXPORTING dokclass = 'DE' dokname = 'SYDATUM' TABLES links = lt_links. * "方式2: * CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD' * EXPORTING * called_for_tab = 'SCARR' * called_for_field = 'CARRNAME'. ENDFORM. "使用f4帮助 FORM f_search_hlp_field2 CHANGING iv_field. DATA:lv_reset TYPE char1. DATA:lt_return TYPE TABLE OF ddshretval. DATA:ls_return LIKE LINE OF lt_return. "通过使用已有table字段的search help CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING tabname = 'SCARR' fieldname = 'CARRID' IMPORTING user_reset = lv_reset TABLES return_tab = lt_return. IF sy-subrc = 0. READ TABLE lt_return INTO ls_return INDEX 1. iv_field = ls_return-fieldval. ENDIF. ENDFORM. "使用f4帮助,文件选择框 FORM f_search_hlp_field3 CHANGING iv_field. DATA:lv_file TYPE ibipparms-path. "调用F4_FILENAME,点击输入框后小方块弹出文件选择框 CALL FUNCTION 'F4_FILENAME' IMPORTING file_name = lv_file."返回文件名 IF sy-subrc = 0. iv_field = lv_file. ENDIF. ENDFORM.
post SAP-Garson
原文链接:https://www.cnblogs.com/tangToms/p/16158140.html文章来自于网络,如果侵犯了您的权益,请联系站长删除!