FM实现F4帮助系列三:弹出框多筛选条件的搜索帮助(根据搜索帮助筛选字段)
函数:F4IF_GET_SHLP_DESCR
F4IF_START_VALUE_REQUEST
效果图:
本例子代码:
找到需要的帮助:
*& Report ZLM_TEST_045
REPORT zlm_test_045.
TABLES makt.
DATA:
BEGIN OF str_f4,
matnr TYPE matnr,
maktx TYPE maktx,
END OF str_f4.
DATA:l_it_f4 LIKE TABLE OF str_f4.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS:
s_matnr FOR makt-matnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
"帮助
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-low.
SELECT * FROM makt INTO CORRESPONDING FIELDS OF TABLE l_it_f4.
PERFORM frm_f4." USING 'S_MATNR-LOW' .
*&-------------------------------------------------------------------
*& 搜索帮助
*&-------------------------------------------------------------------
FORM frm_f4.
DATA g_shlp_descr_t TYPE shlp_descr_t.
DATA gwa_shlp_descr_t_interface TYPE ddshiface.
DATA: gt_return_tab TYPE TABLE OF ddshretval WITH HEADER LINE.
"调用标准帮助
CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
EXPORTING
shlpname = 'MAT1W'
shlptype = 'SH'
IMPORTING
shlp = g_shlp_descr_t.
LOOP AT g_shlp_descr_t-interface INTO gwa_shlp_descr_t_interface.
IF gwa_shlp_descr_t_interface = 'MATNR'.
gwa_shlp_descr_t_interface-valfield = 'X'.
MODIFY g_shlp_descr_t-interface FROM gwa_shlp_descr_t_interface.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = g_shlp_descr_t
maxrecords = 500
multisel = 'X'
TABLES
return_values = gt_return_tab.
"获取选中值 可以多选 拥有select options
LOOP AT gt_return_tab.
s_matnr-sign = 'I'.
s_matnr-option = 'EQ'.
s_matnr-low = gt_return_tab-fieldval.
APPEND s_matnr.
ENDLOOP.
ENDFORM. " FRM_F4
另外一个F4增强的例子,也是添加筛选字段:
http://blog.sina.com.cn/s/blog_c0978c9b0101h1qf.html
更多相关文章
- ALV显示红绿灯(FM ALV 和 OO ALV两种实现方式)
- FM实现F4帮助系列一:常规实现
- FM实现F4帮助系列二:联动的搜索
- elasticsearch的mapping参数
- Jackson,最牛掰的 Java JSON 解析器
- 「网工小白必备」全网最详细的网络基础知识之数据链路层
- Spring Boot 解决跨域问题的 3 种方案!
- android四大组件&helloworld例子
- android程序界面自动适应屏幕分辨率例子