ABAP 内表指针使用

  REPORT  ZCMH11.
TYPE-POOLS: slis.

* Field Catalog for List Viewer Control

DATA: gt_fcat TYPE lvc_t_fcat,
  gh_fcat LIKE LINE OF gt_fcat.

DATA: gt_dyn TYPE REF TO data.
DATA: gh_line TYPE REF TO data.

FIELD-SYMBOLS: <fs_table> TYPE ANY TABLE,
  <fs_line> TYPE ANY,
  <fs_field> TYPE ANY.

*----------------------------------------------------------------------*

* START-OF-SELECTION

*----------------------------------------------------------------------*

START-OF-SELECTION.

* Create Field catalog

  gh_fcat-col_pos = 1.
  gh_fcat-fieldname = 'ID'.
  APPEND gh_fcat TO gt_fcat.

  gh_fcat-col_pos = 2.
  gh_fcat-fieldname = 'NAME'.
  APPEND gh_fcat TO gt_fcat.

* Create Dynamic Data Table

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

* Create a new Line with the same structure of the table

  ASSIGN gt_dyn->* TO <fs_table>.

  CREATE DATA gh_line LIKE LINE OF <fs_table>.

  ASSIGN gh_line->* TO <fs_line>.

* Fill Data Table

  ASSIGN COMPONENT 1 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = '001'.

  ASSIGN COMPONENT 2 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = 'RAY1'.

  INSERT <fs_line> INTO TABLE <fs_table>.
*-----------------

  ASSIGN COMPONENT 1 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = '002'.

  ASSIGN COMPONENT 2 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = 'RAY2'.

  INSERT <fs_line> INTO TABLE <fs_table>.
*----------------------
  ASSIGN COMPONENT 1 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = '003'.

  ASSIGN COMPONENT 2 OF STRUCTURE <fs_line> TO <fs_field>.

  <fs_field> = 'RAY3'.

  INSERT <fs_line> INTO TABLE <fs_table>.
*----------------------------



* Display Data Table
* 修改I内表里编码是 002 的名称
  LOOP AT <fs_table> ASSIGNING <fs_line> .

    ASSIGN COMPONENT 'ID' OF STRUCTURE <fs_line> TO <fs_field>.
    if <fs_field> = '002'.
      ASSIGN COMPONENT 'NAME' OF STRUCTURE <fs_line> TO <fs_field>.
      <fs_field> = 'NAME3'.
    endif.

  ENDLOOP.
* 输出内表数据
LOOP AT <fs_table> ASSIGNING <fs_line> .

      WRITE: / <fs_line>.

  ENDLOOP.


原著地址:http://blog.youkuaiyun.com/heng0757/article/details/6701697?locationNum=2&fps=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值