Programmieren mit dBASE PLUS: Events: canChange

Aus Wikibooks


Dieses Event wird ausgelöst, wenn die Eigenschaft value eines Field-Objekts geändert werden soll. Der Rückgabewert bestimmt, ob die Änderung vorgenommen wird.

Parameter[Bearbeiten]

<neuer Wert>

Der voraussichtliche neue Wert.

Eigenschaft von[Bearbeiten]

Field

Beschreibung[Bearbeiten]

Mit canChange können Sie bestimmen, ob Änderungen einzelner Felder vorgenommen werden. Das Event canChange wird ausgelöst, wenn der Eigenschaft value eines Objekts der Klasse Field ein Wert zugewiesen wird. Diese Zuweisung kann direkt oder über ein mit dataLink verknüpftes Steuerungselement erfolgen. Der voraussichtliche neue Wert wird dem canChange- Event-Handler als Parameter übergeben. Falls der Event-Handler den Wert False zurückgibt, bleibt der Wert des Objekts unverändert.

Während mit canChange auf Feldebene überprüft wird, ob die Änderungen im Datensatzpuffer gespeichert werden, können Sie mit canSave auf Zeilenebene (Datensatzebene) prüfen, ob der Puffer auf die Festplatte geschrieben werden kann. Die Prüfung auf Zeilenebene sollte immer durchgeführt werden, gleichgültig, ob auch eine Prüfung auf Feldebene erfolgt.

Das Event canChange arbeitet unabhängig von der Validierung auf der Ebene der Datenbank-Engine. Auch wenn canChange bei dem Versuch, einen unzulässigen (beispielsweise zu großen) Wert in ein Feld zu schreiben, den Wert True zurückgibt, tritt ein Fehler auf, und die value-Eigenschaft des Field-Objekts bleibt unverändert.

Mit canChange können Sie auch die durch beforeGetValue definierte Zuordnung umkehren. Im Event-Handler für canChange prüfen Sie den Parameter <neuer Wert> und weisen der Eigenschaft value des Field-Objekts direkt den Wert zu, den Sie in der Tabelle speichern wollen. Dadurch wird canChange nicht rekursiv ausgelöst. Anschließend muß das Event canChange den Wert False zurückgeben, so daß <neuer Wert> nicht im Datensatzpuffer gespeichert wird.