SAP Jobsuche bei DV-Treff
Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo, ABAPler.

Ich habe folgende (verkürzt dargestellte) Struktur:

DATA: BEGIN OF bestand OCCURS 0,

matnr LIKE mara-matnr,

werks LIKE t001w-werks,

lgort LIKE mard-lgort,

labst LIKE mard-labst,

insme LIKE mard-insme,

DATA: END OF bestand.

Es gibt mehrere Lagerorte (1000, 1100 und 2000, 2100).

Ich möchte gerne die Bestände der Lagerorte 1000 und 1100 addieren (frei verwendbarer Bestand UND Qualitätsprüfbestand).

Und ich möchte gerne die Bestände der Lagerorte 2000 und 2100 addieren (ebenfalls frei verwendbarer Bestand UND Qualitätsprüfbestand).

Meiner Meinung nach kann ich die Werke vernachlässigen, weil es jeden Lagerort nur einmal gibt (also nicht für 2 Werke).

Wie mache ich das?

Ein Tipp würde mir schon reichen – in der Hoffnung, dass ich mir den Rest selber erschließen kann.

Vielen Dank im Voraus!

Förderer

Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Da mir noch keiner geantwortet hat, habe ich es selber ausprobiert:

DATA: ld_bestandsmenge TYPE mard-labst.

DATA: lt_bestand TYPE TABLE OF bestand.

LOOP AT lt_bestand INTO bestand

WHERE lgort = 1700.

ENDLOOP.

ld_bestandsmenge = ld_bestandsmenge + bestand-labst + bestand-insme.

Allerdings bekomme ich dann die Fehlermeldung:

"BESTAND" und der Zeilentyp von "LT_BESTAND" sind nicht ineinander konvertierbar.

Was ist das Problem?

Ist es besser mit LIKE LINE OF zu arbeiten?

Dann bekomme ich zwar keine Fehlermeldung mehr.

Aber trotz

APPEND bestand TO lt_bestand.

ist die Tabelle lt_bestand dann leer.

wreichelt
vor 7 Jahre
Hallo,

etwa so:

Data: frei1000 like mard-labst,

Ins1000 like Mars-insgesamt, das gleiche für 2000

Loop At Bestand.

If bestand-Werks = '1000' or '1100'

Frei1000 = frei1000 + bestand-labst.

......

Endif.

das gleiche für 2000

Endloop.

Write: / frei1000, ....

Gruß