🙏 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. 🤗
Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Alles drin, alles dran, Funktionalität vorhanden - siehe Bild
- Dateianhänge
-
- Meldung.png (78.76 KiB) 3718 mal betrachtet
-
- Test_2Forms_adaptiert.odb.zip
- (24.23 KiB) 236-mal heruntergeladen
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
-
- * LO-Experte *
- Beiträge: 834
- Registriert: Fr 28. Mär 2014, 10:41
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?

Aber das ist doch genau das, was ich schon habe. Und es funktioniert eben nicht.
Diese von dir kritisierte doppelte Zuweisung ist immer noch drin:
oformAuftrag = oformAuftrag.Component.drawpage.forms(0)
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
funktioniert bei mir aber schon
- daher das Bild!
Wenn ich den Fehler nicht reproduzieren kann, kann ich Dir auch nicht helfen - wo sollte ich ansetzen?
evtl: gibt's in dem Formular "f-Auftrag" vielleicht ein Unterformular, oder ein Tabellen-Kontrollelement?

Wenn ich den Fehler nicht reproduzieren kann, kann ich Dir auch nicht helfen - wo sollte ich ansetzen?
evtl: gibt's in dem Formular "f-Auftrag" vielleicht ein Unterformular, oder ein Tabellen-Kontrollelement?
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
-
- * LO-Experte *
- Beiträge: 834
- Registriert: Fr 28. Mär 2014, 10:41
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Hallo gogo,
ja, deine DB funktioniert bei mir ja auch… es wäre nur schön, wenn auch meine Split-DB das könnte.
Ich dachte, es hilft vielleicht, wenn man in meinem Makro das korrigiert, was du fehlerhafte Zuordnung genannt hast:
Gruß
Freischreiber
ja, deine DB funktioniert bei mir ja auch… es wäre nur schön, wenn auch meine Split-DB das könnte.

Ich dachte, es hilft vielleicht, wenn man in meinem Makro das korrigiert, was du fehlerhafte Zuordnung genannt hast:
Und, ja:oformAuftrag = oformAuftrag.Component.drawpage.forms(0) ... eine Neuzuweisung auf eine bestehende Variable ist, und zwar ein Child zum ursprünglichen oformAuftrag - das funktioniert normalerweise, aber evtl. löst das Dein Problem aus.
Sowohl als auch. Und nicht nur eins. Das Nicht-Anspringen von ismodified passiert aber schon bei einfachen Textfeldern im Hauptformular.gibt's in dem Formular "f-Auftrag" vielleicht ein Unterformular, oder ein Tabellen-Kontrollelement?
Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Ich kann leider keine Split-DB, hab' ich nie gemacht, bringt vermutlich auch nichts, da der Modified-Status mit dem Backend (vermutlich) wenig zu tun hat. Das sind eigentlich nur Änderungen an Base-Objekten, die ja alle im Frontend sind.
Nachdem es da Unterformulare und Tabellen KE's gibt, bleibt wohl nichts anderes übrig als:
Nimm' mal die 2 Formulare und kopier' sie in eine Interne DB, leg' dort die betroffenen Tabellen an und füll' sie mit 2-3 Datensätzen.
ad Zuweisung:
Die Zuweisung so wie Du sie geschrieben hast funktioniert klarerweise, weil Operatoren immer von innen nach außen arbeiten, daher kann man auchschreiben. Sonst müsste man den Wert von i vorher in einer anderen Variable speichern, etwa so:. Nur bei komplizierten Objekten, oder vor allem bei Basic-Internen Variablen wie thisComponent oder currentComponent ist da Vorsicht geboten, denn die können sich zur Laufzeit verändern!
Die Zeilen:
Kannst Du einfach in
ändern - aber wie schon gesagt, das ist nicht wirklich Dein Problem.
Nachdem es da Unterformulare und Tabellen KE's gibt, bleibt wohl nichts anderes übrig als:
Nimm' mal die 2 Formulare und kopier' sie in eine Interne DB, leg' dort die betroffenen Tabellen an und füll' sie mit 2-3 Datensätzen.
ad Zuweisung:
Die Zuweisung so wie Du sie geschrieben hast funktioniert klarerweise, weil Operatoren immer von innen nach außen arbeiten, daher kann man auch
Code: Alles auswählen
i = i + 1
Code: Alles auswählen
j = i + 1
i = j
Die Zeilen:
Code: Alles auswählen
oformAuftrag = ThisDatabaseDocument.getformdocuments.GetByName("f-Auftrag")
oformAuftrag.open
oformAuftrag = oformAuftrag.Component.drawpage.forms(0)
Code: Alles auswählen
oWriterDocAuftrag=ThisDatabaseDocument.getformdocuments.GetByName("f-Auftrag").open
oformAuftrag = oWriterDocAuftrag.Component.drawpage.forms(0)
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
-
- * LO-Experte *
- Beiträge: 834
- Registriert: Fr 28. Mär 2014, 10:41
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Hallo gogo,
du hast recht, das hat auch nicht funktioniert.
Jetzt kommt aber der Knüller. Ich habe das Makro mit dem hinkenden ismodified abgewandelt für das Filterfeld innerhalb eines Formulars, was ich an anderer Stelle brauche (Filterung direkt auf dem Auftragsblatt, ohne Aufruf von einem anderen Formular aus).
Und dort funktioniert ismodified einwandfrei! Jede Änderung in einem Feld, die das Diskettensymbol auslöst, führt auch zur Speichern-Abfrage, auch wenn man das Feld nicht verlassen hat! (Es ist dieselbe Datenbank, dasselbe Auftragsformular, das auch im bisherigen Makro aufgerufen wird.)
Das Problem muß also irgendwie mit der Tatsache zusammenhängen, daß ein Formular ein anderes auslöst und dort ein ismodified abgefragt wird. Was weiß ich.
Gruß
Freischreiber
du hast recht, das hat auch nicht funktioniert.

