CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE 创建动态内表的方法

FIELD-SYMBOLS:<ITAB_LIST> TYPE STANDARD TABLE.

DATA REF_ITAB_LIST TYPE REF TO DATA.  

 

DATA  GT_FIELDCAT TYPE LVC_T_FCAT.

 

PERFORM PREPARE_FIELD_CATALOG CHANGING GT_FIELDCAT.
PERFORM CREATE_DYNAMIC_TABLE CHANGING GT_FIELDCAT REF_ITAB_LIST.
ASSIGN REF_ITAB_LIST->* TO <ITAB_LIST>.

 

FORM PREPARE_FIELD_CATALOG
    CHANGING PT_FIELDCAT TYPE LVC_T_FCAT.
  DATA LS_FCAT TYPE LVC_S_FCAT.

  CLEAR LS_FCAT.
  LS_FCAT-FIELDNAME = 'KSTAR'.
  LS_FCAT-OUTPUTLEN = '20'.
  LS_FCAT-COLTEXT = '成本要素代码'.
  LS_FCAT-SELTEXT = '成本要素代码'.
  LS_FCAT-INTTYPE = 'C'.
  LS_FCAT-INTLEN = 20.
  APPEND LS_FCAT TO PT_FIELDCAT.

  CLEAR LS_FCAT .
  LS_FCAT-FIELDNAME = 'KTEXT'.
  LS_FCAT-OUTPUTLEN = '40'.
  LS_FCAT-COLTEXT = '成本要素名称'.
  LS_FCAT-SELTEXT = '成本要素名称'.
  LS_FCAT-INTTYPE = 'C'.
  LS_FCAT-INTLEN = 40.
  APPEND LS_FCAT TO PT_FIELDCAT .

   

    ***********

    ***********

    ***********

ENDFORM.

 

FORM CREATE_DYNAMIC_TABLE
    CHANGING
        IFC TYPE LVC_T_FCAT
        LV_DY_TABLE TYPE REF TO DATA.
  "创建动态内表
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
               EXPORTING
                  IT_FIELDCATALOG = IFC
               IMPORTING
                  EP_TABLE        = LV_DY_TABLE
               EXCEPTIONS
                 GENERATE_SUBPOOL_DIR_FULL = 1.
  IF SY-SUBRC = 1.
    MESSAGE '动态内表生成次数达到上限36次,请返回选择屏幕重新查询' TYPE 'I'.
    PERFORM EXIT_PROGRAM.
  ENDIF.
ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值