list/grid alv 显示


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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值