TYPE-POOLS: abap,slis.
TABLES: mara.
DATA: v_fname TYPE string.
DATA: it_parm TYPE abap_func_parmbind_tab,
it_excp TYPE abap_func_excpbind_tab,
he_parm TYPE abap_func_parmbind,
he_excp TYPE abap_func_excpbind.
DATA: it_mara TYPE STANDARD TABLE OF mara.
DATA: it_fcat TYPE slis_t_fieldcat_alv.
PARAMETER: r1 RADIOBUTTON GROUP rb DEFAULT 'X',
r2 RADIOBUTTON GROUP rb.
START-OF-SELECTION.
PERFORM set_func_name.
PERFORM get_data_mara.
PERFORM set_parm_name.
PERFORM set_para_exep.
PERFORM exe_func_dynm.
*&---------------------------------------------------------------------*
*& Form SET_FUNC_NAME
*&---------------------------------------------------------------------*
FORM set_func_name .
IF r1 = abap_true.
v_fname = 'REUSE_ALV_GRID_DISPLAY'.
ELSE.
v_fname = 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " SET_FUNC_NAME
*&---------------------------------------------------------------------*
*& Form get_data_MARA
*&---------------------------------------------------------------------*
FORM get_data_mara .
SELECT *
INTO TABLE it_mara
FROM mara
UP TO 100 ROWS.
he_parm-name = 'T_OUTTAB'.
he_parm-kind = abap_func_tables.
GET REFERENCE OF it_mara INTO he_parm-value.
INSERT he_parm INTO TABLE it_parm.
ENDFORM. " get_data_MARA
*&---------------------------------------------------------------------*
*& Form SET_PARM_NAME
*&---------------------------------------------------------------------*
FORM set_parm_name .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'MARA'
CHANGING
ct_fieldcat = it_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 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.
he_parm-name = 'IT_FIELDCAT'.
he_parm-kind = abap_func_exporting.
GET REFERENCE OF it_fcat INTO he_parm-value.
INSERT he_parm INTO TABLE it_parm.
ENDFORM. " SET_PARM_NAME
*&---------------------------------------------------------------------*
*& Form SET_PARA_EXEP
*&---------------------------------------------------------------------*
FORM set_para_exep .
he_excp-name = 'PROGRAM_ERROR'.
he_excp-value = 1.
INSERT he_excp INTO TABLE it_excp.
ENDFORM. " SET_PARA_EXEP
*&---------------------------------------------------------------------*
*& Form EXE_FUNC_DYNM
*&---------------------------------------------------------------------*
FORM exe_func_dynm .
CALL FUNCTION v_fname
PARAMETER-TABLE
it_parm
EXCEPTION-TABLE
it_excp.
ENDFORM. " EXE_FUNC_DYNM
list/grid alv 显示
最新推荐文章于 2022-05-24 17:39:59 发布