Code: Alles auswählen.
if x='1'
tabname = 'tab1'.
select * from tab1 into i_tab1.
elseif x='2'
tabname = 'tab2'.
select * from tab2 into i_tab2.
elseif x='3'
tabname = 'tab3'.
select * from tab3 into i_tab3.
endif
Code: Alles auswählen.
FIELD-SYMBOLS <t> TYPE ANY TABLE.
if x='1'.
tabname = 'tab1'.
itabname = 'i_tab1[]'.
elsif x='2'.
tabname = 'tab2'.
itabname = 'i_tab2[]'.
elsif x='3'.
tabname = 'tab3'.
itabname = 'i_tab3[]'.
endif.
ASSIGN (itabname) TO <t>
select * from (tabname) into TABLE <t> ....
Code: Alles auswählen.
FIELD-SYMBOLS: <f> TYPE ANY.
...
wa = 'wa1'.
...
ASSIGN (wa) TO <f>.
...
SELECT * FROM (tabname) INTO <f> ...
ja, wie soll denn die Weiterverarbeitung aussehen? Wenn du in den einzelnen Tabellen die Felder gezielt ansprechen möchtest, dann geht das natürlich auch dynamisch, aber macht das dann Sinn??Anonymous hat geschrieben:Der Assign-Befehl ist nicht uninteressant, aber wie soll nun die Weiterverarbeitung der verschiedenen Tabelle stattfinden.
Funktionieren wird es schon, nur jetzt, wo klar ist, was Du mit den itabs vorhast, würde ich wirklich von ASSIGN abraten, es geht auch einfacher.Veritas hat geschrieben:Zu Vorschlag 2 (Frank Dittrich)
Muss ich mal ausprobieren. Aber geht erst am Mittwoch :)
Ich melde mich wieder und sage dann bescheid, ob das gefunzt hat.
Code: Alles auswählen.
CASE x.
WHEN '1'.
PERFORM download TABLES itab1 USING 'tab1'.
WHEN '2'.
PERFORM download TABLES itab2 USING 'tab2'.
WHEN '3'.
PERFORM download TABLES itab3 USING 'tab3'.
ENDCASE.
....
FORM download TABLES itab USING tabname.
SELECT * from (tabname) INTO TABLE itab.
...
* Aufruf WS_DOWNLOAD mit Übergabe von itab.
ENDFORM.