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 / 4271 / 213 / 1140 ) »

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 / 1795 / 213 / 396 ) »

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 / 1795 / 213 / 396 ) »
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 / 3776 / 176 / 262 ) »
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 / 1795 / 213 / 396 ) »
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.
562
Views
Beim Loop dynamisch den Spaltennamen setzen
von kaim77 » 13.09.2019 17:30 • Verfasst in ABAP® Core
3
Antw.
2014
Views
loop richtig setzen
von barbara » 08.08.2006 13:57 • Verfasst in ABAP® für Anfänger
2
Antw.
11602
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.
1751
Views
LOOP und WEHRE dynamisch
von Hagbard » 02.12.2005 15:21 • Verfasst in ABAP® für Anfänger
1
Antw.
853
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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140