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
.
DATA : interface 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
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
.
DATA : interface 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