Variablenwert in Spaltenname umwandeln

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

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

Variablenwert in Spaltenname umwandeln

Beitrag von Abap_Knirps ( / / 0 / 3 ) »
Hallo,

ich hab eine Variable z.B. Test_1 in ihr steht eine Zeichenkette wie folgt drin:
Lalala_INDEX wobei INDEX eine variable Zahl enthält, die sich öfters ändern kann. Das sieht dann so aus:
Test_1 = Lalala_1
Test_1 = Lalala_2
etc.

Jetzt hab ich noch ne Tabelle mit den Spaltennamen:
|| Lalala_1 || Lalala_2 || etc....

Sprich: Ich will mit Hilfe der Variable "Test_1" auf die jeweilige Spalte zugreifen;
Die Zeichenkette hab ich schon zusammengebastelt, aber ich weiß noch nicht, wie ich dem Programm den Variablenwert "Lalala_1" oder "Lalala_2" etc quasi so verständlich mache, dass es den Variablenwert anspricht, als wär es ein Spaltenname.


Kann mir da einer helfen?

Vielen Dank im Voraus!!!

Gruß,

Abap_Knirps

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


Was willst du eigentlich???

Beitrag von CAT ( / / 0 / 3 ) »
Vielleicht solltest du dein Problem etwas allgemeiner oder genauer Beschreiben. Sonst hilft dir vielleicht der Umgang mit Feldsymbolen weiter.

Gruß
Thomas

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Hallo ABAP-Knirps,

was du suchst sind FELDSYMBOLE.


Am besten liest du dir die Doku zu den Befehlen "FIELD-SYMBOLS" und "ASSIGN" ( hier insbes. die Version "ASSIGN (feldname) to <feldsymbol>" durch.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Abap_Knirps ( / / 0 / 3 ) »
so wirds vielleicht verständlicher:

Anstatt:
Tabelle-Lalala_1 = 110000.
Tabelle-Lalala_2 = 110000.
....etc.

So:
LOOP ...
INDEX = INDEX + 1.
concatenate 'Lalala_' INDEX INTO Test_1.
Tabelle-Test_1 = 110000.
ENDLOOP.

Beitrag von Gast ( / / 0 / 3 ) »
Abap_Knirps hat geschrieben:so wirds vielleicht verständlicher:

Anstatt:
Tabelle-Lalala_1 = 110000.
Tabelle-Lalala_2 = 110000.
....etc.

So:
LOOP ...
INDEX = INDEX + 1.
concatenate 'Lalala_' INDEX INTO Test_1.
Tabelle-Test_1 = 110000.
ENDLOOP.
Nur zur Verdeutlichung, damit ihr versteht worums sinngemäß geht...so funktionierts leider nicht...

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Mit Feldsymbolen gehts:
<fs> type any.
assign component 'test_1' of structure tabelle to <fs>.
<fs> = 110000.
also so in der art.
les am besten auch mal die Saphilfe dazu.

Beitrag von Abap_Knirps ( / / 0 / 3 ) »
Vielen Dank für eure Tipps!

Könnt ihr mir das :
Mit Feldsymbolen gehts:
<fs> type any.
assign component 'test_1' of structure tabelle to <fs>.
<fs> = 110000.
also so in der art.

genauer erklären?

Ich bekomms einfach nicht gebacken... :roll:

Vielen Dank! :D

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Abap_Knirps,

Du solltest schon mal die Hilfe zum ASSIGN und zu FIELD-SYMBOLS lesen.

Feldsymbole sind grob gesagt Zeiger, die auf andere Variablen zeigen können.
Dabei kann der Name der Variablen, die existieren muss, auch dynamisch angegeben werden.

Bei Feldern einer Struktur eignet sich besonders der ASSIGN COMPONENT, um auf die einzelnen Felder der Struktur zuzugreifen.

Code: Alles auswählen.

DATA:
  BEGIN OF feldname,
* ergibt 'LALALA_n'
    fix TYPE char7 VALUE 'LALALA_', 
    num TYPE n LENGTH 1,
  END   OF feldname,
* Arbeitsbereich für die Tabelle definieren (ist so besser lesbar)
  wa_tabelle LIKE LINE OF tabelle.

FIELD-SYMBOLS:
* 'Zeiger' auf irgendein Feld
  <fs> TYPE any.

LOOP AT tabelle INTO wa_tabelle.
* bestimme den aktuellen Index
  index = index + 1.
* setze den Index in den beabsichtigten Feldnamen
  feldname-n = index.
* Setze den 'Zeiger' auf das Strukturfeld 'WA_TABELLE-LALALA_n'
* damit bekommt das <fs> implizit den Typ von 'WA_TABELLE-LALALA_n'
  ASSIGN COMPONENT feldname OF STRUCTURE wa_tabelle TO <fs>.
* wegen des gesetzten 'Zeigers' wird hiermit implizit die Anweisung 'WA_TABELLE-LALALA_n = <wert>' ausgeführt
  <fs> = 110000.
* hier muss der Inhalt der Feldleiste 'wa_tabelle' mit MODIFY in die Tabelle 'tabelle' zurückgeschrieben werden
ENDLOOP. 
WICHTIG:
SAP kommt manchmal ins Straucheln (releaseabhängig), wenn Feldnamen nicht in Großbuchstaben angegeben werden.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

5
Antw.
5201
Views
ALV Grid Überschrift / Spaltenname
von codierknecht » 16.10.2006 10:01 • Verfasst in ABAP® für Anfänger
3
Antw.
2904
Views
ALV -> Exceptions / Lights -> Spaltenname
von m4rkusr » 26.09.2007 09:38 • Verfasst in ABAP Objects®
4
Antw.
1916
Views
Spaltenname zu eigenen Tabellentyp hinzufügen
von Dyrdek » 21.11.2016 10:00 • Verfasst in ABAP® für Anfänger
1
Antw.
3755
Views
CL_SALV_TREE Spaltenname des obersten Knotens
von alac » 31.01.2011 00:24 • Verfasst in ABAP Objects®
0
Antw.
1060
Views
Smartforms: Spaltenname für Tabelle auch DDIC?
von MacLeod » 10.11.2011 13:23 • Verfasst in ABAP® für Anfänger

Ü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

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

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 71
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1718
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8323