FM实现F4帮助系列三:弹出框多筛选…
生活随笔
收集整理的這篇文章主要介紹了
FM实现F4帮助系列三:弹出框多筛选…
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?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
函數: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
轉載于:https://www.cnblogs.com/senlinmu110/p/3802137.html
總結
以上是生活随笔為你收集整理的FM实现F4帮助系列三:弹出框多筛选…的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 1003 Maxsum
- 下一篇: 分期乐代还信用卡要多久?分期乐还信用卡没