Code: Alles auswählen.
FIELD-SYMBOLS: <f_mara> TYPE any.
data: dref TYPE REF TO data.
CREATE DATA dref type ('MARA').
assign dref->* to <f_mara>.
Code: Alles auswählen.
field-symbols: <it_f_mara> type table.
CREATE DATA dref TYPE STANDARD TABLE OF ('MARA').
Code: Alles auswählen.
"TABLE" konnte nicht interpretiert werden. Mögliche Fehlerursachen:
Falsche Schreibweise oder Kommafehler.
Code: Alles auswählen.
CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
Code: Alles auswählen.
REPORT z_test_burr LINE-SIZE 200.
tables: mara.
data: wa_mara type mara.
DATA:
gt_fieldcatalog TYPE lvc_t_fcat,
it_mara_ref TYPE REF TO data,
wa_mara_ref TYPE REF TO data,
g_struc_name TYPE dd02l-tabname VALUE 'MARA'.
FIELD-SYMBOLS:
<it_mara> TYPE ANY TABLE,
<wa_mara> TYPE ANY.
* Feldkatalog aus Struktur bauen
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = g_struc_name
I_BYPASSING_BUFFER = 'X'
I_CLIENT_NEVER_DISPLAY = ' '
CHANGING
ct_fieldcat = gt_fieldcatalog
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
* Zeiger auf dynamisch generierte Tabelle ermitteln
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fieldcatalog
IMPORTING
ep_table = it_mara_ref
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
* Tabelle einem Feldsymbol zuweisen
ASSIGN it_mara_ref->* TO <it_mara>.
* Arbeitsbereich dynamisch erzeugen
CREATE DATA wa_mara_ref LIKE LINE OF <it_mara>.
ASSIGN wa_mara_ref->* TO <wa_mara>.
SELECT SINGLE * FROM mara.
Code: Alles auswählen.
LOOP AT gt_fieldcatalog ASSIGNING <wa_fcat>.
ASSIGN COMPONENT <wa_fcat>-fieldname OF STRUCTURE <wa_mara> TO <field>.
IF sy-subrc EQ 0.
... " tu, was Du fedlweise tun musst...
ENDIF.
ENDLOOP.