函数: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
推荐阅读:
《ABAP新语法1》
《ABAP新语法2》
《SM30添加按钮:批导,筛选,排序等完整demo 》
《关于 SM30/VIEW_MAINTENANCE_CALL锁整张表问题》
《Demo:弹出文本输入框》
《关于update task几个有意思的测试》
《动态批量修改任意表任意字段的值》
《动态获取查询条件的一个小Demo》
《使用cl_gui_docking_container 实现多ALV》
《VOFM 修改 组单开票时 会计凭拆分规则》
《DEMO SUBMIT 某程序并获取该程序ALV数据》
《DEMO:S/4 1809 FAGLL03H 增加字段增强》
《几个ABAP实用模板,体力活就别一行行敲了,复制粘贴得了》
《DEMO:BTE增强实现凭证创建检查》
《SAP Parallel Accounting(平行分类账业务)配置+操作手册+BAPI demo程序》
《CC02修改确认日期BAPI:Processing of change number was canceled》《我是怎样调试BAPI的,以F-02为例》
《我是不是被代码给耽误了……不幸沦为一名程序员……》
《三亚自由行攻略(自己穷游总结)》
《苏州游记》
《记码农十周年(20110214--20210214)》
《不一样的SAP干货铺群:帅哥靓妹、红包、烤羊腿!》
《十年老码农搬砖习惯和技巧》
《我这个老码农是怎么debug标准程序的》
《我是怎样调试BAPI的,以F-02为例》
《杂谈:几种接口》
《Odata 增删改查详例》
《ODATA CREATE_DEEP_ENTITY 详例》
《RESTful DEMO 一:SAP 如何提供 RESTful Web 服务》
《RESTful DEMO 四 :增删改查及调用》
《DEMO search help 增强 ( vl03n KO03 等)》
《录BDC时 弹出的公司代码框问题》
《搜索帮助系列》
《增强相关》
Debug 系列
DEBUG 系列一:Dump debug |
DEBUG 系列二:Configure Debugger Layer |
DEBUG系列三:使用 F9 和 watch point |
DEBUG系列四:第三方接口debug |
DEBUG系列五:Update 模式下的function debug |
DEBUG系列六:后台JOB debug |
DEBUG系列七:保存测试参数 |
DEBUG系列八:Debug弹出框 |
debug系列九:SM13查看update更新报错 |
DEBUG系列十:Smartforms debug |
DEBUG系列十一:GGB1 debug |
Debug系列十二:QRFC 队列 debug |