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.csdn.net/heng0757/article/details/6701697?locationNum=2&fps=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章