1. 程式人生 > >使用F4IF_INT_TABLE_VALUE_REQUEST 回填螢幕多個欄位

使用F4IF_INT_TABLE_VALUE_REQUEST 回填螢幕多個欄位

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vkorg.
  PERFORM frm_get_zhtbh.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vtweg.
*  PERFORM frm_get_zhtbh.

FORM frm_get_zhtbh.

  TYPES:BEGIN OF ty_itab,
          vkorg LIKE plm_alv_115-vkorg,
          vtweg LIKE plm_alv_115-vtweg,
          text1 LIKE plm_alv_115-
text1,
          text2 LIKE plm_alv_115-text2,
        END OF ty_itab.
  DATA:t_vtab      TYPE TABLE OF ty_itab WITH HEADER LINE,
       t_returntab TYPE TABLE OF ddshretval WITH HEADER LINE.


  REFRESH:t_vtab,t_returntab.

  SELECT INTO CORRESPONDING FIELDS OF TABLE t_vtab
    FROM tvta.

  SORT t_vtab BY vkorg vtweg.

  DELETE ADJACENT DUPLICATES FROM t_vtab COMPARING  vkorg vtweg.

  LOOP AT t_vtab.
    SELECT SINGLE
      vtext
      INTO t_vtab-text1
      FROM tvkot
      WHERE vkorg t_vtab-vkorg.


    SELECT SINGLE
      vtext
      INTO t_vtab-text2
      FROM tvtwt
      WHERE vtweg t_vtab-vtweg.

    MODIFY t_vtab.
    CLEAR 
t_vtab.
  ENDLOOP.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         'VTWEG' "'VKORG'
      dynpprog         sy-repid
      dynpnr           sy-dynnr
      dynprofield      'F1'
*     STEPL            = 0
*     WINDOW_TITLE     =
*     VALUE            = ' '
      value_org        'S'
*     MULTIPLE_CHOICE  = ' '
*     DISPLAY          = ' '
      callback_program sy-repid
      callback_form    'USER_FORM'
*     MARK_TAB         =
* IMPORTING
*     USER_RESET       =
    TABLES
      value_tab        t_vtab
*     FIELD_TAB        =
      return_tab       t_returntab
*     DYNPFLD_MAPPING  =
* EXCEPTIONS
*     PARAMETER_ERROR  = 1
*     NO_VALUES_FOUND  = 2
*     OTHERS           = 3
    .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " FRM_GET_ZHTBH


*&---------------------------------------------------------------------*
*&      Form  USER_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->SHLP       text
*----------------------------------------------------------------------*
FORM user_form TABLES record_tab STRUCTURE seahlpres CHANGING shlp TYPE shlp_descr_t   callcontrol LIKE ddshf4ctrl
.
  DATAinterface LIKE LINE OF shlp-interface.
  READ TABLE shlp-interface INTO interface INDEX 1.

  interface-shlpfield+4(1'1'.   "設定內表裡返回的列值與介面上要填入欄位的對應關係(第一列的值要回填入P_VKORG)
  interface-valfield 'P_VKORG'.
  APPEND interface TO shlp-interface.

  interface-shlpfield+4(1'2'.
  interface-valfield 'P_VTWEG'.   "設定內表裡返回的列值與介面上要填入欄位的對應關係(第二列的值要回填入P_VTWEG)
  APPEND interface TO shlp-interface.
  CLEAR interface.
ENDFORM.                    "USER_FORM