动态******************内表

TYPES:BEGIN OF ty_test,
      id(10) TYPE n,
      name(10) TYPE c,
      END OF ty_test.
DATA:gs_test TYPE ty_test.

FIELD-SYMBOLS:<fs_table> TYPE STANDARD TABLE,
              <fs_line>,
              <fs_field>.
DATA: go_table TYPE REF TO data,
      go_line TYPE REF TO data,
      gt_fcat TYPE lvc_t_fcat,
      gs_fcat TYPE lvc_s_fcat.

DATA:go_struct TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS:<fs_component> TYPE abap_compdescr.

DATA:gv_count TYPE i,
     gv_col TYPE i,
     gv_row TYPE i.

PARAMETERS:p_type TYPE string.

START-OF-SELECTION.

*  go_struct ?= cl_abap_typedescr=>describe_by_data( gs_test ).
  go_struct ?= cl_abap_typedescr=>describe_by_name( p_type ).

  LOOP AT go_struct->components ASSIGNING <fs_component>.
*    WRITE: / <fs_component>-name.
    gs_fcat-fieldname = <fs_component>-name.
    APPEND gs_fcat TO gt_fcat.
  ENDLOOP.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = gt_fcat
    IMPORTING
      ep_table        = go_table.

  ASSIGN go_table->* TO <fs_table>.

  CREATE DATA go_line LIKE LINE OF <fs_table>.
  ASSIGN go_line->* TO <fs_line>.

  DESCRIBE TABLE go_struct->components LINES gv_count.

  CLEAR:gv_row.

  DO 5 TIMES.
    gv_row = gv_row + 1.
    CLEAR:gv_col.
    DO gv_count TIMES.
      gv_col = gv_col + 1.
      ASSIGN COMPONENT sy-index OF STRUCTURE <fs_line> TO <fs_field>.
      <fs_field> = gv_row && '行-' && gv_col && '列'.
    ENDDO.
    APPEND <fs_line> TO <fs_table>.
  ENDDO.

  LOOP AT <fs_table> ASSIGNING <fs_line>.
    DO gv_count TIMES.
      ASSIGN COMPONENT sy-index OF STRUCTURE <fs_line> TO <fs_field>.
      WRITE: <fs_field>.
    ENDDO.
    SKIP.
  ENDLOOP.

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值