上一篇文章大概介绍了一下SE11 SEACH EHLP EXIT的用法,这篇文章来介绍一下SE11 SEACH HELP EXIT 在函数‘F4IF_FIELD_VALUE_REQUEST’中的应用。
- 调用函数具体参数填写示例
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'EKKO' "数据库表名称
fieldname = 'EBELN' "数据库表字段
searchhelp = 'ZSH_EBELN' "SE11搜索帮助
dynpprog = sy-repid "当前程序名称
dynpnr = sy-dynnr "当前程序屏幕号
dynprofield = 'EKKO-EBELN' "屏幕字段名称
callback_program = sy-repid "返回程序
callback_form = 'SUB_CALLBACK_F4_EBELN' "返回程序调用form
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
<1. 调用 F4IF_FIELD_VALUE_REQUEST,使用callback_form时,建立的form一定要使用接口传输字段
FORM <NAME> TABLES RECORD_TAB STRUCTURE SEAHLPRES
CHANGING SHLP TYPE SHLP_DESCR
CALLCONTROL LIKE DDSHF4CTRL.
form的接口传输具体参数和上一章文章参数一致
这里的
- RECORD_TAB没有实际的意义
- CALLCONTROL 用来限制点击次数、关闭排序、关闭ActiveX控件等。
- SHLP_DESCR 参数可以过滤数据、更改搜索帮助描述等等,是实际场景中应用的参数
类型SHLP_DESCR包括一下部分:
•SHLPNAME:搜索帮助的名字(必需的)。
•SHLPTYPE:搜索帮助的类型(必需的)。对于在ABAP字典中定义的搜索帮助来说其类型是SH。
•INTDESCR:深层次搜索帮助属性的组合。
•FIELDPROP: 描述搜索帮助参量统计属性的网表。包括接口属性,如,它是否是一个导入或输出参量,以及对话框属性,如命中清单中字段的位置。
•INTERFACE:描述搜索帮助到屏幕字段的附件的网表。该表包括搜索帮助参量的屏幕字段分配和可能的屏幕上存在的字段内容的屏幕字段分配情况。关于屏幕字段的一些状态信息也被通过(例如,是否它是一个输入值)。
•FIELDDESCR: 选择方法的字段的描述。例如,该描述用来将一个重建命中表分成各个单独列。命中清单的列台头和选择字段的字段文本也能在这儿找到。
•SELOPT: 限制选择的选项。该表和RANGES表有同样的结构,但是,它将表和字段名作为深层次的关键字,因此选择选项就可以为不同的字段定义。
- 具体form示例
*&---------------------------------------------------------------------*
*& Form SUB_CALLBACK_F4_EBELN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RECORD_TAB text
* -->SHLP text
* -->CALLCONTROL text
*----------------------------------------------------------------------*
FORM sub_callback_f4_bzp TABLES record_tab STRUCTURE seahlpres
CHANGING shlp TYPE shlp_descr
callcontrol LIKE ddshf4ctrl.
DATA:LS_DDSHSELOPT TYPE DDSHSELOPT.
FIELD-SYMBOLS: <fs_interface> TYPE ddshiface.
READ TABLE shlp-interface ASSIGNING <fs_interface> WITH KEY shlpfield = 'IWERK'.
IF sy-subrc EQ 0.
" Dynpro 中的字段内容
<fs_interface>-value = gs_yxdq001-iwerk.
*-------------------------------------------------------*
* 过滤具体的信息
CLEAR:LS_DDSHSELOPT.
LS_DDSHSELOPT-SHLPNAME = 'ZSH_EBELN'.
LS_DDSHSELOPT-SHLPFIELD = 'TXT30'.
LS_DDSHSELOPT-SIGN = 'E'.
LS_DDSHSELOPT-OPTION = 'EQ'.
append LS_DDSHSELOPT to shlp-SELOPT.
*------------------------------------------------*
ENDIF.
ENDFORM.
" Dynpro 中的字段内容指的是红框所示
在这里插入图片描述