BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Pfeiltasten ändern numerischen Datensatz im Fomular
Pfeiltasten ändern numerischen Datensatz im Fomular
Hallo in die Runde,
ich weiß nicht, ob es schon jemanden aufgefallen ist. Ich kann darüber nichts finden.
In unserer recht umfangreichen Kundendatenbank haben wir viele numerische Datensätze, die sich natürlich nicht einfach ändern dürfen. Damit die Gefahr einer versehentliche Änderung reduziert wird, ist das Mausradverhalten unter Steuerelement-Eigenschaften schon auf "nie" gesetzt. Aktuell musste ich aber mit erschrecken feststellen, dass wenn der Cursor in einem numerischen Datensatzfeld steht (z. B. Geburtsdatum) sich der Wert mit den Hoch/Runter-Pfeiltasten verändert. Ist das so gewollt? Kann man dieses Verhalten deaktivieren?
BG
ich weiß nicht, ob es schon jemanden aufgefallen ist. Ich kann darüber nichts finden.
In unserer recht umfangreichen Kundendatenbank haben wir viele numerische Datensätze, die sich natürlich nicht einfach ändern dürfen. Damit die Gefahr einer versehentliche Änderung reduziert wird, ist das Mausradverhalten unter Steuerelement-Eigenschaften schon auf "nie" gesetzt. Aktuell musste ich aber mit erschrecken feststellen, dass wenn der Cursor in einem numerischen Datensatzfeld steht (z. B. Geburtsdatum) sich der Wert mit den Hoch/Runter-Pfeiltasten verändert. Ist das so gewollt? Kann man dieses Verhalten deaktivieren?
BG
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Feld sperren (deaktivieren) und nur für die Dateneingabe aktivieren,
oder vor dem Datensatzwechsel eine Abfrage, ob sich die Daten geändert haben
oder vor dem Datensatzwechsel eine Abfrage, ob sich die Daten geändert haben
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Vielen Dank für die schnelle Antwort!
"Feld sperren (deaktivieren) und nur für die Dateneingabe aktivieren,
oder vor dem Datensatzwechsel eine Abfrage, ob sich die Daten geändert haben"
Ersteres ist doch relativ umständlich, da muss ich doch erst in Bearbeitungsmodus des Formulars, oder nicht?
Letzteres wäre eine Möglichkeit, allerdings in der Praxis wieder eine Abfrage mehr. Abgesehen davon, dass ich nicht weiß, wie man sie einrichtet...
Viel praktischer wäre es, dieses Verhalten einfach unterbinden zu können.
"Feld sperren (deaktivieren) und nur für die Dateneingabe aktivieren,
oder vor dem Datensatzwechsel eine Abfrage, ob sich die Daten geändert haben"
Ersteres ist doch relativ umständlich, da muss ich doch erst in Bearbeitungsmodus des Formulars, oder nicht?
Letzteres wäre eine Möglichkeit, allerdings in der Praxis wieder eine Abfrage mehr. Abgesehen davon, dass ich nicht weiß, wie man sie einrichtet...
Viel praktischer wäre es, dieses Verhalten einfach unterbinden zu können.
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Schreib doch einmal genauer, was für Felder ihr da einsetzt. Ein Datumsfeld ist z.B. kein numerisches Feld. Da kann ich mit den Pfeiltasten je nach Position das Jahr, den Monat oder den Tag durchscrollen.
Grundsätzlich lässt sich die Bedienung durch Pfeiltasten, wenn der Cursor in dem Formularfeld ist, nur dann unterbinden, wenn Du das Feld schreibgeschützt oder deaktiviert hast. Das gilt auch für ein formatierbares Feld, das ja für alle Zahlen und auch für Datumswerte brauchbar ist. Beim Datumswert scrollt das dann aber grundsätzlich nur durch die Tage. Lediglich das maskierte Feld macht da eine Ausnahme. Dafür ist das sonst aber recht gewöhnungsbedürftig.
Natürlich kannst Du so etwas nur einrichten, indem Du das Formular bearbeitest. Das Scrollrad der Maus ist da übrigens bei allen Formularfeldern standardmäßig sowieso deaktiviert.
Grundsätzlich lässt sich die Bedienung durch Pfeiltasten, wenn der Cursor in dem Formularfeld ist, nur dann unterbinden, wenn Du das Feld schreibgeschützt oder deaktiviert hast. Das gilt auch für ein formatierbares Feld, das ja für alle Zahlen und auch für Datumswerte brauchbar ist. Beim Datumswert scrollt das dann aber grundsätzlich nur durch die Tage. Lediglich das maskierte Feld macht da eine Ausnahme. Dafür ist das sonst aber recht gewöhnungsbedürftig.
Natürlich kannst Du so etwas nur einrichten, indem Du das Formular bearbeitest. Das Scrollrad der Maus ist da übrigens bei allen Formularfeldern standardmäßig sowieso deaktiviert.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Hallo Robert,
also der Feldtyp ist Integer [INT], weil ich wollte, dass das Formularfeld nur mit Zahlen gefüllt werden kann (z. B. PLZ).
Wenn es daran liegt, sollte ich ihn vielleicht einfach in ein Textfeld umwandeln.
Allerdings habe ich auch den Feldtyp Dezimal [DECIMAL] für Preise in einem Unterformular, den ich ungern ändern möchte, da ich über eine Abfrage auch den Gesamtpreis ausgeben lasse. Da ist das Verhalten der Pfeiltasten echt blöd, weil man sich halt auch mal vertippen kann...
Wenn es im Datumsfeld generell so ist, muss ich mich halt darauf einstellen.
Von maskierten Feldern habe ich leider keine Ahnung.
Vielen Dank für die Mühe!
Ronald
PS: Datenbank ist MariaDB über jdbc.
also der Feldtyp ist Integer [INT], weil ich wollte, dass das Formularfeld nur mit Zahlen gefüllt werden kann (z. B. PLZ).
Wenn es daran liegt, sollte ich ihn vielleicht einfach in ein Textfeld umwandeln.
Allerdings habe ich auch den Feldtyp Dezimal [DECIMAL] für Preise in einem Unterformular, den ich ungern ändern möchte, da ich über eine Abfrage auch den Gesamtpreis ausgeben lasse. Da ist das Verhalten der Pfeiltasten echt blöd, weil man sich halt auch mal vertippen kann...
Wenn es im Datumsfeld generell so ist, muss ich mich halt darauf einstellen.
Von maskierten Feldern habe ich leider keine Ahnung.
Vielen Dank für die Mühe!
Ronald
PS: Datenbank ist MariaDB über jdbc.
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Hallo Ronald,
gleich zu Anfang: Eine "Postleitzahl" ist keine Zahl. Setze die in ein Textfeld. Schließlich gibt es da, wie bei Telefonnummern, auch die führende 0. Und die verlierst Du sonst.
Das Scrollen ist lediglich beim Textfeld und beim maskierten Feld nicht vorhanden. Ich schaue einmal, ob ich Dir ein Beispiel für das maskierte Feld und das automatische Sperren eines Feldes nach der Eingabe bauen kann.
Gruß
Robert
gleich zu Anfang: Eine "Postleitzahl" ist keine Zahl. Setze die in ein Textfeld. Schließlich gibt es da, wie bei Telefonnummern, auch die führende 0. Und die verlierst Du sonst.
Das Scrollen ist lediglich beim Textfeld und beim maskierten Feld nicht vorhanden. Ich schaue einmal, ob ich Dir ein Beispiel für das maskierte Feld und das automatische Sperren eines Feldes nach der Eingabe bauen kann.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Hallo Robert,
Du hast natürlich Recht, das mit der PLZ war wohl ein unglückliches Beispiel von mir. Die steckt schon in einem Textfeld und die anderen werde ich noch ändern.
Wäre da nur noch das Problem mit den Preisen. Ich bin auf Dein Beispiel mit den maskierten Feldern gespannt.
Danke schon mal im Voraus für Deine Mühe!
Ronald
Du hast natürlich Recht, das mit der PLZ war wohl ein unglückliches Beispiel von mir. Die steckt schon in einem Textfeld und die anderen werde ich noch ändern.
Wäre da nur noch das Problem mit den Preisen. Ich bin auf Dein Beispiel mit den maskierten Feldern gespannt.
Danke schon mal im Voraus für Deine Mühe!
Ronald
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Ich habe das jetzt mit der Währungseingabe probiert. Du kannst zwar bei einem maskierten Feld fest einstellen, ob das Zahlen oder Buchstaben sein sollen. Nur legst Du damit auch die Lage des Kommas innerhalb des Feldes fest. Keine Lösung.
Dann habe ich das Währungsfeld genommen (das nicht so gut ist wie das formatierte Feld, wiel negative Beträge nicht rot erscheinen) und dort in den Eigenschaften das Intervall auf '0' gesetzt. Lässt sich eingeben und abspeichern, aber sobald ich in das Feld gehe und die Pfeiltasten betätige stürzt LO ab - unabhängig von der LO-Version.
Bleibt als einfaches Feld nur das Textfeld, in das Du natürlich auch Beträge eingeben kannst. Das Eurozeichen dahinter gepackt und alles wird in € angezeigt. Wenn aber jemand etwas falsches eingibt kommt dann eben eine Fehlermeldung der Datenbank. Scrollen ist da nicht möglich.
Bliebe also nur noch die Lösung, beim Verlassen eines Feldes dies anschließend mit einem Schreibschutz zu versehen. Das müsste über ein Makro möglich sein. Mal sehen, ob ich dafür noch neben dem anderen Kram, den ich hier mache, Zeit habe.
Gruß
Robert
Dann habe ich das Währungsfeld genommen (das nicht so gut ist wie das formatierte Feld, wiel negative Beträge nicht rot erscheinen) und dort in den Eigenschaften das Intervall auf '0' gesetzt. Lässt sich eingeben und abspeichern, aber sobald ich in das Feld gehe und die Pfeiltasten betätige stürzt LO ab - unabhängig von der LO-Version.
Bleibt als einfaches Feld nur das Textfeld, in das Du natürlich auch Beträge eingeben kannst. Das Eurozeichen dahinter gepackt und alles wird in € angezeigt. Wenn aber jemand etwas falsches eingibt kommt dann eben eine Fehlermeldung der Datenbank. Scrollen ist da nicht möglich.
Bliebe also nur noch die Lösung, beim Verlassen eines Feldes dies anschließend mit einem Schreibschutz zu versehen. Das müsste über ein Makro möglich sein. Mal sehen, ob ich dafür noch neben dem anderen Kram, den ich hier mache, Zeit habe.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Herzlichen Dank für Deine Mühe!
Ich kann auch damit leben lernen, bevor die Arbeit an einer Lösung noch jeden Zeitrahmen sprengt.
Es hätte ja auch einfach eine Abschaltfunktion, wie beim Mausradverhalten, geben können.
Selbst beim Datumsfeld halte ich die Pfeiltastenfunktion für unnötig...
Offensichtlich steckt mehr dahinter als ich geahnt habe...
VG Ronald
Ich kann auch damit leben lernen, bevor die Arbeit an einer Lösung noch jeden Zeitrahmen sprengt.
Es hätte ja auch einfach eine Abschaltfunktion, wie beim Mausradverhalten, geben können.
Selbst beim Datumsfeld halte ich die Pfeiltastenfunktion für unnötig...
Offensichtlich steckt mehr dahinter als ich geahnt habe...
VG Ronald
Re: Pfeiltasten ändern numerischen Datensatz im Fomular
Hallo Ronald,
hat etwas gedauert, weil ich noch andere Datenbankproblemchen lösen musste. Folgendes Makro funktioniert:
Die Tasten 1024 und 1025 sind die Pfeiltasten. Wird so eine Taste betätigt, dann stellt das Feld erst einmal die Zahl um. Das wird dann aber anschließend durch dieses Makro über "reset" wieder zurück genommen. Das Makro wird an das Ereignis "Taste gedrückt" des jeweiligen Kontrollfeldes gebunden.
Gruß
Robert
hat etwas gedauert, weil ich noch andere Datenbankproblemchen lösen musste. Folgendes Makro funktioniert:
Code: Alles auswählen
SUB KeyTest(oEvent AS OBJECT)
IF oEvent.KeyCode = 1025 OR oEvent.KeyCode = 1024 THEN
oEvent.Source.Model.reset()
ELSE
oEvent.Source.Model.commit
END IF
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️