ABAP创建动态内表

*&---------------------------------------------------------------------*
*& Report YCX_DYNAMIC_TABLE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ycx_dynamic_table.

DATA:gt_dyn_table TYPE REF TO data,
     gs_dyn_line  TYPE REF TO data.
FIELD-SYMBOLS:<fs_dyn_table> TYPE STANDARD TABLE,
              <fs_dyn_wa>,
              <fs_dyn_field>.

DATA:lv_copos TYPE i.
DATA:ct_fieldcate TYPE lvc_t_fcat.
FIELD-SYMBOLS:<fs_fieldcate> TYPE lvc_s_fcat.

DEFINE make_col.
  APPEND INITIAL LINE TO ct_fieldcate ASSIGNING <fs_fieldcate>.
  lv_copos = lv_copos + 1.
  <fs_fieldcate>-col_pos   = lv_copos.
  <fs_fieldcate>-inttype   = &1.
  <fs_fieldcate>-intlen    = &2.
  <fs_fieldcate>-decimals  = &3.
  <fs_fieldcate>-fieldname = &4.
  <fs_fieldcate>-outputlen = &2.
  <fs_fieldcate>-scrtext_m = &5.
  <fs_fieldcate>-no_zero   = &6.
  <fs_fieldcate>-emphasize = &7."带颜色高亮
END-OF-DEFINITION.

*主数据部分
make_col 'I' '10' '0' 'NO' '序号' 'X' ''.
make_col 'C' '40' '0' 'MATNR_MI' '小米物料号' 'X' ''.
make_col 'C' '40' '0' 'MATNR' '工厂物料号' 'X' ''.
make_col 'C' '40' '0' 'MAKTX' '物料描述' 'X' ''.
make_col 'C' '40' '0' 'ZZLIFNR' '生产厂商' 'X' ''.
make_col 'C' '40' '0' 'ZZNAME' '品名' 'X' ''.
make_col 'C' '40' '0' 'ZZUNAME' '采购' 'X' ''.
make_col 'C' '1' '0' 'MAABC' 'A/B/C类' 'X' ''.
make_col 'C' '1' '0' 'ZZMTYPE' '物料属性' 'X' ''.
make_col 'C' '30' '0' 'ZZSTAGE' '工段' 'X' ''.
make_col 'C' '16' '0' 'PROJECT' '项目' 'X' ''.
make_col 'C' '1333' '0' 'ZZWHERE' '用于哪' 'X' ''.
make_col 'C' '10' '0' 'TDLX' '替代类型' 'X' ''.
make_col 'C' '10' '0' 'TDLSY' '替代料是否认证使用' 'X' ''.
make_col 'N' '10' '0' 'NUM' '号码' 'X' ''.
make_col 'N' '2' '0' 'ALPRF' '替代组' 'X' ''.
make_col 'C' '2' '0' 'ALPGR' '替代小组' 'X' ''.

*计划中的主键部分
*LOOP AT gt_013 INTO DATA(ls_013).
*  make_col 'C' '18' '0' ls_013-matnr ls_013-matnr 'X' ''.
*ENDLOOP.

SORT ct_fieldcate BY col_pos.

CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
    it_fieldcatalog = ct_fieldcate
  IMPORTING
    ep_table        = gt_dyn_table.

ASSIGN  gt_dyn_table->* TO <fs_dyn_table>.

IF SY-SUBRC EQ 0.

ENDIF.
本人常年接收SAP运维和远程项目,ECC,S/4HANA,CRM,WDA. 远程人天可谈,终身售后,有活请联系V信:18925782767(问问题免费,欢迎交流!) !!请关注本人技术分享公众号:SAP翔子(可扫头像二维码) 每天分享新知识,博客文章也会陆续整理并迁移至公众号,与您一起共同学习
原文地址:https://www.cnblogs.com/rainysblog/p/14939848.html