Auf Feldsysmbolnamen dynamisch zugreifen

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

Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag zusammen,

ich habe ein Feldsymbol oben definiert.
z,

Unten laufe ich es per loop durch

LOOP AT data_z ASSIGNING <ls_z>.

Wie kann ich diesen Loop dynamisch aufbauen, sodas wenn z1, z2, z3 als Feldsymbol hinzukommt dynamisch z1-zn abgearbeitet wird.


Viele Grüße
Kaim

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


Re: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
Du läufst durch eine Tabelle und ordnest die aktuelle Zeile deinem Feldsymbol zu. Was möchtest du da noch dynamisieren?
Wenn du weitere Feldsymbole hast, möchtest Du dann mehrere Loops über dieselbe Tabelle hintereinanderweg machen, geschachtelte Loops oder...?
Ich habe die Aufgabenstellung anscheinend noch nicht ganz verstanden.
(ASSIGN und GET REFERENCE dürften die notwendigen Befehle sein.)

Re: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Hallo,

momentan habe ich folgendes stehen:

field-symbols:
z,
..
..
..
unten ist der Loop wie folgt im Coding

LOOP AT hdr_z ASSIGNING <ls_z>.

Wie muss jetzt der LOOP dynamisch aussehen, damit wenn

field-symbols:
z,
z1,
z2,
z3,

steht. Der Loop muss erkennen wieviele z's gibt und diese abarbeiten.

Viele Grüße
Kaim

Re: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also wenn ich das recht verstehe - deine Struktur LS_Z - hat beliebeig viele Felder also Z, Z1, Z2 etc. - richtig oder wie meinst du ? Etwas verwirrend was du da schreibst
Aber wenn es so wie ich denke ist - dann so

...
field-symbosl <fs_any> type any.
data anzahl type i.

loop at hdr_z assigning <ls_z>.
do.
assign component sy-index of structure <ls_z> to <fs_any>.
if sy-subrc = 0.
add 1 to anzahl.
else.
exit.
endif.
enddo.
endloop.
write: / 'Du hast', anzahl, 'Z-Felder in deiner Struktur'.


Gruss Jens
thanks Jens

Re: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Also ich habe den Sinn dahinter immer noch nicht ganz verstanden, aber aus meinem Verständnis heraus würde ich folgendes tun:
das Fieldsymbol zeigt ja auf eine Struktur. Demzufolge würde ich nur 1 fieldsymbol setzen und das in einer DO Schleife nacheinander besetzen lassen:

Code: Alles auswählen.

FIELD-SYMBOLS: <fs_z> TYPE ANY.

DO 4 TIMES.
  CASE sy-index.
    WHEN 1.
      ASSIGN ls_struktur1 TO <fs_z>.
   WHEN 2.
     ASSIGN ls_struktur2 TO <fs_z>.
* ... usw.
  ENDCASE.
  LOOP AT hdr_z INTO <ls_z>.
*... deine Verarbeitung
  ENDLOOP.
  UNASSIGN <fs_z>
ENDDO.
Gruß,
der Matze

Re: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Ich glaube hier wird nach einer Möglichkeit gefragt um zur Laufzeit die aktuell (statisch) im Programm vorhandenen Feldsymbole auszulesen.
Erst mal: Das geht nicht!

Interessanter wird es dann schon zu fragen, was das Programm für das diese Lösung gedacht war, eigentlich bewerkstelligen sollte.
ABAP bietet eine große Menge an Funktionen zur dynamischen Programmierung.

Abgesehen von den hier bereits erwähnten ASSIGN COMPONENT sowie GET REFERENCE gibts es auch noch CREATE DATA und das komplette RTTI/RTTC Framework. Aber hier muss man immer von der Daten-Sicht ausgehen:
Sprich man kann nur Daten verarbeiten, nicht aber auf den Programmcode reagieren.
Daher vermute ich, dass wir hier erst weiterkommen, wenn wir die Anforderung an das Programm kennen und nicht nur das "Problem" wo es nach Ansicht des Programmierers hackt. (Vermutlich auch weil man die Möglichkeiten die ABAP anbietet entweder unter- oder überschätzt hat)

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: Auf Feldsysmbolnamen dynamisch zugreifen

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
@kaim: Genau an diese Stelle verstehe ich nicht:
kaim77 hat geschrieben:
Der Loop muss erkennen wieviele z's gibt und diese abarbeiten.
Der Loop arbeitet schliesslich nicht die Feldsymbole ab, sondern er arbeitet eine Tabelle ab und weist jeweils die aktuelle Tabellenzeile dem Feldsymbol zu.
Was meinst Du mit "Abarbeiten der z's"?

Seite 1 von 1

Vergleichbare Themen

0
Antw.
3191
Views
Von Java auf SAP zugreifen
von Challana » 27.07.2007 09:40 • Verfasst in Java & SAP®
2
Antw.
5752
Views
Von Servlet auf SAP zugreifen
von Challana » 27.07.2007 09:48 • Verfasst in Java & SAP®
0
Antw.
1093
Views
Auf MBS SQL-Server zugreifen
von bohne » 24.10.2005 11:52 • Verfasst in ABAP® für Anfänger
2
Antw.
2105
Views
Auf Textsymbole programmseits zugreifen
von KleinerEisbaer » 14.09.2007 10:11 • Verfasst in ABAP® für Anfänger
2
Antw.
1585
Views
Auf Subdynpro-Felder zugreifen
von joergjoerg » 03.05.2006 11:19 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Regex in where
vor 2 Stunden von edwin 7 / 162
Daten an Tabelle binden
vor 15 Stunden von Bright4.5 3 / 1486

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

Regex in where
vor 2 Stunden von edwin 7 / 162
Daten an Tabelle binden
vor 15 Stunden von Bright4.5 3 / 1486

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821