Nach Änderung ausführen bei Objekten einer Untertabelle.
Ich baue gerade an einer Lagerverwaltung und habe folgendes Problem:
In der Tabelle "Artikel" gibt es ein feld "Anzahl Lager".
In der Tabelle "Bestellungen" gibt es eine Untertabelle "Bestellpositionen" welche aus "Anzahl" einer Verknüpfung zum Artikel und einem Lieferstatus besteht. Nach der Änderung führe ich folgendes Skript aus um den Lagerbestand zu aktualisieren:
let myNum := Anzahl + Artikel.'Anzahl Lager';
if raw(Lieferstatus) = 3 then
Artikel.('Anzahl Lager' := myNum)
end
Das funktioniert auch alles gut. Ich hätte aber gerne die Möglichkeit, die ganze Bestellung als geliefert zu markieren. Deswegen gibt es in der Tabelle Bestellungen ein Auswahlfeld mit den gleichen Optionen wie bei den Bestellpositionen mit dem Code
if raw(Lieferstatus) = 3 then
Bestellpositionen.(Lieferstatus := 3);
if raw(Lieferstatus) = 2 then
Bestellpositionen.(Lieferstatus := 2);
if raw(Lieferstatus) = 1 then
Bestellpositionen.(Lieferstatus := 1);
end
leider updated er mir dann aber den Lagerbestand bei den einzelnen Artikeln nicht, obwohl er den Status entsprechend ändert.
Ich habe gerade schon jede Menge Varianten durchprobiert mit for i in ...
und so aber entweder es passiert garnichts, oder es passieren ganz komische Sachen. Wer kann mir bitte helfen?
3 Antworten
-
if raw(Lieferstatus) = 3 then
Bestellpositionen.(Lieferstatus := 3)
else
if raw(Lieferstatus) = 2 then
Bestellpositionen.(Lieferstatus := 2)
else
if raw(Lieferstatus) = 1 then
Bestellpositionen.(Lieferstatus := 1)
end
end
endheißt es natürlich richtig
-
Hallo Benedikt,
in diesem Fall würde ich die Formel wie folgt anpassen:
---
let me:=this;
if raw(Lieferstatus)<=3 then
Bestellpositionen.Lieferstatus:=me.Lieferstatus
end
---Wenn Lieferstatus insgesammt nur 3 Auswahlmöglichkeiten hat, dann kann man auf it then verzichten:
---let me:=this;
Bestellpositionen.Lieferstatus:=me.Lieferstatus
---Leo
-
Danke, das macht den Teil natürlich einfacher aber darum ging es eigentlich nicht ;)
Das eigentliche Problem ist, dass er das Skript welches nach Änderung der Bestellpositionen ausführen soll nicht ausführt wenn ich den Status von der übergeordneten Tabelle ändere.
Ich hab dazu was gelesen, und vermute daher, dass er das skript nicht ausführt wenn die Änderung von extern kommt?!
Der Versuch den Lagerbestand aus der Tabelle Bestellungen für alle Bestellpositionen anzupassen ist jedoch kläglich gescheitert...
Content aside
- vor 3 JahrenZuletzt aktiv
- 3Antworten
- 248Ansichten