Rechnungssumme
Ich habe 3 Tabellen, Kunde, Einrichtung, Rechnung...aus der Kundentabelle kommt die Info, wie viele Personen (max. 5) es sind und welche Saison (Sommer oder Winter)....in der Tabelle Einrichtung ist in 10 Zahlenfeldern der Satz hinterlegt, wie viel ich von der jeweiligen Einrichtung für die Gruppe abrechnen kann. 5 Felder (1 Feld pro Person) für Sommer und 5 für Winter.
Die Tabelle Rechnung holt sich nun durch ein Formelfeld den entsprechenden Preis aus einem der 10 Zahlenfelder.
Klappt soweit sehr gut, bis auf die Tatsache, daß sich bereits existierende Datensätze (also Rechnungen) in der Tabelle Rechnung nachträglich ändern, wenn ich den Preis einer Einrichtung verändere.
In der Vorlage Rechnung von Ninox bleiben die alten Datensätze unberührt, wenn man den Preis eines Artikels verändert.
Gibt es da einen Trick, den ich (wieder einmal) übersehe, damit man die Rechnungssumme "festschreibt" und diese von zukünftigen Veränderungen der Grundpreise unberührt bleibt?
2 Antworten
-
Hallo Manuel, die Formeln von Berechnungsfeldern werden bei jedem Aufruf immer wieder neu ausgeführt. Das soll auch so sein, damit man immer aktuelle Werte hat, wenn siech der Bezugswert ändert.
Bei Rechnungen u. ä. Dokumenten macht das aber natürlich keinen Sinn, denn die sollen sich ja gerade nicht ändern. Deshalb liest man die Werte in solchen Fällen nicht in Berechnungsfelder ein, sondern speichert sie in Datenfeldern. Wenn du also bspw. in deinem Berechnungsfeld folgende Formel zur Preisermittlung hinterlegt hättest:
first((select Einrichtung where Name = myName).Preis)
Dann müsstest du in der Tabelle 'Rechnungen' statt dessen ein Zahlenfeld 'Kosten' erstellen und den ermittelten Wert darin dauerhaft speichern:
Kosten := first((select Einrichtung where Name = myName).Preis)
Dann steht der Wert fest im Feld 'Preis' und verändert sich nicht, wenn sie der Preis in der Tabelle 'Einrichtungen' ändert. Das sollte man prinzipiell mit allen Daten machen, die sich nich im Nachhinein ändern sollen (z. B. auch Adressen u. ä.).
-
Danke Manuel für die Frage und an Copytexter für die durchaus nachvollziehbare Erläuterung und Lösung, war für mich auch sehr hilfreich.
Content aside
- vor 4 JahrenZuletzt aktiv
- 2Antworten
- 679Ansichten