Öffnen Sie die Tabellen-Einstellungen der Tabelle Rechnungspositionen.
Öffnen Sie die Feld-Einstellungen und geben Sie unter Beim Klicken folgendes Skript ein:
Mehr zu for ... in ... do ... end
und select
in unserer Einführung in Ninox-Skript.
Indem Sie anschließend den Button klicken, werden die fehlenden Einzelpreise den Rechnungspositionen zugewiesen. Unsere erste Rechnung ist wieder vollständig.
Wenn Sie möchten, können Sie den Button wieder löschen.
Jetzt erstellen wir noch eine neue Rechnung mit viel Champagner zu den aktuellen Preisen. Sie sehen, alles funktioniert (wieder)!
Nachdem wir gerade unsere erste Rechnung erstellt haben, teilt uns der Champagner-Lieferant mit, dass er die Preise erhöht. Das bedeutet, dass auch wir unsere Preise anpassen müssen!
Im Moment ist unsere Rechnung so eingerichtet, dass die Preise immer direkt aus der Tabelle Essen & Trinken gezogen werden.
Wir können das für die Zukunft über einen Trigger so einrichten, dass in der Rechnung immer der Preis für einen Artikel angezeigt wird, der zum Zeitpunkt der Rechnungsstellung aktuell war.
Dieser Preis ist dann fest in der jeweiligen Rechnung „verankert“.
Wir fügen in einer Rechnung eine neue Rechnungsposition hinzu (+ Datensatz erstellen) und wählen in dem Verknüpfungs-Feld Essen & Trinken einen Artikel aus.
Der Trigger nach Änderung reagiert auf diese Änderung im Feld Essen & Trinken (Änderung = Ereignis) und führt sein Skript aus. Hier: der Trigger weist den aktuellen Einzelpreis aus der Tabelle Essen & Trinken dem Zahlen-Feld Einzelpreis in der Tabelle Rechnungspositionen zu.
Gehen Sie zur Untertabelle Rechnungspositionen.
Unter Trigger nach Änderung fügen Sie folgendes Skript ein:
Einzelpreis := 'Essen & Trinken'.Einzelpreis
Wir müssen nun noch die Tabelle Rechnungen anpassen.
Klicken Sie in der Formular-Ansicht in die Kopfzeile der Untertabelle Rechnungspositionen.
Klicken Sie auf Spalte einblenden und holen Sie den neuen Einzelpreis zurück. Wenn Sie ihn nicht gleich sehen, wird er sich vermutlich am rechten Rand „verstecken“. Ziehen Sie die Felder über die Kopfzeile nach links und ordnen Sie über Drag-and-drop das Feld vor dem Gesamtpreis ein.
Änderungen speichern und: Fertig!
OK. Noch nicht ganz fertig. Die einzige Rechnung, die wir im Moment haben, hat keine Berechnungsgrundlage mehr und zeigt im Moment weder Einzel- noch Gesamtpreise an.
Darum kümmern wir uns schnell!
Unsere 3. Rechnung – mit neuem Preis
Trigger sind ein cooles Tool, um Vorgänge zu automatisieren
Jetzt möchten wir uns Trigger bei Ninox noch etwas genauer anschauen.
Ein Trigger reagiert auf ein Ereignis („Event“) nach dem Prinzip „Wenn dies passiert, dann mach das!“. So können Ihnen Trigger viele sonst manuelle Prozesse abnehmen.
Sie können Trigger bei Ninox auf verschiedene Art und Weise einsetzen, u. a. um
Werte zu ändern oder ergänzen, wenn etwas Bestimmtes passiert
Folgeaktionen auszuführen
Tabellen und Datensätze zu öffnen oder schließen
Felder vorab auszufüllen
Sie finden bei Ninox 5 Trigger:
Trigger bei neuem Datensatz (in den Tabellen-Einstellungen)
Trigger nach Änderung (in den Tabellen-Einstellungen und in den Feld-Einstellungen von fast allen Feldern)
Das sind die am häufigsten benutzten. Darüber hinaus gibt es noch
Trigger nach Öffnen (in den Datenbank-Optionen)
Trigger vor Anzeige (in den Feld-Einstellungen beim Feld Registerkarte)
Trigger nach Ausblenden (in den Feld-Einstellungen beim Feld Registerkarte)
Wir schauen uns im Folgenden noch einen Trigger nach Änderung in den Feld-Einstellungen eines Verknüpfungs-Felds etwas genauer an ...
Ein (temporärer) Button macht hier die Arbeit für uns!
Fügen Sie das Layout-Feld Button hinzu.
Statt 7,50 € wird das Glas in Zukunft 9,00 € kosten.
Wenn wir also einen Preis in der Tabelle Essen & Trinken ändern, werden jeweils alle Rechnungen geändert – auch die, die bereits geschrieben wurden!
Wir setzten in der Untertabelle Rechnungspositionen in dem Verknüpfungs-Feld Essen & Trinken einen Trigger nach Änderung. Dieser wird dafür sorgen, dass in einem neu hinzugefügten Zahl-Feld Einzelpreis (anstatt des bisherigen Formel-Feld Einzelpreis) der jeweils aktuelle Preis hinterlegt wird.
In dieses Feld schicken wir per Trigger den aktuellen Preis. Dieser wird dort als Zahl fest gespeichert. Er wird nicht mehr – wie bisher – aus der Tabelle Essen & Trinken frisch in ein Formel-Feld Einzelpreis gezogen.
Fügen Sie in den Tabellen-Einstellungen ein Zahl-Feld Einzelpreis hinzu. Vergessen Sie nicht, das Zahlenformat in den Feld-Einstellungen anzupassen!
Löschen Sie das bisherige Formel-Feld Einzelpreis.
Öffnen Sie Weitere Optionen in den Feld-Einstellungen des Verknüpfungs-Felds Essen & Trinken.
Jetzt passen Sie noch den Gesamtpreis an: Der Einzelpreis (bisher ein Formel-Feld) wird jetzt über das neue Zahl-Feld Einzelpreis berechnet.
... und speichern!
Wir öffnen den Bearbeitungsmodus in der Tabelle Rechnungen.
Et voilà! Alle Rechnungen zeigen den jeweils gültigen Einzelpreis an!
Sie möchten das Thema vertiefen? Schauen Sie sich dazu den entsprechenden Abschnitt in unserem an.
Wir haben , beim Erstellen der Rechnung, etwas nebenbei einen Trigger kennengelernt, als wir zum Einfügen einer automatischen Rechnungsnummer auf Tabellen-Ebene ein Skript in den Trigger bei neuem Datensatz eingefügt haben.