此博客为原创博客,都是个人工作经历所得,转载请注明出处

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.

 

posted @ 2021-06-27 08:30  Rainystuday  阅读(114)  评论(0编辑  收藏  举报