🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 41
Registriert: Mo 9. Sep 2019, 12:50

Gelöst: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von HeiDieLX2 » Mi 21. Aug 2024, 17:32

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.
listenfelder.png
listenfelder.png (31.53 KiB) 3551 mal betrachtet
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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von RobertG » Mi 21. Aug 2024, 20:07

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

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 41
Registriert: Mo 9. Sep 2019, 12:50

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von HeiDieLX2 » Do 22. Aug 2024, 08:42

Hallo Robert,
Danke für den Hinweis, aber der greift zu kurz.
listenfelder2.png
listenfelder2.png (56.83 KiB) 3477 mal betrachtet
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?
MfG
HeiDieLx vom Bienwald

Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von RobertG » Do 22. Aug 2024, 12:22

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.
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

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 41
Registriert: Mo 9. Sep 2019, 12:50

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von HeiDieLX2 » Do 22. Aug 2024, 15:33

Was zeigt den die Tipp-Hilfe an, wenn Du mit der Maus über diesen Button gehst?
Kreisel links: Aktualisieren
Kreisel rechts: Steuerelement aktualisieren
MfG
HeiDieLx vom Bienwald

Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von RobertG » Do 22. Aug 2024, 17:08

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.
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

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 41
Registriert: Mo 9. Sep 2019, 12:50

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von HeiDieLX2 » Fr 23. Aug 2024, 15:50

Irgendetwas muss da faul sein.
Ja, möglich - dann jedoch schon immer! :(

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von RobertG » Sa 24. Aug 2024, 08:31

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:

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
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.
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

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 41
Registriert: Mo 9. Sep 2019, 12:50

Re: Daten im Listenfeld aktualisieren während der Eingabe

Beitrag von HeiDieLX2 » So 25. Aug 2024, 11:30

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.
MfG
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.



Antworten