屏幕字段搜索帮助F4IF_INT_TABLE_VALUE_REQUEST

屏幕多个字段需要通过程序客户化搜索帮助时,通过封装一个共用form,提高程序的通用性

*&---------------------------------------------------------------------*
*& Form FRM_SEARCH_HELP
*&---------------------------------------------------------------------*
*& search help
*&---------------------------------------------------------------------*
*&      --> GT_LFA1_SEL
*&      --> P_
*&---------------------------------------------------------------------*
FORM frm_search_help  TABLES   pt_value
                      USING    VALUE(pv_retfield) VALUE(pv_dynprofield).

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = pv_retfield
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = pv_dynprofield
      value_org       = 'S'
    TABLES
      value_tab       = pt_value
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

ENDFORM.
其中:

pt_value传入搜索帮助值的内表

pv_retfield 内表pt_value对应的字段

pv_dynprofield屏幕接收值得字段

INITIALIZATION.
  PERFORM frm_set_init_val.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zernam-low.
  PERFORM frm_search_help TABLES gt_lfa1_sel USING 'LIFNR' 'S_ZERNAM-LOW'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zernam-high.
  PERFORM frm_search_help TABLES gt_lfa1_sel USING 'LIFNR' 'S_ZERNAM-HIGH'.

AT SELECTION-SCREEN.

START-OF-SELECTION.

其中:gt_lfa1_sel的值在form frm_set_init_val.中提前获取

**********************************************************************
* 搜索帮助值列表:客户数据上Z1代码,E开头的供应商代码
  CLEAR: gt_lfa1_sel.
  SELECT lifnr name1
    INTO CORRESPONDING FIELDS OF TABLE gt_lfa1_sel
    FROM lfa1
    WHERE lifnr LIKE 'E%'.

  SORT gt_lfa1_sel BY lifnr.

gt_lfa1_sel定义如下

TYPES:BEGIN OF ty_lfa1,
        lifnr TYPE lfa1-lifnr,
        name1 TYPE lfa1-name1,
      END OF ty_lfa1.
"选择条件->业务员编码  搜索帮助
DATA: gt_lfa1_sel TYPE STANDARD TABLE OF ty_lfa1,
      gs_lfa1_sel TYPE ty_lfa1.






猜你喜欢

转载自blog.csdn.net/wanglei880526/article/details/80075531
今日推荐