sap abap ziehen Daten aus mehreren Tabellen in 1-Objekt
Ich entschuldige mich für die wahrscheinlich Anfänger-Frage, aber ich bin kurz auf Zeit. Im Prinzip brauche ich die pull-Daten aus 2 Tabellen in 1-Objekt. Beide Tabellen teilen, Geräte-Nummer, und ich brauche, um die entsprechende Beschreibung aus der Tabelle EQKT und die Besitzer-ID aus EQUZ.
DATA: BEGIN OF t_report OCCURS 3,
matnr LIKE eqkt-equnr,
mtart LIKE eqkt-eqktx,
maktx LIKE equz-J_3GEIGNER,
END OF t_report.*-
DATA: d_repid LIKE sy-repid.
*-----------------------------------------
*--Selection Screen
SELECT-OPTIONS: s_matnr FOR eqkt-equnr.
*-----------------------------------------
START-OF-SELECTION.
*-Read data
SELECT * FROM eqkt
WHERE equnr IN s_matnr.
CLEAR makt.
SELECT SINGLE *
FROM makt
WHERE matnr = eqkt-equnr AND
spras = sy-langu.
MOVE: eqkt-equnr TO t_report-matnr,
eqkt-eqktx TO t_report-mtart.
APPEND t_report.
ENDSELECT.
*This is where it stops working.
SELECT * FROM EQUZ
WHERE equnr IN s_matnr.
MOVE: EQUZ-J_3GEIGNER TO t_report-maktx.
APPEND t_report.
ENDSELECT.
Den code kompiliert, und in der ALV, in dem ich es anzeigen, tut es richtig angezeigt die "Besitzer" an der Spitze der Tabelle, aber es werden keine Daten gefüllt wird für die Eigentümer (die Ausrüstung, die Anzahl und Beschreibung werden korrekt angezeigt)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die zweite Schleife sollte nicht hinzufügen, neue Einträge in der Tabelle, aber es sollte eher füllen Sie die Dritte Spalte in der Tabelle, das war im Grunde gefüllt, in der ersten Runde, richtig?
Wenn dies so ist, bewegen Sie den zweiten wählen Sie in der ersten wählen Sie, und tun es die gleiche Weise, wie Sie es mit Tabelle
MAKT
nämlichAber wenn Sie wirklich wollen, zu halten zwei Schleifen, müssen Sie die Verwendung von field-symbols in der zweiten Schleife, wie folgt aus:
Diese Weise werden die Werte aus Tabelle
EQUZ
werden Hinzugefügt, um den richtigen Datensatz in der internen TabelleT_RECORD
.Btw, ein zusätzlicher Tipp: verwenden Sie keine
OCCURS
, sondern erklären Sie den Tabellen ausdrücklich. In deinem Fall sollte es so sein:Natürlich, dann können Sie nicht verwenden, die header-Zeile, aber verwenden
S_REPORT
als Arbeit-Bereich und zum Beispiel schreibenAPPEND S_RECORD TO T_RECORD
stattAPPEND T_RECORD
(aber es wird Ihr code nur besser und einfacher zu Lesen und zu verwalten).Was Sie tun müssen, ist eine VERKNÜPFUNG, in:
(In deinem Beispiel haben Sie nicht das Feld
MTART
definiert in der Tabelle, aber Sie bewegen Sie es in Ihrem code. Sie können natürlich einfach anpassen, in diesem Beispiel, wie Sie benötigen).