19. November 2016 11:11
19. November 2016 13:21
20. November 2016 16:29
IF PlanningRec.FINDSET THEN
BEGIN
REPEAT
IF PlanningRec."Real Planning Value" > 0 THEN
BEGIN
PlanningRec."Planning LUG" := PlanningRec."Running Planning Value" / PlanningRec."Real Planning Value";
PlanningRec.MODIFY(TRUE);
END
ELSE
BEGIN
PlanningRec."Planning LUG" := 0;
PlanningRec.MODIFY(TRUE);
END
UNTIL PlanningRec.NEXT = 0;
END;
20. November 2016 16:50
IF PlanningRec.FINDSET(TRUE) THEN BEGIN // siehe Onlinehilfe, warum FINDSET mit Parameter TRUE
REPEAT
IF PlanningRec."Real Planning Value" <> 0 THEN BEGIN // <> statt > ?
PlanningRec."Planning LUG" := PlanningRec."Running Planning Value" / PlanningRec."Real Planning Value";
END ELSE BEGIN
PlanningRec."Planning LUG" := 0;
END;
PlanningRec.MODIFY(TRUE);
UNTIL PlanningRec.NEXT = 0;
END;
21. November 2016 08:54
21. November 2016 09:18
Cybermad hat geschrieben:Nun kommt der Hinweis "Sie können keine Änderungen an der Datenbank durchführen ehe eine Transaktion gestartet wurde."
21. November 2016 09:41
21. November 2016 10:18
Ganz genau, so sollte das - für echte Tabellenfelder - immer gemacht werden, und nicht etwa über einen Stapellauf im Nachhinein.Cybermad hat geschrieben:Ggf. muss ich hier noch mit einem Trigger (OnValidate())den Wert berechnen lassen, sobald etwas geändert wird.
Das mache ich - soweit ich weiß dann in der Tabelle.
21. November 2016 10:38
21. November 2016 10:57
Cybermad hat geschrieben:Mein Problem dabei ist nur, dass die beiden Felder nicht editierbar sind (alos wird OnValidate() nicht ausgeführt).
Das Feld PlanningLUG soll einfach nur berechnet und in der Form dargestellt werden.
21. November 2016 11:18
21. November 2016 11:29
21. November 2016 11:53
PlanningLUG := 0;
CALCFIELDS( "Running Planning Value","Real Planning Value");
IF "Real Planning Value" <> 0 THEN
PlanningLUG := "Running Planning Value" / "Real Planning Value";
21. November 2016 12:10