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.
评论