Felder einer dyn.internen Tabelle zuweisen

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Felder einer dyn.internen Tabelle zuweisen

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

wer weiß wie ich es hinbekomme, bei einer dyn.erstellten ITAB Felder zuzuweisen.

Momentan geht nur:

loop at atab into <ls_itab>.
append <ls_itab> to <lt_itab>.
endloop.

ich möchte aber gerne genau die Felder bestimmen und zuweisen. Ich weiß aber nicht wie!!!

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


Beitrag von popeiko (ForumUser / 47 / 0 / 1 ) »
Wenn du die Feldnamen weißt, kannst du einzelne Felder des Arbeitsbereichs einem Feldsymbol zuweisen.

Code: Alles auswählen.

field-symbols:
  <feld> type any.

...
assign component 'FELD1' 
  of structure <ls_itab> to <feld>.
Wenn du die Feldnamen nicht weißt, musst du sie über die Klasse CL_ABAP_TABLEDESCR bzw. CL_ABAP_STRUCTDESCR ermitteln.

Gruß, Heiko.
Zuletzt geändert von popeiko am 09.03.2005 15:19, insgesamt 1-mal geändert.

Re: Felder einer dyn.internen Tabelle zuweisen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Thorsten hat geschrieben:Hallo,

wer weiß wie ich es hinbekomme, bei einer dyn.erstellten ITAB Felder zuzuweisen.

Momentan geht nur:

loop at atab into <ls_itab>.
append <ls_itab> to <lt_itab>.
endloop.

ich möchte aber gerne genau die Felder bestimmen und zuweisen. Ich weiß aber nicht wie!!!
schau Dir mal den Befehl ASSIGN COMPONENT an.
Da Du eine dynamische Tabelle hat, wirst Du wahrscheinlich die Felder dazu in einer Tabelle definiert haben.
Das Ganze wird typischerweise in einer DO-Schleife abgehandelt.

Nachtrag: ein sogenannter Doppelpost... :D

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moin.

Müßte mit Feldsymbolen vom Typ ANY gehen. Ich schreibsel hier mal 'n Coding hin, ist aber aus dem Kopf programmiert und nicht getestet.

Code: Alles auswählen.

FIELD-SYMBOLS
    : <l_field>  TYPE ANY
    , <l_field2> TYPE ANY
    , <ls_itab2> TYPE ANY
    .
LOOP AT atab INTO <ls_itab>.
  ASSIGN COMPONENT 'FELD1'          " *
         OF STRUCTURE <ls_itab>     " *
         TO <l_field>.              " *
  IF sy-subrc IS INITIAL.           " *
    ASSIGN COMPONENT 'FELD1'        " *
           OF STRUCTURE <ls_itab2>  " *
           TO <l_field2>.           " *
    IF sy-subrc IS INITIAL.         " *
      MOVE <l_field> TO <l_field2>. " *
      APPEND <ls_itab2> TO <lt_itab>.
    ENDIF.
  ENDIF.
ENDLOOP.
Die mit "*" markierte Codingstrecke natürlich für Deine gesamte Feldliste und den APPEND am Ende. :wink:

Gruss,
Haubi

/edit: wie jetzt, zwei andere waren schneller und dann auch noch popeiko dabei... :shock:
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von Thorsten ( / / 0 / 3 ) »
Hallo Haubi,

klappte fast so (ein Assign fehlte). Danke. Jetzt habe ich nur noch das Problem, dass ich den Feldnamen zusammenbaue. Sobald ich dann beim ASSIGN die Variable oder ein Field-Symbol angebe, kommt SY-SUBRC 4 und er erkennt das Feld nicht. Wie gesagt, ich habe es als Variable und Feld-Symbol probiert. Leider nichts. Vielleicht weißt Du ja noch was. Wäre toll.

z.B.
concatenate 'Feld' zahl into vari.
und
Assign vari to <feld>.

und dann

