利用 Field Symbols 和数据参考的实例
*&--------------------------------------------------------------------
*& Report ZZSM_TEST_DYN
*&--------------------------------------------------------------------
REPORT zzsm_test_dyn.
DATA: tab_reference TYPE REF TO data,
struc_reference TYPE REF TO data.
DATA: descr TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS: <struc> TYPE ANY,
<field> TYPE ANY,
<itab> TYPE ANY TABLE.
PARAMETERS: p_table(20) DEFAULT 'LFA1' OBLIGATORY,
p_rows TYPE i OBLIGATORY.
TRY .
"Dynamic create Table & Structure"
CREATE DATA tab_reference TYPE STANDARD TABLE OF (p_table)
WITH NON-UNIQUE DEFAULT KEY.
ASSIGN tab_reference->* TO <itab>.
CREATE DATA struc_reference TYPE (p_table).
ASSIGN struc_reference->* TO <struc>.
"Get data from table"
SELECT * FROM (p_table) INTO TABLE <itab> UP TO p_rows ROWS .
"Get structure desc by struc"
descr ?= cl_abap_typedescr=>describe_by_data( <struc> ).
"Data processing logic"
LOOP AT <itab> INTO <struc>.
DO 20 TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE <struc> TO <field>.
IF sy-subrc EQ 0.
WRITE: <field>.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDLOOP.
CATCH cx_sy_create_data_error.
WRITE 'Wrong Database!'.
ENDTRY.