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 / 4394 / 223 / 1182 ) »
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 / 4080 / 125 / 934 ) »
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.
1112
Views
Dynamische Variablennamen?
von mbecker » 23.03.2009 12:16 • Verfasst in ABAP® für Anfänger
3
Antw.
1783
Views
Dynamische Variablennamen
von sapdepp » 03.02.2022 15:18 • Verfasst in ABAP Objects®
8
Antw.
3904
Views
Tabellennamen herausfinden
von MichaelP » 10.05.2005 15:05 • Verfasst in ABAP® für Anfänger
2
Antw.
2977
Views
Tabellennamen herausfinden
von Franky » 07.09.2011 14:40 • Verfasst in ABAP® für Anfänger
10
Antw.
21196
Views
exec sql mit dynamischen Tabellennamen
von mailmal » 30.05.2005 16:29 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1577
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8185