Und dort funktioniert ismodified einwandfrei! Jede Änderung in einem Feld, die das Diskettensymbol auslöst, führt auch zur Speichern-Abfrage, auch wenn man das Feld nicht verlassen hat! (Es ist dieselbe Datenbank, dasselbe Auftragsformular, das auch im bisherigen Makro aufgerufen wird.)
Das Problem muß also irgendwie mit der Tatsache zusammenhängen, daß ein Formular ein anderes auslöst und dort ein ismodified abgefragt wird. Was weiß ich.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
-
- * LO-Experte *
- Beiträge: 834
- Registriert: Fr 28. Mär 2014, 10:41
Re: Base-"Datensatz speichern"-Button (Diskettenknopf) per Makro abfragen?
Ergänzung:
Gelöst ist das Problem noch nicht (ismodified bemerkt keine Änderungen, bevor man das Feld verlassen hat).
Heute habe ich aber einen Effekt bemerkt, der vielleicht damit zusammenhängt: Wenn ich in einem Feld eine Ergänzung vornehme (zusätzlicher Buchstabe), springt das Diskettensymbol an. Wenn ich den Buchstaben gleich wieder lösche, bleibt das Diskettensymbol aktiviert, ist aber nicht durch Drücken wieder grau zu kriegen. Hat vielleicht gar nichts damit zu tun, aber mir ist gleich dieser Thread wieder eingefallen.
Gelöst ist das Problem noch nicht (ismodified bemerkt keine Änderungen, bevor man das Feld verlassen hat).
Heute habe ich aber einen Effekt bemerkt, der vielleicht damit zusammenhängt: Wenn ich in einem Feld eine Ergänzung vornehme (zusätzlicher Buchstabe), springt das Diskettensymbol an. Wenn ich den Buchstaben gleich wieder lösche, bleibt das Diskettensymbol aktiviert, ist aber nicht durch Drücken wieder grau zu kriegen. Hat vielleicht gar nichts damit zu tun, aber mir ist gleich dieser Thread wieder eingefallen.
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
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.