Hallo Robert,
Makros, die an einer solchen Stelle wie deiner aufgerufen werden,
sollten als function mit einem Rückgabewert vom Typ boolean und nicht
als sub implementiert werden. Die Speicherung in der Datenbank erfolgt
nur, wenn TRUE zurückgegeben wird, bei Rückgabewert FALSE bleibt das
Formular im Zustand "geändert", man kann aufgrund der Meldung die
Fehleingabe verändern. Das ist ja doch wohl genau das, was du suchst.
Noch was: dieses Ereignis wird zweimal ausgelöst, im einen Fall steht
manches nicht zur Verfügung, was im Makro benötigt wird. Ich verwende
daher für Makros für dieses Ereignis immer zu Beginn:
if evt.source.supportsService("com.sun.star.sdbc.RowSet") then exit function
' Ereignis wird zweimal angestoßen. Ein Aufruf wird ignoriert
Gruß
Gerhard
Am 13.08.2018 um 11:59 schrieb Robert Großkopf:
Hallo *,
ich rechne zwar weniger mit einer Antwort, aber vielleicht gibt es ja
doch ein kleines Wunder ...
Ich bin dabei eine Datenbank zu erstellen, die zeigen soll, wie der
Inhalt von Formularen auf Validität überprüft werden kann. Das dazu
notwendige Makro habe ich an "Vor der Datensatzaktion" des Formulars
gebunden.
Wenn ich die richtige Implementation auswähle kann ich dort über
---------
oFormOperations = oForm.FormOperations
oFormOperations.execute(oFormFeature.UndoRecordChanges)
---------
die Eingabe stoppen (siehe auch Handbuch Base). Nur leider sind dann
sämtliche neuen Eingaben weg, das Formular also auf dem vorhergehenden
Stand und die Meldung "Keine Änderung vorhanden" erfolgt auch noch. Die
entsprechende Meldung, dass in bestimmten Feldern Inhalt fehlt kann ich
also getrost vergessen - jetzt fehlt er überall.
Gibt es irgendeine Möglichkeit, das Abspeichern zu unterbrechen ohne
dass gleich alle Neueingaben weg sind? Ich habe schon versucht, statt
UndoRecordChanges einfach wieder das aktuelle Formular über die
Zeilennummer aufzurufen. Dann lande ich aber leider in einer Schleife,
die mir immer wieder schön meine Meldung zu fehlenden Inhalten auf dem
Schirm bringt.
Gruß
Robert
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.