Event "vor Fertigungs-AKA-Abbuchung"
Event "vor Fertigungs-AKA-Abbuchung"
Der Event wird vor der Abbuchung der Rohwaren beim Arbeitskartendruck in der Fertigung aufgerufen. Als Parameter wird das aktuelle Datenmodul, die Vorgabe-Lagerliste, sowie die abzubuchende Menge übergeben. Rückgabe ist ggf. eine neue Lagerliste; optional mit maximal abzubuchender Menge je Lager.
+Hinweis{+}: Ist die Rückgabe NULL() (nicht leer!), so erfolgt keine Abbuchung von Ware für diese Fertigungsposition!
Beispiel
| nEvtNo:P1, oDM:P2, aLager:P3, nMenge:P4,
nTray, cTrayLag, i |
// Der Aufruf erfolgt direkt vor Beginn der Abbuchung einer Fertigungsauftragsposition.
// Auf alle aktuellen Tabellen kann über das Datenmodul oDM über die Standard-Aliase zugegriffen werden.
// Rückgabe : Lagernummern-/Max.Mengen-Array
// { { <Lager-Nr.-String>, <Max.Menge> }, <Lager-Nr.-String>, ... } oder Leer bzw. NULL() = keine Abbuchung.
// Das <Max.Menge>-Element stellt die max. abzubuchende Menge dar.
// Wird das <Max.Menge>-Element nicht angegeben, wird die gesamte verfügbare Lager-Menge verwendet.
// Lager "10" wird als Tray-Lager angenommen
cTrayLag := "10",
// Tray-Lager präventiv aus Lager-Array löschen
for i := 1 to Alen(aLager) do
if aLager[i] = cTrayLag then
ADelete( aLager, i ),
endif,
next,
// Verfügbare Tray-Menge wird auf Vielfaches von 12 abgerundet
nTray := Min(nMenge, Lager(cTrayLag, DBGetTable(oDM,waDAB010))),
nTray := Int(nTray / 12) * 12,
// Dem aLager-Array als erstes Element mit einer Max.Menge von nTray hinzufügen
if nTray > 0 then
AInsert(aLager, 1, { cTrayLag, nTray } ),
endif,
aLager