ABAP-选择屏幕-搜索帮助
目录
ABAP 选择屏幕 搜索帮助
1. 使用搜索帮助遇到的问题
通过 F4IF_INT_TABLE_VALUE_REQUES T函数实现的搜索帮助,有一个问题,无法将选择屏幕的其他字段带入到选择帮助的限制部分,这个问题折腾了两个小时才搞定,所以记录一下(这里也有一个退而求其次的方案,就是将其他字段的限制写在F4IF_INT_TABLE_VALUE_REQUES选择值表的select中)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zzbbh-low.
SELECT zzbbh zsegment uname datum INTO CORRESPONDING FIELDS OF TABLE gt_sel_zzbbh FROM zppt007.
SORT gt_sel_zzbbh BY zzbbh.
DELETE ADJACENT DUPLICATES FROM gt_sel_zzbbh COMPARING ALL FIELDS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
1. DDIC_STRUCTURE = ' '
retfield = 'ZZBBH'
2. PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_ZZBBH-LOW'
3. STEPL = 0
4. WINDOW_TITLE =
5. VALUE = ' '
value_org = 'S'
6. MULTIPLE_CHOICE = ' '
7. DISPLAY = ' '
callback_program = sy-repid
callback_form = 'CM_FORM'
8. CALLBACK_METHOD =
9. MARK_TAB =
IMPORTING
user_reset = answer
TABLES
value_tab = gt_sel_zzbbh
10. FIELD_TAB =
return_tab = out_cassd
11. DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
2. 实现步骤
2.1. 通过T-CODE SE11建立搜索帮助
2.2 搜索帮助说明
选择方法
指定命中列表的数据来源,可以是数据库表,视图,CDS.如果指定了搜索帮助出口函数则该字段可以不输,数据来源可以在出口中自行指定
对话类型: 输入字段的建议搜索
- 立即值显示: 在调用输入帮助后立即显示命中清单,通常如果命中清单只包含一些条目则建议使用该选项。
- 带有值限制的对话:立即显示限制值的对话框。如果正常情况下可能条目的清单非常大,则选择该选项。限制即将处理的数据设置会增加命中清单的清楚性,并降低值选择过程中系统的负载。
- 基于值集的对话:如果命中清单包含的条目小于100个,那么立即显示该命中清单。如果其包含的条目多余100个,那么显示限制值用的对话框。
对话类型: 输入字段的建议搜索
输入字段的建议搜索帮助:如果勾选该字段则不需要调用搜索帮助,在输入字段中直接输入与该字段同名的搜索帮助的输入参数的值,系统会根据你输入的内容在下方显示筛选结果.不过只有数据源内容较少时建议使用.
搜索帮助出口:此处需要填写一个和函数模块 F4IF_SHLP_EXIT_EXAMPLE有一样的参数.使用出口函数可以使搜索帮助更加灵活,这个暂时还没用到.
搜索帮助参数:如果指定了选择方法,则参数必须是选择方法中的字段.如果使用了出口函数,则随意,但是要指定参数的数据元素
IMP:该参数是否为输入参数,用来筛选命中列表
EXP:该字段是否为输出参数,用来赋值给使用该搜索帮助的输入字段.
LPOS列表:该参数字段在命中列表的位置
SPOS选择列表:该字段在选择屏幕中位置
SDIS选择显示:该参数字段在选择屏幕中仅显示,不可编辑,如果该字段被勾选,则必须指定该参数字段的默认值
参数字段对应的数据元素,必输项.
2.3 表或者结构绑定搜索帮助及字段分配与联动搜索帮助
说明:数据元素绑定字段的时候需要一个一个绑定
2.4 创建搜索屏幕
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_syb TYPE zppt007-zsegment OBLIGATORY MATCHCODE OBJECT zsh_md61_syb,
p_uname TYPE zppt007-uname OBLIGATORY.
SELECT-OPTIONS: s_zzbbh FOR zppt007-zzbbh NO-EXTENSION NO INTERVALS OBLIGATORY,
s_datum FOR zppt007-datum NO-EXTENSION NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
2.3 实现效果
a. 屏幕上填写的字段会带入到搜索帮助的限制中
b. 选择屏幕选中的数据也会带到选择屏幕中