tabellennamen und Variablennamen ändern

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

tabellennamen und Variablennamen ändern

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag,
ich greife im Moment auf die Tabelle "Tab_Aufnahme" zu.

LOOP AT Tab_Aufnahme INTO ls_tabelle.

Jetzt kommt eine neue Tabelle hinzu "Tab_Ende".

Ob die Tabelle "Tab_Aufnahme" oder "Tab_Ende" im LOOP verwendet wird soll durch eine Variable ermittelt werden.

Wie kann ich diese Variable an Tab_ hängen?
Gleiches baruche ich für die Variable ls_line. Hier soll die Numerierung von text04 durch eine Varaible ermittelt werden.
ls_line-text04 =

Vielen Dank
Kaim

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


Re: tabellennamen und Variablennamen ändern

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

ich würde es über eine eingebaute CASE abfrage versuchen die zweite tabelle nur bei gesetzter Variable zu lesen..

Code: Alles auswählen.

* Bedingungen deklarieren um zwischen Tabellen zu switchen *
CASE Bedingung.
  WHEN 'X'.
    LOOP AT Tab_Aufnahme INTO ls_tabelle.
*    was immer hier passieren soll
    ENDLOOP.
  WHEN ' '.
   LOOP AT Tab_Ende INTO ls_tabelle
*    was immer hier passieren soll
   ENDLOOP.
ENDCASE.
* weitere Anweisungen
Beim Schreiben is mir jetzt aufgefallen, dass ich wohl keinen LOOP sondern ein READ TABLE nutzen würde. aber das musst du nach deinen Bedürfnissen entscheiden.

Wie genau meinst du das mit der Variable die du an "Tab_" anhängen willst? meinst du eine Art Flag? Dann erweiter doch einfach deine Struktur um dieses Flag.

Zur Nummerierung: da kommt es ja mal drauf an wie und was du nummerieren willst. soll es Die Nr. des jeweiligen Schleifendurchlaufs sein, kannste die sy-index übergeben. Willst du ne eigene Zählschleife, dann musst du dir eine bauen.

Code: Alles auswählen.

DATA: lv_count TYPE i.
lv_count = 1.
LOOP At Tabelle INTO ls_line.
ls_line-text04 = lv_count.
lv_count = lv_count + 1.
ENDLOOP.
Hoffe das hilft dir bissl weiter oder das du paar mehr Infos gibst um dir besser helfen zu können.
Gruß,
der Matze

Re: tabellennamen und Variablennamen ändern

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
hi!

Es gibt auch noch den generischen Ansatz, dann verliert man aber sehr viele Komfortfunktionen in ABAP.
Außerdem ist das Ganze eher für Leute die sich schon besser in der Programmiersprache auskennen.

Ungefähr so funktionierts

Code: Alles auswählen.

data:
  tab_aufnahme type...
  tab_ende type...
field-symbols:
  <lt_table> type any table,
  <la_line> type any.
if lv_tab eq 'X'.
  assign tab_aufnahme to <lt_table>.
else.
  assign tab_ende to <lt_table>.
endif.
loop at <lt_table> assigning <la_line>.
* Verarbeitung
endloop.
Innerhalb der Schleife hat man aber keinen direkten Zugriff mehr auf die Felder der Struktur.
Zwei Möglichkeiten das zu umgehen:

Code: Alles auswählen.

MOVE-CORRESPONDING <la_line> TO ls_line.
Wobei ls_line eine typisierte Struktur ist, die alle wichtigen Felder enthält.
oder

Code: Alles auswählen.

ASSIGN COMPONENT 'MANDT' OF STRUCTURE <la_line> TO <la_field>.
Wobei <la_field> vom Typ ANY ist und man die Zuweisung an das Feldsymbol für jedes einzelne Feld durchführen muss.

Ersteres empfielt sich, wenn viele Felder bearbeitet werden sollen und die Tabelle nur wenige Einträge enthält, da hier die Daten dupliziert werden.
Zweiteres kann man immer verwenden, ist aber de facto mit viel Schreibarbeit verbunden.

lg ADT
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: tabellennamen und Variablennamen ändern

Beitrag von black_adept (Top Expert / 4136 / 131 / 956 ) »
Falls die beiden Tabellen vom selben Typ sind kannst du den Ansatz von a-d-t nehmen ohne auf den angesprochenen Komfort indem du das angesprochene Feldymbol voll typisierst.

Und auch wenn du begrenzte Informationen über den Aufbau der Tabellen hast über die du in deinem LOOP gehst kannst du mit MOVE-CORRESPDING auch ohne ASSIGN auf die dir bekannten Tabellenteile recht einfach zugreifen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1324
Views
Dynamische Variablennamen?
von mbecker » 23.03.2009 12:16 • Verfasst in ABAP® für Anfänger
3
Antw.
2881
Views
Dynamische Variablennamen
von sapdepp » 03.02.2022 15:18 • Verfasst in ABAP Objects®
2
Antw.
3136
Views
Tabellennamen herausfinden
von Franky » 07.09.2011 14:40 • Verfasst in ABAP® für Anfänger
7
Antw.
2777
Views
Probleme mit dynamischen Tabellennamen
von DerDom » 16.08.2005 08:20 • Verfasst in ABAP® für Anfänger
6
Antw.
3018
Views
Internen Tabellennamen dynamisch im Loop setzen
von kaim77 » 31.10.2018 11:52 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

SELECT SUM CUST
vor 10 Stunden von black_adept 2 / 539
TABSTRIP oder Subscreen
vor 11 Stunden von Rabea1103 1 / 523
Banf anlegen
vor 17 Stunden von IHe 3 / 11701
FS-CD schnellstmöglich lernen
vor 2 Tagen von waltersen 3 / 4394
Banf anlegen
vor einer Woche von wreichelt 2 / 12079

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

SELECT SUM CUST
vor 10 Stunden von black_adept 2 / 539
TABSTRIP oder Subscreen
vor 11 Stunden von Rabea1103 1 / 523
Banf anlegen
vor 17 Stunden von IHe 3 / 11701
FS-CD schnellstmöglich lernen
vor 2 Tagen von waltersen 3 / 4394
Banf anlegen
vor einer Woche von wreichelt 2 / 12079

Unbeantwortete Forenbeiträge

TABSTRIP oder Subscreen
vor 11 Stunden von Rabea1103 1 / 523
GUIXT Tabellen in Container ansprechen
vor 3 Wochen von Denaris 1 / 16759
Speichern Popup in MM42 verhindern
vor 3 Wochen von Noodl 1 / 17547
Meine Inbox
letzen Monat von Rabea1103 1 / 32439