Trigger konfiguieren

Trigger sind ein sehr mächtiges Werkzeug für erfahrenere Benutzer. Sie sollten Trigger nur einsetzen, wenn Sie sich sicher sind, dass das gewünschte Ergebnis mit einer einfachen Formel nicht erreichbar ist.

Ein Trigger ist eine Funktion, die bei bestimmten Ereignissen ausgeführt wird. Ninox unterstützt zur Zeit Trigger nach Änderung eines Feldwertes.

Definiert wird ein Trigger in dem Feld, dessen Änderung Sie beobachten wollen. Unter erweiterete Optionen besteht die Möglichkeit, “Nach Änderung folgendes Skript ausführen” einzustellen. Dies öffnet den Fomeleditor.

Gegenüber dem normalen Formeleditor ist nun ein zusätzlicher Karteireiter “Befehle” verfügbar. Dieser listet Wertzuweisungs-Operatoren auf. Mit einer Wertzuweisung können Sie einem Feld einen neuen, berechneten Wert zuweisen.

Ein Beispiel

Ein gutes Beispiel für den sinnvollen Triggereinsatz ist das Kopieren eines Datenfeldes aus einer verknüpften Tabelle:

In einer Tabelle “Artikel” werden Verkaufsartikel erfasst. Eine weitere Tabelle “Rechnungsposition” erfasst die Verkaufsvorgänge, sie verweist auf den Artikel. Mit einer normalen Formel könnten Sie nun den Verkaufspreis aus der Artikeltabelle in die Rechnungsposition übernehmen. Dies birgt aber Nachteile:

  • Wenn der Verkaufspreis später angepasst wird, würde sich auch die Rechnung ändern.
  • Sie können den Verakusfpreis nicht für eine einzelne Rechnung (z.B. Rabatt / Kulanz) korrigieren.

Die bessere Lösung ist, in der Tabelle rechnungsposition ein eigenes Datenfeld für den Verkaufspreis zu definieren. Das ist aber wiederum unpraktisch, da Sie bei jeder Position manuell den Preis eintragen müssten.

Hier hilft ein Trigger weiter: Im Verknüpfungsfeld “Artikel” der Rechnungsposition wird unter “Nach Änderung folgendes Skript ausführen” ein Trigger definiert, der aktiv wird, sobald ein Artikel zugewiesen ist. Der Trigger übernimmt den Verkaufspreis des Artikels in die Rechnungsposition.

Preis := Artikel.Verkaufspreis

Auf diese Weise können später Preisanpassungen bei den Artikeln durchgeführt werden, ohne die Rechnungen zu verändern. Außerdem kann der vom Trigger kopierte Wert nachträglich korrigiert werden. Denn der Trigger wird nur im Moment der Artikelzuweisung aktiv.