Feldzugriff auf Struktur dynamisch gestalten

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

Feldzugriff auf Struktur dynamisch gestalten

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Moin.

Ich beschäftige mich gerade mit der Frage ob man eine Feldzuweisung
auch dynamisch anwenden kann.

Wir kennen alle wie man ein Feld in einer Struktur anspricht.
gs_struc-fieldname = 'Test'

Jetzt habe ich mit der Methode die Feldnamen ermittelt.
Würde in abap auch sowas gehen? Im Moment meckert er noch.
Aber vielleicht hat ja jemand von euch damit Erfahrung gemacht

Code: Alles auswählen.

cl_struc ?= cl_abap_datadescr=>describe_by_data( p_data = gs_struc ).

LOOP AT cl_struc->components ASSIGNING <fs_comps>.

assign <fs_comps-name to <field>

substruc-(<field>) = 'Test'.

ENDLOOP.
Code once - Think twice

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


Re: Feldzugriff auf Struktur dynamisch gestalten

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »

Code: Alles auswählen.

REPORT.
DATA: cl_struc TYPE REF TO cl_abap_structdescr.
cl_struc ?= cl_abap_structdescr=>describe_by_data( p_data = syst ).
LOOP AT cl_struc->components ASSIGNING FIELD-SYMBOL(<component>).
  DATA(lv_fieldname) = |SYST-{ <component>-name }|.
  ASSIGN (lv_fieldname) TO FIELD-SYMBOL(<field>).
  WRITE:/ <component>-name, AT 10 <field>.
ENDLOOP.
oder alternativ

Code: Alles auswählen.

REPORT.
DATA: cl_struc TYPE REF TO cl_abap_structdescr.
cl_struc ?= cl_abap_structdescr=>describe_by_data( p_data = syst ).
LOOP AT cl_struc->components ASSIGNING FIELD-SYMBOL(<component>).
  assign COMPONENT <component>-name of STRUCTURE syst to FIELD-SYMBOL(<field>).
  WRITE:/ <component>-name, AT 10 <field>.
ENDLOOP.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Feldzugriff auf Struktur dynamisch gestalten

Beitrag von JohnLocklay (Specialist / 183 / 30 / 2 ) »
Hallo Black Adept.

Leider funzt das Coding so bei mir nicht.

Code: Alles auswählen.

DATA: cl_struc TYPE REF TO cl_abap_structdescr.
FIELD-SYMBOLS <component>    TYPE abap_compdescr.
FIELD-SYMBOLS <field> type any.


cl_struc ?= cl_abap_structdescr=>describe_by_data( p_data = syst ).
LOOP AT cl_struc->components ASSIGNING (<component>).
  assign COMPONENT <component>-name of STRUCTURE syst to (<field>).
  WRITE:/ <component>-name, AT 10 <field>.
ENDLOOP.
Er meckert immer noch an das (<component>) und (<field>) nicht existieren.
Code once - Think twice

Re: Feldzugriff auf Struktur dynamisch gestalten

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Wenn SAP Variablen in Klammern anmeckert lass die Klammern weg.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Feldzugriff auf Struktur dynamisch gestalten

Beitrag von Romaniac (Specialist / 198 / 57 / 26 ) »
Denke die Klammern kommen noch von der entfernten Inline-Deklaration, sonst muss man da ja keine setzen bei ASSIGN:

Code: Alles auswählen.

DATA: cl_struc TYPE REF TO cl_abap_structdescr.

cl_struc ?= cl_abap_structdescr=>describe_by_data( p_data = syst ).
LOOP AT cl_struc->components ASSIGNING FIELD-SYMBOL(<component>).
  ASSIGN COMPONENT <component>-name OF STRUCTURE syst TO FIELD-SYMBOL(<field>).
  WRITE:/ <component>-name, AT 10 <field>.
ENDLOOP.
Geht nicht gibts nicht

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1812
Views
Write Ausgabe mit Feldern dynamisch gestalten
von Hagbard » 25.08.2005 09:52 • Verfasst in ABAP® für Anfänger
13
Antw.
10567
Views
Struktur dynamisch bearbeiten
von isp » 02.08.2018 15:28 • Verfasst in ABAP Objects®
6
Antw.
1784
Views
Struktur dynamisch auslesen / schreiben
von Ingo » 04.08.2021 09:52 • Verfasst in ABAP® Core
36
Antw.
3582
Views
FuBA die Struktur mitgeben (dynamisch)
von L0w-RiDer » 27.03.2019 16:13 • Verfasst in ABAP® für Anfänger
3
Antw.
4296
Views
Dynamisch Struktur und Tabelle generieren und füllen
von Kresiquadratur » 16.07.2007 14:32 • 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.