漠丶涯

The demo example of variable table

---------------use se38 to create the program-----------

PARAMETERS:P_NAME TYPE TABNAME.
DATA: DYN_TABLE TYPE REF TO DATA.
DATA: DYN_WA TYPE REF TO DATA.
FIELD-SYMBOLS: <DYN_TABLE> TYPE TABLE, "内表指针
               <DYN_WA>    TYPE ANY.    "工作区指针
*创建动态表结构
CREATE DATA DYN_TABLE TYPE TABLE OF (P_NAME).
*创建动态内表
ASSIGN DYN_TABLE->* TO <DYN_TABLE>.
*创建动态工作区结构
CREATE DATA DYN_WA LIKE LINE OF <DYN_TABLE>.
*创建动态工作区
ASSIGN DYN_WA->* TO <DYN_WA>.
*从动态表中取数到动态内表中
 SELECT *
  INTO CORRESPONDING FIELDS OF TABLE <DYN_TABLE> UP TO 100 ROWS
  FROM (P_NAME).
*对取出数据进行处理
LOOP AT <DYN_TABLE> ASSIGNING <DYN_WA>.
  "内表数据处理
ENDLOOP.
*显示内表中的数据
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME = P_NAME
  TABLES
    T_OUTTAB         = <DYN_TABLE>
  EXCEPTIONS
    PROGRAM_ERROR    = 1
    OTHERS           = 2.
IF SY-SUBRC <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



评论