Seite 1 von 1

Ereignissteuerung durcheinander

Verfasst: Di, 07.08.2012 14:20
von wolli-j
Hallo zusammen,

ich werde noch verrückt. Ich habe eine selbst programmierte Datenbankanwendung, wo sich ein Ereignis- und ein Klickmakro beharken und ich bekomme es nicht gelöst. Konkret:

- Base-Formular mit Adress-Stammdaten, u.a. ein Telefonnummernfeld.
- Ein Knopf, um das Formular zum Schreiben zu öffnen oder zu sperren (oForm.AllowDeletes = False : oForm.AllowUpdates = False) - damit die Benutzer nicht aus Versehen etwas ändern.
- Ein Ereignismakro, das beim Ändern ("Modifiziert") oder auch beim Verlassen ("bei Fokusverlust") des Telefonnummernfeldes dieses prüft und korrigiert (die Nummer wird hübsch gruppiert).

Das Ereignismakro hat als letzte Zeile
oForm.updateString(lngDatenFeldNummer, strText)
damit die korrigierte Nummer wieder ins Feld geschrieben wird.

Wenn ich nun die Telefonnummer ändere und dann das Formular per Mausklick sperre (oForm.AllowDeletes = False : oForm.AllowUpdates = False), ...
... geht alles gut, sofern ich vorher schon das Feld verlassen hatte.
... kommt eine Fehlermeldung, wenn ich noch im Feld stehe: "com.sun.star.sbdc.SQLException Message: Das Result-Set ist nur lesbar."

Eigentlich logisch: Wenn gesperrt ist, kann ich nicht schreiben.

Also habe ich versucht, die Reihenfolge einzuhalten:
- Am Anfang des Sperrmakros den Fokus auf ein anderes Feld setzen (dadurch wollte ich das Ereignis "Fokusverlust" provozieren" - Geht das auch irgendwie anders?)
- Am Anfang des Sperrmakros das Ereignismakro per Code auslösen

Das einzige, was funktioniert, ist, das Makro nach jedem Tastendruck ausführen zu lassen ("Text geändert") - das möchte ich aber nicht, weil es dem Anwender ins Handwerk pfuscht.

Jemand 'ne Idee? Vielen Dank!

Wolli