🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Gelöst: Daten im Listenfeld aktualisieren während der Eingabe
Gelöst: Daten im Listenfeld aktualisieren während der Eingabe
Ein Problem das mich schon sehr lange umtreibt, ich jedoch noch keine Lösung gefunden habe.
Ich bin dabei eine Datenbank mit Artikeln aus meinen Gartenzeitungen aufzubauen.
In der Haupttabelle gibt es Sekundärschlüssel die in andere Tabellen zeigen z.B. Autor.
In der Haupttabelle wähle ich den Autor über ein Listenfeld welches mir die Autoren bereitstellt aus.
Soweit so gut. Fehlt nun ein Autor kann ich mit einem Button in das Formular zur Autoreneingabe springen. Komme ich von dort zurück, ist der neue Autor noch nicht in der Auswahl enthalten.
Wie kann ich nun die Daten im Listenfeld aktualisieren, ohne die anderen Felder in dem Eingabeformular zu tangieren.
Bislang ist es so, dass diverse Meldungen von fehlenden Daten auf anderen Feldern generiert werden.
In meiner Eingabemaske gibt es vier solcher Listenfelder welche per Definition nicht leer sein dürfen.
Natürlich könnte ich im Vorfeld die nötigen Daten eingeben, jedoch aus Bequemlichkeit und Arbeitsablauf wäre mir o. g. Variante lieber.
Als Datenbasis benutze ich Postgresql.
Ich bin dabei eine Datenbank mit Artikeln aus meinen Gartenzeitungen aufzubauen.
In der Haupttabelle gibt es Sekundärschlüssel die in andere Tabellen zeigen z.B. Autor.
In der Haupttabelle wähle ich den Autor über ein Listenfeld welches mir die Autoren bereitstellt aus.
Soweit so gut. Fehlt nun ein Autor kann ich mit einem Button in das Formular zur Autoreneingabe springen. Komme ich von dort zurück, ist der neue Autor noch nicht in der Auswahl enthalten.
Wie kann ich nun die Daten im Listenfeld aktualisieren, ohne die anderen Felder in dem Eingabeformular zu tangieren.
Bislang ist es so, dass diverse Meldungen von fehlenden Daten auf anderen Feldern generiert werden.
In meiner Eingabemaske gibt es vier solcher Listenfelder welche per Definition nicht leer sein dürfen.
Natürlich könnte ich im Vorfeld die nötigen Daten eingeben, jedoch aus Bequemlichkeit und Arbeitsablauf wäre mir o. g. Variante lieber.
Als Datenbasis benutze ich Postgresql.
Zuletzt geändert von HeiDieLX2 am Di 27. Aug 2024, 08:14, insgesamt 1-mal geändert.
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
Re: Daten im Listenfeld aktualisieren während der Eingabe
Du hast in der Navigationsleiste 2 verschiedene Befehle zum Aktualisieren. Einer heißt "Aktualisieren" und meint das gesamte Formular, ein weiterer heißt "Steuerelement aktualisieren" und mein das aktuell ausgewählte Listenfeld. Bei Deinem Screenshot sehen die merkwürdigerweise gleich aus. Das inaktive Feld ist wohl das für das Steuerelement. Klicke also in das Listenfeld "Autor". Dann wird das inaktive Element aktiv und Du kannst den Inhalt für das Steuerelement neu einlesen.
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: Daten im Listenfeld aktualisieren während der Eingabe
Hallo Robert,
Danke für den Hinweis, aber der greift zu kurz. Das Bild zeigt die Situation nach der Eingabe eines neuen Autors und der Rückkehr ins Eingabeformular und dem drücken des rechten Kreisels.
Der neue Autor ist nicht da. Es wurde ein beliebiger anderer eingetragen.
Kann es sein, dass ich das Problem mit der Nutzung von Firebird (weiß ja jetzt wie es geht
)hier nicht hätte?
Oder anders gefragt ist mein angedachter Weg der Eingabe so richtig oder gibt es eine elegante Lösung die ich noch nicht auf dem Schirm habe?
Danke für den Hinweis, aber der greift zu kurz. Das Bild zeigt die Situation nach der Eingabe eines neuen Autors und der Rückkehr ins Eingabeformular und dem drücken des rechten Kreisels.
Der neue Autor ist nicht da. Es wurde ein beliebiger anderer eingetragen.
Kann es sein, dass ich das Problem mit der Nutzung von Firebird (weiß ja jetzt wie es geht

Oder anders gefragt ist mein angedachter Weg der Eingabe so richtig oder gibt es eine elegante Lösung die ich noch nicht auf dem Schirm habe?
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
Re: Daten im Listenfeld aktualisieren während der Eingabe
Ich nehme an, dass der Button bei Dir nicht dafür gedacht ist, das Kontrollfeld neu ein zu lesen.
Das hat nichts mit der verwendeten Datenbank zu tun, sondern mit der Bedienung des Formulars.
Was zeigt den die Tipp-Hilfe an, wenn Du mit der Maus über diesen Button gehst?
Auf keinen Fall dürfte dadurch ein Speichern des aktuellen Datensatzes ausgelöst werden.
Das hat nichts mit der verwendeten Datenbank zu tun, sondern mit der Bedienung des Formulars.
Was zeigt den die Tipp-Hilfe an, wenn Du mit der Maus über diesen Button gehst?
Auf keinen Fall dürfte dadurch ein Speichern des aktuellen Datensatzes ausgelöst werden.
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: Daten im Listenfeld aktualisieren während der Eingabe
Kreisel links: AktualisierenWas zeigt den die Tipp-Hilfe an, wenn Du mit der Maus über diesen Button gehst?
Kreisel rechts: Steuerelement aktualisieren
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
Re: Daten im Listenfeld aktualisieren während der Eingabe
Ich habe das hier gerade einmal getestet: Wenn ich bei einem neuen Datensatz in ein Listenfeld gehe und das aktualisieren lasse wird keine Speicherung ausgelöst, wie das Dein Screenshot anzeigt. Ich habe da mehrere Felder in dem Formular, die einen Eintrag erfordern.
Irgendetwas muss da faul sein.
Irgendetwas muss da faul sein.
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: Daten im Listenfeld aktualisieren während der Eingabe
Ja, möglich - dann jedoch schon immer!Irgendetwas muss da faul sein.

Ich habe nun in der Zwischenzeit eine Version mit der Firebird DB erstellt. Bei dieser tritt der Effekt genauso auf.
Nur wenn alle Felder in der Eingabemaske belegt sind kann ich das Steuerelement aktualisieren.
Das ist jedoch, sorry, für mich kein guter Arbeitsablauf.
Hab mal die Datei angehängt.
- Dateianhänge
-
- NGuAL_fb-odb.zip
- Umbenennen zu NGuAL_fb.odb
- (56.23 KiB) 137-mal heruntergeladen
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
Re: Daten im Listenfeld aktualisieren während der Eingabe
Ich habe das auf die Schnelle gestartet. Ich kann bei einem neuen Datensatz jedes Listenfeld in Formular 001_Artikel aktualisieren.
Dann habe ich einmal ein bisschen probiert: Wenn ich bereits angefangen habe, Daten in das Formular ein zu geben, dann kommt eine entsprechende Meldung wegen fehlender Eingaben, in diesem Fall im Feld "Autor". Ich würde das als Bug melden - aber anhand eines einfacheren Beispiels ohne Makros, so dass gleich nachvollzogen werden kann: Bei Eingabe von Werten an anderer Stelle und dem versuchten "Refresh" wird doie Speicherung ausgelöst.
Da Du aber sowieso mit Makros arbeitest könntest Du das doch so regeln wie hier:
oFieldTarget kannst Du natürlich auch innerhalb des Formulars benennen. Hier wird das aus einer Abspeicherung beim Öffnen des Formulars zum Bearbeiten einer Adresse belegt → also bei Dir beim Aufruf von "Autor".
Das Beispiel stammt aus der aktuellen XRechnungs-Version, neueste Version immer auf meiner Homepage.
Dann habe ich einmal ein bisschen probiert: Wenn ich bereits angefangen habe, Daten in das Formular ein zu geben, dann kommt eine entsprechende Meldung wegen fehlender Eingaben, in diesem Fall im Feld "Autor". Ich würde das als Bug melden - aber anhand eines einfacheren Beispiels ohne Makros, so dass gleich nachvollzogen werden kann: Bei Eingabe von Werten an anderer Stelle und dem versuchten "Refresh" wird doie Speicherung ausgelöst.
Da Du aber sowieso mit Makros arbeitest könntest Du das doch so regeln wie hier:
Code: Alles auswählen
SUB LieferadresseBeenden(oEvent AS OBJECT)
oForm = oEvent.Source.Model.Parent
IF hasUnoInterfaces(oForm, "com.sun.star.form.XForm" ) THEN
ThisDatabaseDocument.FormDocuments.getByName("frm_Lieferadresse").close
IF NOT ISNULL(oFieldTarget) THEN
oFieldTarget.refresh()
END IF
END IF
END SUB
Das Beispiel stammt aus der aktuellen XRechnungs-Version, neueste Version immer auf meiner Homepage.
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: Daten im Listenfeld aktualisieren während der Eingabe
Hallo Robert,
Danke für die Unterstützung.
Die nächsten Tage sind bei mir bereits sehr mit Terminen belegt.
Die beiden Punkte kommen jedoch noch.
Dein Codebeispiel sehe ich mal als Workaround.
Das Beispiel für die Fehlermeldung kommt dann auch.
Vielen Dank.
Danke für die Unterstützung.
Die nächsten Tage sind bei mir bereits sehr mit Terminen belegt.
Die beiden Punkte kommen jedoch noch.
Dein Codebeispiel sehe ich mal als Workaround.
Das Beispiel für die Fehlermeldung kommt dann auch.
Vielen Dank.
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.