Internen Tabellennamen dynamisch im Loop setzen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Internen Tabellennamen dynamisch im Loop setzen

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag zusammen.

ich habe in eine interne Tabelle die Namen von internen Tabellen eingetragen.

ls_tab_names-tabn = 'Tabelle1'.
APPEND ls_tab_names to lt_tab.

Ich möchte nun lt_tab loopen den Tabellennamen nehmen und innerhalb eines anderen loops den Inhalt dieser Tabelle auslesen. Ich bräcuste sowas wie ein Platzhalter. Ich habe vieles mit Feldsymbolen gesehen, aber keine Idee wie ich es machen soll.

Kurz ich habe 10 interne Tabellen die Namen enthalten. Ich möchte diese Namen einer Methode übergeben. Allerdings möchte ich nicht 10x in einem Loop die Methode aufrufen.

Danke für die Infos
Kaim

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »

Code: Alles auswählen.

FIELD-SYMBOLS: 
  <lt_table> TYPE ANY TABLE
  <ls_tab> LIKE LINE OF lt_tab,
  <la_line> TYPE ANY.
LOOP AT lt_tab ASSIGNING <ls_tab>.
  ASSIGN (<ls_tab>-tabn) TO <lt_table>.
  LOOP AT <lt_table> ASSIGNING <la_line>.
* do whatever you want to do.
  ENDLOOP.
ENDLOOP.
Um auf die einzelnen Felder der <la_line> zuzugreifen wird ASSIGN COMPONENT ... OF STRUCTURE .. TO ... benötitgt.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report ZTEST6
*&---------------------------------------------------------------------*
REPORT ZTEST6.

DATA: LT_TAB TYPE STANDARD TABLE OF STRING,
      TABELLE1 TYPE STANDARD TABLE OF MATNR.

FIELD-SYMBOLS <TABELLENKOERPER> TYPE ANY TABLE.

APPEND 'Tabelle1' TO LT_TAB.

LOOP AT LT_TAB ASSIGNING FIELD-SYMBOL(<LT_TAB>).
  ASSIGN (<LT_TAB>) TO <TABELLENKOERPER>.
  LOOP AT <TABELLENKOERPER> ASSIGNING FIELD-SYMBOL(<TABELLENZEILE>).
    " do something
  ENDLOOP.
ENDLOOP.
Da Du nicht spezifiziert hast, auf welchem Release Du sitzt, bin ich syntaktisch von einem modernen System (7.40 oder höher) ausgegangen.

Allerdings sind der Dynamik dabei Grenzen gesetzt, denn obwohl Du die Tabellennamen flexibel in Deiner internen Tabelle führst, müssen die zugehörigen internen Tabellen dennoch statisch per DATA in Deinem Programm deklariert sein. Willst Du das nicht, dann kannst Du Deinen Tabellen keine konkreten Namen geben, die Du in LT_TAB führen könntest. Stattdessen musst Du dann per CREATE DATA komplett abstrakte Datenobjekte erzeugen, die keinen Namen haben, sondern über Referenzen angesprochen werden. Diese könntest Du dann wieder in Deiner internen Tabelle führen.

Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
adt war schneller, dafür habe ich einen vollständigen, kompilierbaren Code geboten. :)

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
a-dead-trousers


Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Warum sind der Dynamik Grenzen gesetzt? Spontan würde ich sagen, dass man mit RTTI (describe_by_data) und create data eine Tabelle bauen könnte, durch die man dann den LOOP macht.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Wenn Du meinen Text richtig gelesen hättest, dann wäre Dir aufgefallen, dass ich darauf bereits eingegangen bin.

Re: Internen Tabellennamen dynamisch im Loop setzen

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Danke es hat geklappt. Super!

Viele Grüße
Kaim

Seite 1 von 1

Vergleichbare Themen

1
Antw.
727
Views
Beim Loop dynamisch den Spaltennamen setzen
von kaim77 » 13.09.2019 17:30 • Verfasst in ABAP® Core
3
Antw.
2158
Views
loop richtig setzen
von barbara » 08.08.2006 13:57 • Verfasst in ABAP® für Anfänger
2
Antw.
11834
Views
Mit Loop die Felder einer internen Tabelle ansprechen
von jharris » 22.10.2009 08:43 • Verfasst in ABAP® für Anfänger
3
Antw.
1840
Views
LOOP und WEHRE dynamisch
von Hagbard » 02.12.2005 15:21 • Verfasst in ABAP® für Anfänger
1
Antw.
1049
Views
Wertehilfe Dynamisch setzen
von SaskuAc » 13.12.2018 14:06 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 22 / 2801
Daten an Tabelle binden
vor 11 Stunden von Lukas Sanders 2 / 877
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 431

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 22 / 2801
Daten an Tabelle binden
vor 11 Stunden von Lukas Sanders 2 / 877
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 431

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2468
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050