0

Gesamtbetrag errechnet mit Funktionsfeld soll sich bei Beitragsänderung nicht ändern.

Errechnete Rechnungsbeträge über Funktionsfelder sollen sich nach der einmaligen Generierung der Rechnung / Datensatz nicht ändern lassen, wenn sich dazu in Beziehung stehender Mitgliedsbeitrag beispielsweise ändert. Dies ist sicher möglich. Ich habe nur leider keine Idee wie. Wer kann mir hier weiterhelfen?

7 Antworten

null
    • Birger_H
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Dies ist in der Vorlage "Rechnungen" realisiert.

    Birger

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin, die Formeln in Funktionsfeldern werden bei jeder Aktivierung neu berechnet. Ändern sich zwischenzeitlich die Bezugswerte, ändern sich auch die Ergebnisse der Berechnung. Werte, die sich nicht ändern dürfen, sollte man deshalb beim Generieren des Datensatzes (z. B. der Rechnung) in Datenfelder übertragen und mit dem Datensatz fest abspeichern.

    Datensätze zu Rechnungen u. ä. Dokumenten sollten also aus Datenfeldern mit festen Werten bestehen und allenfalls solche Funktionsfelder enthalten, die nur innerhalb des Datensatzes Berechnungen durchführen (z. B. Einzelpreis mal Menge). Das gilt übrigens nicht nur numerische Felder, sondern auch für Adressangaben, Belegnummer usw.

    • Markus.2
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke für die Antworten. Ich habe mir die Rechnungsvorlage Rechnungen mal geöffnet. Allerdings sehe ich nicht wo dies realisiert ist. In der Tabelle Rechnungen als auch Rechnungspositionen gibt es die Funktionsfelder für berechnete Werte aber wo sind die festgeschrieben?

    Das Problem bei mir ist nun auch, daß ich eine funktionierende Datenbank mit Rechnungen gebastelt habe, die auch gut funktioniert. Kann ich auf einfache Weise z.B. das Funktionsfeld wegrationalisieren und irgendwie einen errechneten Werte in ein Nicht-Funktionsfeld integrieren?

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Man müsste etwas mehr über die Datenstruktur wissen, aber grundsätzlich bedarf es zum Generieren einer Rechnung (o. ä.) ja immer eines Ereignisses. In der Regel ist das eine Schaltfläche, nach deren Betätigung entsprechender Code ausgeführt und ein neuer (Rechnungs-) Datensatz angelegt wird. Man könnte nun die Formel/den Feldbezug des bisherigen Funktionsfeldes zur Ermittlung des jeweiligen Beitrags für eine Feld-Zuweisung im Code der Schaltfläche nehmen:

     

    Rechnungsbetrag := FORMEL

     

    In der Vorlage "Rechnungen" findet sich eine entsprechende Vorgehensweise als Trigger "Nach Änderung" im Verknüpfungsfeld 'Produkte' in der Untertabelle "Rechnungspositionen". Wird dort ein Produkt ausgewählt, wird automatisch der Preis des Produktes in ein Feld des neuen Datensatzes übertragen:

    'Preis pro Einheit' := Produkte.'Preis (VK)'

     

    Das lässt sich natürlich auch im Nachhinein so einrichten. Für Details müsste man aber wie gesagt mehr über die beteiligten Tabellen, Felder und Verknüpfungen wissen.

    • Markus.2
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die Struktur hab ich an die Rechnungsvorlage angelehnt. Die Rechnung kann ich bereits über einen Button generiern, das habe ich hinbekommen. Das Problem ist dann derzeit nur, daß die Rechnung nur einmal so als PDF besteht, wenn sie generiert wurde. Aber sich die Rechnungsdaten in der Tabelle theoretisch ändern können, wenn sich z.B. der Beitrag ändert. Habe sowas einfach bisher vermieden und nötige Änderungen zu Fuß gemacht.

     

    Rechnungsbetrag := FORMEL

    versteh ich noch nicht ganz. Soll dann im Datensatz einfach ein anderes Feld existieren beispielsweise Rechnungbetrag das statisch ist und den Wert nur über den Button Rechnung erstellen zugewiesen bekommt? Ich habe eine Reihe von Hilfsfeldern MWST, Nettobetrag usw.. Die müssten dann auch alle ein statisches Feld bekommen?

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vorab: Wenn ich vom Generieren der Rechnung spreche, dann meine ich das Erzeugen des Datensatzes, nicht des PDF-Dokuments, denn das bildet ja nur die Inhalte des Datensatzes zum aktuellen Zeitpunkt ab.

    Anderer Ansatz: Ich vermute(!), du hast in deiner Rechnungstabelle ein Funktionsfeld, in dem der Beitrag des über eine Verknüpfung ausgewählten Mitglieds angezeigt wird. In diesem Funktionsfeld ist ja irgendeine Formel hinterlegt, zum Beispiel(!)

    Mitglieder.Beitrag

    oder eine select-Anweisung oder was auch immer. Ich weiß es halt nicht. So oder so: Mit derselben Formel könnte man nun statt dessen auch ein Datenfeld des Rechnungsdatensatzes füllen, nennen wir es 'Monatsbeitrag'. Das ginge so (o. ä.):

    Monatsbeitrag := Mitglieder.Beitrag

    In der Rechnungsvorlage ist das genau so gemacht. An welcher Stelle, ist oben beschrieben. Dort kann man sich das ansehen. Genauere Hinweise kann zumindest ich nicht geben, weil ich hinsichtlich der zugrunde liegenden Datenstrukturen nach dem Try-and-error-Prinzip spekulieren und konstruieren müsste. Dass die Struktur "an die Rechnungsvorlage angelehnt" ist, hilft nicht wirklich weiter, denn offensichtlich ist sie an entscheidenden Stellen ja doch anders.

    • Markus.2
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Super, das hat mir schon sehr geholfen. Konnte das in meinem Modell umsetzen. Vielen Dank!

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 7Antworten
  • 1402Ansichten