Code: Alles auswählen.
FIELD-SYMBOLS:
<ls_ekt> LIKE LINE OF gt_ekt,
<la_alv> TYPE ANY,
<la_field> TYPE ANY.
LOOP AT gt_ekt ASSIGNING <ls_ekt>.
APPEND INITIAL LINE TO <gt_alv> ASSIGNING <la_alv>.
* Für Felder mit gleichem Namen
MOVE-CORRESPONDING <ls_ekt> TO <la_alv>.
* Für Felder mit unterschiedlichem Namen
ASSIGN COMPONENT 'FELDXYZ' OF STRUCTURE <la_alv> TO <la_field>.
<la_field> = <la_alv>-feldabc.
ENDLOOP.
Hi,a-dead-trousers hat geschrieben:hi!lg ADTCode: Alles auswählen.
FIELD-SYMBOLS: <ls_ekt> LIKE LINE OF gt_ekt, <la_alv> TYPE ANY, <la_field> TYPE ANY. LOOP AT gt_ekt ASSIGNING <ls_ekt>. APPEND INITIAL LINE TO <gt_alv> ASSIGNING <la_alv>. * Für Felder mit gleichem Namen MOVE-CORRESPONDING <ls_ekt> TO <la_alv>. * Für Felder mit unterschiedlichem Namen ASSIGN COMPONENT 'FELDXYZ' OF STRUCTURE <la_alv> TO <la_field>. <la_field> = <la_alv>-feldabc. ENDLOOP.
Du weist zur Laufzeit wie dein Feld heißt, denn sonst hättest du nicht den Feldkatalog erstellen können. Also kannst du dir den Feldnamen z.B. auch zusammenbauen.autohandel7 hat geschrieben:was einst du mit : ASSIGN COMPONENT 'FELDXYZ',
bei mir jedes mal kann sein, das bei get_eket-date-ID kann immer unterschindliche namen sein.
Code: Alles auswählen.
CONCATENATE 'FELD' 'XYZ' INTO ld_feld.
ASSIGN COMPONENT (ld_feld) OF STRUCTURE <la_alv> TO <la_field>.
Code: Alles auswählen.
ASSIGN COMPONENT (<ls_ekt>-date_id) OF STRUCTURE <la_alv> TO <la_field>.
OK, aber ich brauche kein Name, sondern Wert.a-dead-trousers hat geschrieben:Das von mir war nur ein BEISPIEL wie man auf Komponenten einer dynamisch erstellten Struktur/Tabelle zugreifen kann.
Du weist zur Laufzeit wie dein Feld heißt, denn sonst hättest du nicht den Feldkatalog erstellen können. Also kannst du dir den Feldnamen z.B. auch zusammenbauen.autohandel7 hat geschrieben:was einst du mit : ASSIGN COMPONENT 'FELDXYZ',
bei mir jedes mal kann sein, das bei get_eket-date-ID kann immer unterschindliche namen sein.Oder umgelegt auf deinen Anwendungsfall:Code: Alles auswählen.
CONCATENATE 'FELD' 'XYZ' INTO ld_feld. ASSIGN COMPONENT (ld_feld) OF STRUCTURE <la_alv> TO <la_field>.
Code: Alles auswählen.
ASSIGN COMPONENT (<ls_ekt>-date_id) OF STRUCTURE <la_alv> TO <la_field>.
Code: Alles auswählen.
LOOP AT gt_ekt ASSIGNING <ls_ekt>.
APPEND INITIAL LINE TO <gt_alv> ASSIGNING <la_alv>.
*...
ASSIGN COMPONENT (<ls_ekt>-date_id) OF STRUCTURE <la_alv> TO <la_field>.
<la_field> = <ls_ekt>-plan_date_low.
*...
ENDLOOP.
Ach so... Jetzt versteh ich auf was du hinaus willst.autohandel7 hat geschrieben:Danke,
da gibt es noch eine Frage, erstmal ich soll pruffen ob Ebeln gleich ist, dann POS gleisch ist und nur dann neue lienie schreiben.
und meine <gt_alv> hat kein kopf zeilen, deshalb kann ich nicht zum feld-name zugreifen.
wie kann man es vergleichen?
Code: Alles auswählen.
DATA:
ls_key LIKE LINE OF gt_ekt.
FIELD-SYMBOLS:
<ls_ekt> LIKE LINE OF gt_ekt,
<la_alv> TYPE ANY,
<la_field> TYPE ANY.
LOOP AT gt_ekt ASSIGNING <ls_ekt>.
* Gruppenstufenverarbeitung
IF ls_key-ebeln NE <ls_ekt>-ebeln OR ls_key-ebelp NE <ls_ekt>-ebelp.
APPEND INITIAL LINE TO <gt_alv> ASSIGNING <la_alv>.
MOVE-CORRESPONDING <ls_ekt> TO <la_alv>.
ls_key = <ls_ekt>.
ENDIF.
ASSIGN COMPONENT (<ls_ekt>-date_id) OF STRUCTURE <la_alv> TO <la_field>.
<la_field> = <la_alv>-plan_date_low.
ENDLOOP.
Danke, für deine Hilfe,a-dead-trousers hat geschrieben:Ach so... Jetzt versteh ich auf was du hinaus willst.autohandel7 hat geschrieben:Danke,
da gibt es noch eine Frage, erstmal ich soll pruffen ob Ebeln gleich ist, dann POS gleisch ist und nur dann neue lienie schreiben.
und meine <gt_alv> hat kein kopf zeilen, deshalb kann ich nicht zum feld-name zugreifen.
wie kann man es vergleichen?Code: Alles auswählen.
DATA: ls_key LIKE LINE OF gt_ekt. FIELD-SYMBOLS: <ls_ekt> LIKE LINE OF gt_ekt, <la_alv> TYPE ANY, <la_field> TYPE ANY. LOOP AT gt_ekt ASSIGNING <ls_ekt>. * Gruppenstufenverarbeitung IF ls_key-ebeln NE <ls_ekt>-ebeln OR ls_key-ebelp NE <ls_ekt>-ebelp. APPEND INITIAL LINE TO <gt_alv> ASSIGNING <la_alv>. MOVE-CORRESPONDING <ls_ekt> TO <la_alv>. ls_key = <ls_ekt>. ENDIF. ASSIGN COMPONENT (<ls_ekt>-date_id) OF STRUCTURE <la_alv> TO <la_field>. <la_field> = [b]<la_alv>-plan_date_low.[/b] ENDLOOP.
Danke, es wieder eine Fehle.a-dead-trousers hat geschrieben:ups sorry, natürlich gehört da <ls_etk>-plan_date_low.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
autohandel7
Danke Dir für Hilfe.a-dead-trousers hat geschrieben:Prüf mal ob in DATE_ID der richtige Name drinnensteht.
Generell ist mein Coding nur als Beispiel zu sehen und nicht die fertige Lösung die du brauchst.
Es fehlen daher noch so ziemlich alle Fehlerverarbeitungen. Dafür bist du verantwortlich, da ich dein SAP-Umfeld nicht kenne. Schau dir die Hilfe zu ASSIGN an.
lg ADT