Code: Alles auswählen.
data: strucname type dd40l-typename.
DATA: table TYPE REF TO data.
" Testdaten - normalerweise wird das über importing-parameter gefüllt:
APPEND 'MARA' to me->tables.
APPEND 'MARC' to me->tables.
LOOP AT me->tables ASSIGNING FIELD-SYMBOL(<table>).
" Ich brauche einen Tabellentyp für die Tabelle type standard table
select single typename
from dd40L into strucname
where rowtype = <table>
and rowkind = 'S'
and accessmode = 'T'.
" Hier deklariere ich die Standard-Tabelle
ASSIGN strucname TO FIELD-SYMBOL(<strucname>).
CREATE DATA table TYPE (<strucname>).
assign table to field-symbol(<table_>).
* Wenn ich <table_> oder <strucname> einem Funktionsbaustein
* per tables-Parameter übergebe, erhalte ich die Meldung
* "... ist keine interne Tabelle"
ENDLOOP.
Code: Alles auswählen.
assign table->* to field-symbol(<table_>).
Code: Alles auswählen.
field-symbols: <table_> type standard table.
Code: Alles auswählen.
CREATE DATA table TYPE STANDARD TABLE OF (<table>).
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
ralf.wenzel
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZCREATE_DYNTAB
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zcreate_dyntab.
DATA gv_ddic_name TYPE string VALUE 'MAKT'.
FIELD-SYMBOLS:
<dyn_rec> TYPE any,
<dyn_tab> TYPE STANDARD TABLE.
DATA:
l_ref_type_descr_ddic TYPE REF TO cl_abap_typedescr,
l_ref_type_descr_line TYPE REF TO cl_abap_typedescr,
l_ref_struct_descr_line TYPE REF TO cl_abap_structdescr,
l_tab_component TYPE cl_abap_structdescr=>component_table.
DATA:
lop_tabledescr TYPE REF TO cl_abap_tabledescr,
ldp_dynaic_record TYPE REF TO data,
ldp_dyn_table TYPE REF TO data,
lop_strucdescr TYPE REF TO cl_abap_structdescr.
l_ref_type_descr_ddic = cl_abap_typedescr=>describe_by_name( gv_ddic_name ).
l_ref_struct_descr_line ?= l_ref_type_descr_ddic.
l_tab_component = l_ref_struct_descr_line->get_components( ).
lop_strucdescr = cl_abap_structdescr=>create( l_tab_component ).
CREATE DATA ldp_dynaic_record TYPE HANDLE lop_strucdescr.
lop_tabledescr ?= cl_abap_tabledescr=>create( p_line_type = lop_strucdescr ).
CREATE DATA ldp_dyn_table TYPE HANDLE lop_tabledescr.
ASSIGN ldp_dynaic_record->* TO <dyn_rec>.
ASSIGN ldp_dyn_table->* TO <dyn_tab>.
break TRON.
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
ralf.wenzel