Den Namen der auszulesenden Spalte dynamisch ändern

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Den Namen der auszulesenden Spalte dynamisch ändern

Beitrag von legi (ForumUser / 4 / 0 / 0 ) »
Hallo alle zusammen,

ich versuche mal meine Frage so verständlich wie möglich zu formulieren..

So sieht die fragliche Tabelle aus

Code: Alles auswählen.

Anzahl | Spalte1 | Spalte2 | Spalte3
------------------------------------
2      | wert    | wert    | INITIAL
1      | wert    | INITIAL | INITIAL
usw. Soll heissen, aus der Spalte "Anzahl" kann ich ermitteln, welche Spalten gefüllt sind (immer von links nach rechts, also von Spalte1 bis Spalte9). Nun möchte ich die Werte aus den gefüllten Spalten auslesen und anschließend konkatenieren.

Ich habe mir da eine DO-Schleife vorgestellt, die der "Anzahl"-Spalte als TIMES-Parameter nimmt und in jedem Durchlauf den Namen der Spalte um 1 erhöht.

Aber - wie schaffe ich es, den Spaltennamen dynamisch zu ändern? Irgendwie stehe ich voll auf dem Schlauch...

Danke schon mal!

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


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

z.B. mit

Code: Alles auswählen.

index = 1 + itab_wa-anzahl. "Spaltennummer bestimmen
ASSIGN COMPONENT index OF STRUCTURE itab_wa TO <field>. "Feldsymbol auf Feld #index setzen 
... "alles weitere
Gruß
Ereglam


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

Beitrag von Kaiwalker (Specialist / 168 / 0 / 0 ) »
Das geht mit einem Feldsymbol.
So zum Beispiel.

Code: Alles auswählen.

data field-symbols <feld>.
data feldname(20) type c.
data ctabix(2) type c.
data ausgabefeld(60) type c.
do tabelle-anzahl times.
  ctabix = sy-index.
  concatenate 'TABELLE-SPALTE' ctabix into feldname.
  assign (feldname) to <feld>.
  concatenate ausgabefeld <feld> into ausgabefeld.
enddo.
MfG
Kaiwalker
Möge die Macht mit euch sein.

Beitrag von legi (ForumUser / 4 / 0 / 0 ) »
Oha, das ging aber schnell :shock:

Danke schon mal euch beiden! Ein Paar Fragen hätte ich noch..

ereglam: mit index ist eine ganz normale zu definierende Variable gemeint, oder gibt es eine sy-Variable für die Spaltennummer?

Kaiwalker: bei Deinem Vorschlag ändert sich der Spaltenname nicht? Sprich, das bliebe in diesem Fall immer Spalte1?

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

ja, index ist eine x-beliebige, numerische Variable, wobei man tatsächlich auch SY-INDEX oder SY-TABIX dazu zweckentfremden könnte.

Zu KaiWalker
SY-INDEX wird in einer DO-Schleife von 1 beginnend bei jedem weiteren Durchlauf um 1 inkrementiert, wodurch die jeweilige Spalte 'SPALTEx' erreicht würde.
Gruß
Ereglam


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

Beitrag von legi (ForumUser / 4 / 0 / 0 ) »
Alles klar, vielen Dank!

Seite 1 von 1

Vergleichbare Themen

2
Antw.
5278
Views
Dynpro Namen des Textfeldes dynamisch ansprechen
von tofralu » 11.01.2018 09:05 • Verfasst in Dialogprogrammierung
2
Antw.
1376
Views
Namen der Web-Dynpro-Componenten
von RiffRaff » 17.09.2008 09:06 • Verfasst in ABAP® Core
2
Antw.
2042
Views
Generische Namen für Flatfiles
von miramar » 08.01.2007 15:36 • Verfasst in Sonstige Module
0
Antw.
1172
Views
Ermitteln von technischen Namen
von patlau » 15.04.2013 08:46 • Verfasst in ABAP® für Anfänger
2
Antw.
1698
Views
Namen eines Datenobjektes zusammensetzen
von chrislo » 28.03.2011 15:55 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.