Daten visuell erfassen in 1:n- und 1:1- Beziehungen

Ausführen der Ereignisprozedur

Ausgeführt wird die Ereignisprozedur, wenn der Benutzer den Datensatz aktiviert, indem er beispielsweise zwecks Eingabe den Cursor in einSteuerelement des Datensatzes setzt. Verlässt der Benutzer den Datensatz wieder, weil er einen anderen Datensatz aktiviert, wird die Korrektur automatisch gespeichert.

Allerdings müssen Sie nun noch dafür sorgen, dass Teilbuchungen nicht gelöscht werden, wenn der Benutzer den Status bezahlt setzt. Würden Sie weiterhin die Ereignisprozedur aus Listing 1 verwenden, hätten Sie damit zwei Probleme.

  • Ist nur noch ein geringer Restbetrag offen und wählt der Benutzer bezahlt aus, um den Zahlungseingang für den Auftrag zu buchen, würden die vorhandenen Teilbuchungen gelöscht und durch eine Buchung des Gesamtbetrags ersetzt. Das ist nicht optimal, weil Sie so nicht nachvollziehen können, wie die Zahlung erfolgt ist.

  • War der Auftrag bereits als bezahlt verbucht und stellt sich das als Irrtum heraus, würde die ursprüngliche falsche Buchung gelöscht werden. Auch hier könnten Sie nicht mehr nachvollziehen, dass vorher mal ein Zahlungseingang gebucht wurde.

In beiden Fällen ist es sehr viel sinnvoller, nur den Restbetrag oder eine Gegenbuchung zu machen, weil sich so auch später noch die einzelnen Buchungen nachvollziehen lassen.

Bis auf die Tatsache, dass hier prinzipiell die gleichen SQL-INSERT-Anweisungen erzeugt werden, nur mit anderen Werten und Texten, ist die Prozedur nicht mehr wieder zu erkennen.

Zunächst einmal benötigen Sie den alten Wert des Feldes Status, da Sie daran erkennen können, ob überhaupt eine Änderung des Wertes stattgefunden ist. Zudem ist der alte Status wichtig. Stand er nämlich vorher auf geliefert und wird nun auf bezahlt gesetzt, sollte der Code dafür sorgen, dass in diesem Fall der Status auf abgeschlossen gesetzt wird. Sonst ist nicht mehr ersichtlich,dass die Lieferung auch erfolgt ist. Den alten Wert können Sie über die OldValue-Eigenschaft ermitteln und einfach am Anfang der Prozedur einer Variablen zuweisen.

Außerdem sollten Sie über die Bookmark-Eigenschaft des Formulars den Datensatz ermitteln, der der aktive Datensatz ist. Damit können Sie diesen Datensatz auch nach der Aktualisierung des Formulars wieder aktivieren. Dazu weisen Sie den Rückgabewert der Bookmark-Eigenschaft einer Variant-Variablen zu.