ASSIGN COMPONENT <VARI> " *
OF STRUCTURE <ls_itab2> " *
TO <l_field2>.

geht leider nicht!?

mfg
Thorsten

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Thorsten hat geschrieben:Hallo Haubi,

klappte fast so (ein Assign fehlte). Danke. Jetzt habe ich nur noch das Problem, dass ich den Feldnamen zusammenbaue. Sobald ich dann beim ASSIGN die Variable oder ein Field-Symbol angebe, kommt SY-SUBRC 4 und er erkennt das Feld nicht. Wie gesagt, ich habe es als Variable und Feld-Symbol probiert. Leider nichts. Vielleicht weißt Du ja noch was. Wäre toll.

z.B.
concatenate 'Feld' zahl into vari.
und
Assign vari to <feld>.

und dann

ASSIGN COMPONENT <VARI> " *
OF STRUCTURE <ls_itab2> " *
TO <l_field2>.

geht leider nicht!?

mfg
Thorsten
der Befehl hört auf den Syntax:

Code: Alles auswählen.

ASSIGN COMPONENT 'Feldname' OF ...
ASSIGN COMPONENT vari OF ...
* oder 
ASSIGN COMPONENT index OF ...
wenn der Inhalt von vari nicht dem Namen eines Feldes entspricht, kommt tatsächlich SY-SUBRC = 4

Also mal im Debugger schauen, wie der Feldname in der Varablen aussieht.

Beitrag von popeiko (ForumUser / 47 / 0 / 1 ) »
Bei einem ASSIGN COMPONENT müssen die Feldnamen groß geschrieben werden.

Code: Alles auswählen.

concatenate 'Feld' zahl into vari.

*>>>
TRANSLATE vari TO UPPER CASE.
*<<<

ASSIGN COMPONENT vari " *
OF STRUCTURE <ls_itab2> " *
TO <l_field2>.

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

so einfach kann es sein. Das klappte auch mit dem GROßSCHREIBEN. Aber jetzt habe ich noch ein Problem. Ich habe z.B eine dyn.Tabelle mit den Feldern Feld1 - Feld50. Jetzt loope ich über eine andere Tabelle und möchte aus dieser Tabelle den Betrag je nach Sy-Tabix in das Feld Feldxx der dyn.Tabelle setzen. Das Problem ist, dass der ASSIGN die Tabelle, in der ich die Felder zuweise, immer wieder initialisiert. Wie kann ich den aktuellen Zwischenstand festhalten? Also sobald ich Loop at atab assigning <tab1> mache, und das Feld2 der dyn.Tabelle schon gefüllt war, ist es danach wieder init und FELD1 ist wieder nur gefüllt, weil es aus dem aktuellen Loop kommt. Kann man das verhindern?

Also ich möchte die ersten 50 Einträge der Tabelle ATAB-BETRG in die Felder der Dyn.Tabelle Feld1 - Feld50 übertragen.

mfg
T.Herter

Hat sich erledigt!! Danke an Alle

Beitrag von Thorsten ( / / 0 / 3 ) »
:D Problem gelöst, Danke an Alle!!! :lol:

Seite 1 von 1

Vergleichbare Themen

7
Antw.
8665
Views
Felder einer internen Tabelle hinzufügen + Join
von LukasHD » 05.02.2013 10:34 • Verfasst in ABAP® für Anfänger
2
Antw.
11849
Views
Mit Loop die Felder einer internen Tabelle ansprechen
von jharris » 22.10.2009 08:43 • Verfasst in ABAP® für Anfänger
1
Antw.
1538
Views
Einer dynamisch ermittelten Tabelle Werte zuweisen
von SAP_ENTWICKLER » 24.05.2018 13:23 • Verfasst in ABAP® Core
1
Antw.
3831
Views
Interner Tabelle ohne Kopfzeile aus anderer Werte zuweisen
von kaim77 » 29.05.2014 12:29 • 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.