Code: Alles auswählen.
*Start of Selection
SELECT matnr werks ekgrp FROM marc INTO ls_test
WHERE matnr IN so_matnr
AND werks IN so_werks.
APPEND ls_test TO lt_test.
ENDSELECT.
LOOP AT lt_test INTO ls_test.
SELECT * FROM mara INTO TABLE lt_mara
WHERE matnr = ls_test-matnr.
MODIFY lt_test FROM ls_test.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
abap_frischling
Code: Alles auswählen.
SELECT plumi FROM mdtb
WHERE dtnum = @ls_outtab-dtnum
AND dat01 IN @so_pdate[]
AND plumi = '+'.
INTO TABLE @DATA(lt_test).
SELECT plumi FROM mdtb
WHERE dtnum = @ls_outtab-dtnum
AND dat01 IN @so_pdate[]
AND plumi = '-'
INTO TABLE @DATA(lt_test_2).
Folgende Benutzer bedankten sich beim Autor sap_enthusiast für den Beitrag:
abap_frischling
Wo sie sind oder ob sie da sind? Also in meinem Selection Screen habe ich zwei SELECT OPTIONS eingebaut, einmal zu Materialnummer und Werk. Beides funktioniert auch. In meiner Ausgabe kommen auch Daten zu meinem ersten Select in meine Tabelle rein.
Danke für den Tipp. Werde ich mir merken :)
Code: Alles auswählen.
TYPES: BEGIN OF ty_test,
matnr TYPE marc-matnr,
werks TYPE marc-werks,
ekgrp TYPE marc-ekgrp,
matkl TYPE mara-matkl,
mtart TYPE mara-mtart,
meins TYPE mara-meins,
maktx TYPE makt-maktx,
lbkum TYPE mbew-lbkum,
dtnum TYPE mdkp-dtnum,
END OF ty_test.
DATA:
ls_test TYPE ty_test,
lt_test TYPE TABLE OF ty_test.
Korregiere mich gerne, aber ich dachte dadurch dass ich im ersten SELECT schon Daten eingeholt habe, entsteht meine erste Zeile. Wenn ich dann einen LOOP drüber spiele muss ich ja die leeren Zeilenfelder modifizieren. Oder habe ich ein Verständnisproblem?
Stimmt, wird sofort umgeändert. :)
Habe ich nachgetragen. :)
Ich dachte, die Tabelle ist leer...? Das hattest du in der Ausgangsfrage geschrieben.abap_frischling hat geschrieben: ↑17.02.2022 10:17In meiner Ausgabe kommen auch Daten zu meinem ersten Select in meine Tabelle rein.
Dann habe ich mich falsch ausgedrückt, tut mir leid. Die Tabelle ist mit dem ersten SELECT befüllt. Also matnr werks und ekgrp stehen in meiner Tabelle drinnen. Nur der LOOP funktioniert nicht.ewx hat geschrieben: ↑17.02.2022 10:21Ich dachte, die Tabelle ist leer...? Das hattest du in der Ausgangsfrage geschrieben.abap_frischling hat geschrieben: ↑17.02.2022 10:17In meiner Ausgabe kommen auch Daten zu meinem ersten Select in meine Tabelle rein.
Ich habe mir es mal im Debugger angeschaut. Die Daten für ls_mara werden selektiert. Ich habe auch die Zuweisung gemacht. ls_test hat auch den Datensatz von ls_mara. Aber die Übertragung der Struktur in meine Tabelle funktioniert nicht. Ein APPEND der ls_test TO lt_test passt nicht, ich will ja die vorhandene Zeile nutzen. Deswegen habe ich ja das MODIFY verwendet.
Code: Alles auswählen.
*At Selection-screen
SELECTION-SCREEN BEGIN OF BLOCK start WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: so_matnr FOR ls_marc-matnr DEFAULT '30660'.
SELECT-OPTIONS: so_werks FOR ls_marc-werks DEFAULT '2200'.
SELECTION-SCREEN END OF BLOCK start.
*Start of Selection
SELECT matnr werks ekgrp FROM marc INTO TABLE lt_test
WHERE matnr IN so_matnr
AND werks IN so_werks.
LOOP AT lt_test INTO ls_test.
SELECT SINGLE * FROM mara INTO ls_mara
WHERE matnr = ls_test-matnr.
ls_test-matkl = ls_mara-matkl.
ls_test-mtart = ls_mara-mtart.
ls_test-meins = ls_mara-meins.
MODIFY lt_test FROM ls_test.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
abap_frischling
Code: Alles auswählen.
LOOP AT lt_test INTO FIELD-SYMBOL(<ls_test>).
<ls_test>-matkl = ls_mara-matkl.
<ls_test>-mtart = ls_mara-mtart.
<ls_test>-meins = ls_mara-meins.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
abap_frischling
Folgende Benutzer bedankten sich beim Autor qyurryus für den Beitrag:
abap_frischling
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
abap_frischling
Wobei man darüber diskutieren könnte, ob LT_TEST und LS_TEST überhaupt original ungarisch sind. Sie sind meines Erachtens eher so eine Art ABAP-Dialekt der ungarischen Notation. 😊Und was es zur Ungarischen Notation zu wissen gibt, kann man nachlesen, z. B. im Link unten.(Ralf Wenzel)