se11创建基本搜索帮助时,各个参数的含意
- 选择方法 指定命中列表的数据来源,可以是数据库表,视图,CDS.如果指定了搜索帮助出口函数则该字段可以不输,数据来源可以在出口中自行指定
- 对话类型: 输入字段的建议搜索:
- 立即值显示: 在调用输入帮助后立即显示命中清单,通常如果命中清单只包含一些条目则建议使用该选项。
- 带有值限制的对话:立即显示限制值的对话框。如果正常情况下可能条目的清单非常大,则选择该选项。限制即将处理的数据设置会增加命中清单的清楚性,并降低值选择过程中系统的负载。
- 基于值集的对话:如果命中清单包含的条目小于100个,那么立即显示该命中清单。如果其包含的条目多余100个,那么显示限制值用的对话框。
- 输入字段的建议搜索帮助:如果勾选该字段则不需要调用搜索帮助,在输入字段中直接输入与该字段同名的搜索帮助的输入参数的值,系统会根据你输入的内容在下方显示筛选结果.不过只有数据源内容较少时建议使用.
-
-
- 多列全文搜索(数据库特定):可以在输入字段中输入与搜索帮助所有选择参数相关的内容,系统会进行全文搜索,并将结果显示在输入字段下方.精确度值:此值范围在 0.1 至 1 之间。系统中定义的标准值为 0.8。值 0.1 表示搜索查询允许的最大错误容差。1 表示搜索必须提供精确匹配。换言之,该值越小,搜索中能够容忍且之后显示在结果中的差异越大。
-
-
-
- 搜索帮助出口:此处需要填写一个和函数模块 F4IF_SHLP_EXIT_EXAMPLE有一样的参数.使用出口函数可以使搜索帮助更加灵活,具体用法稍后说明
- 搜索帮助参数:如果指定了选择方法,则参数必须是选择方法中的字段.如果使用了出口函数,则随意,但是要指定参数的数据元素
- IMP:该参数是否为输入参数,用来筛选命中列表
- EXP:该字段是否为输出参数,用来赋值给使用该搜索帮助的输入字段.
- LPOS列表:该参数字段在命中列表的位置
- SPOS选择列表:该字段在选择屏幕中位置
- SDIS选择显示:该参数字段在选择屏幕中仅显示,不可编辑,如果该字段被勾选,则必须指定该参数字段的默认值
- 参数字段对应的数据元素,必输项.
- modifyed 该字段被修改则可以调整参数字段对应的数据元素,但调整的数据元素的数据类型和长度要和选择方法中的数据元素相同.主要用了决定参数字段在命中列表和选择列表中的字段名称
- 缺省值:
- a) 包含在省略号(')中的常数,该常数必须在参量的内部表示中指定,参量的数据类型有一个编辑屏蔽(例如日期和时间)。例如日期1998年3月1日必须定义为 '19980301'。
- b) 系统字段。这是DDIC结构SYST的字段,其中前缀SY- 可用来代替前缀 SYST-。
- c)GET 参数的标识。
表或者结构绑定搜索帮助及字段分配与联动搜索帮助
- 建立如下搜索帮助
-
- 将搜索帮助绑定到自定义机构或者表的字段上
-
-
以上完成了搜索帮助的绑定及字段分配,
- 定义以下选择屏幕,或者在自定义屏幕中参照结构创建输入字段.
-
PARAMETERS p_werks TYPE zstest-werks . PARAMETERS p_lgort TYPE zstest-lgort. PARAMETERS p_lgobe TYPE zstest-lgobe .
- 提前输入工厂字段的值,对库存地点使用搜索帮助时,工厂字段会自动带入的输入参数werks中,选择命中列表的条目后,会同时填写库存地点及库存地点描述字段.
-
-
-
- 以上就实现了输入参数的联动及选择结果填充多个字段.联动搜索帮助
搜索帮助出口的用法
- 搜索帮助出口可以使得搜索帮助更加的灵活
- 搜索帮助出口函数要求和系统函数F4IF_SHLP_EXIT_EXAMPLE具有相同的参数.
- 复制函数F4IF_SHLP_EXIT_EXAMPLE到自定义的函数,参照F4IF_SHLP_EXIT_EXAMPLE的代码根据需求完成自定义函数的代码
- 搜索帮助出口函数各个参数的含义
-
-
- SHLP现在使用的搜索帮助相关信息:参数字段,产生字段描述,输入字段选择条件等
- CALLCONTROL:搜索帮助流程控制
- SHLP_TAB:集合帮助下的所有简单搜索帮助相关信息
- RECORD_TAB:命中清单
搜索帮助增强出口使用方法
碰到一个需求需要到新建一个help view做search,但是发现结果有很多重复项,所以决定做一个exit function做一下去重。
首先需要copy一个函数模板,( F4IF_SHLP_EXIT_EXAMPLE )
首先function会在何时调用,又是怎么通过 参数 控制呢。
1)、before displaying the dialog box for selecting the required search path,(只是在collective search help才会使用);
2)、before starting the F4 process for the elementary search help,
3)、before displaying the dialog box for entering search conditions,
4)、before selecting data,
5)、before displaying the hit list,
6)、before returning the value selected by user to the input template (我这本是不需要输入条件的,而且我是需要在最後的位置去重,所以我选择这个时间)
TABLES:shlp_tab:存放着输出格式;record_tab 存放着display的内容(注:此内容在step->disp后才会有)
CHANGING:shlp是shlp_tab的work area;callcontrol存在当前进行到哪个step,
所有的setp如下:SELONE,PRESEL1,SELECT,DISP,有兴趣的可以研究以下区别。
dialog type 为A( dialog depends on set of values ),step中没有select,
然后简单介绍一些提供的标准function函数:
function group:SF4U,里面函数有很多,我也没有每个去试试:
parameter_sort存放的是se11 search help里面的结构,
CALL FUNCTION 'F4UT_PARAMETER_SORT'
EXPORTING
parameter_sort = 'ZNUMB'
* DESCENDING = ' '
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
CHANGING
shlp = shlp
callcontrol = callcontrol.
source_structure中存放着se11创建的search help同样的结构,source_tab即你希望替换的数据
CALL FUNCTION 'F4UT_RESULTS_MAP'
EXPORTING
source_structure = 'yshs_industry_stru01'
apply_restrictions = ' '
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = lt_select_list
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
illegal_structure = 1
OTHERS = 2.
value_get这个function是将record_tab中的某个栏位的值copy到result_tab中,其中table的行数不变,result_tabparameter 和fieldname分别对应着record_tab和result_tab的field name。
CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
parameter = 'LAND1'
fieldname = 'LAND1'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
results_tab = setinfo
CHANGING
shlp = shlp
callcontrol = callcontrol.
result_put这个function是将source_tab中的某个栏位的值copy到record_tab中,行数不变。
CALL FUNCTION 'F4UT_PARAMETER_RESULTS_PUT'
EXPORTING
parameter = 'REGIO_TXT'
fieldname = 'REGIO_TXT'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = setinfo
CHANGING
shlp = shlp
callcontrol = callcontrol.