BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

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

Größe eines db-Formulars

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Größe eines db-Formulars

Beitrag von RobertG » Mo 24. Feb 2020, 17:01

Hallo devdol,

der Fehler liegt darin, dass Du das Formular noch nicht geöffnet hast, obwohl Du mit thisComponent arbeitest. Du hast das Makro mit dem Start der Base-Datei verbunden.

Wenn Du aus dem Zoom eine zweite Prozedur machst und die in dem Formular starten lässt (Formular zum Bearbeiten öffnen, Extras > Anpassen ...), dann funktioniert das Ganze.

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

devdol
Beiträge: 45
Registriert: Fr 11. Mär 2011, 17:59

Re: Größe eines db-Formulars

Beitrag von devdol » Fr 6. Mär 2020, 14:45

Hallo Robert,

grundsätzlich habe ich das schon verstanden, fand und finde aber trotzdem nicht das passende Ereignis, in dem die Größenänderung funktionieren würde, oder eine Übersicht bzw. Erläuterung, was die zahlreichen Ereignisbezeichner denn nun präzise bedeuten und in welcher Reihenfolge sie ablaufen (Beispiel aus der Pascal-Welt: https://www.askingbox.de/info/delphi-ev ... -ondestroy).

Mit "präzise bedeuten" meine ich, daß für einen Anfänger/Umsteiger aus anderen Programmierkontexten wirklich nicht klar ist, ob z.B. das "view" in "View closed" für eine geschlossene Datenbankabfrage steht oder für die Ansicht eines Formulars, denn die sonst übliche Silbe "...form..." kommt nirgends vor.

So habe ich mir jetzt einmal systematisch angeschaut, welche Ereignisse denn eigentlich zugänglich sind, wenn man "Extras/Anpassen/Ereignisse" (a) aus dem Kontext des ODB-Containers und (b) aus dem Kontext eines Formular (im Entwurfsmodus) aufruft. Wenn man hier unterschiedliche Ereignismengen sähe, hätte ich das noch verstanden, aber nein, es hängt auch noch davon ab, mit welcher Sprache (deutsche oder englische Umgebung, d.h entsprechende $LANG) man daherkommt! An "Printing of form letters finished" komme ich beispielsweise nur heran, wenn ich das System "englisch starte".

Eigentlich hatte ich LibreOffice nur mit "LANG=de_DE.UTF-8 " gestartet, um die englischen Bezeichner zu sehen und mit denen zu vergleichen, die ich im Quelltext fand (in libreoffice-6.4.1.2/cui/inc/strings.hrc). Auch daß es sich bei letzteren um eine vollständige Liste handelt, ist nur eine Annahme von mir und mag unzutreffend sein.

Ich nehme ferner an, der ODB-Container ist mit "Document" gemeint, dann sind die Events mit "Document" im Namen in ihrer Bedeutung zumindest klar. Völlig unklar ist aber die "When..."-Familie im Quelltext, z.B. "When loading". Leider steht nicht da, was geladen wird - der Container? (unwahrscheinlich, da es dafür zumindest ein "Document loading finished" gibt), die Datenbanktabellen? das Ergebnis einer Abfrage? ein Tabellenfenster? ein Abfragefenster? ein Formular? ein Bericht? (...) Der Name ist also mindestens siebendeutig. Den Entwicklern wird schon klar sein, an was sie dabei dachten, aber sie haben es anscheinend nirgendwo aufgeschrieben oder sehr gut versteckt :-/

Insofern wäre eine Tabelle aller Ereignisse mit einem Einzeiler, worauf sie sich beziehen, in der Dokumentation oder einem Wiki sicherlich von großem allgemeinen Nutzen. Um vielleicht einen kleinen Anfang dazu beizusteuern, habe ich das, was ich eben beschrieben habe, einmal als Tabelle beigefügt.

Im Zusammenhang mit Ereignissen noch eine Frage, die allenfalls für LO-Insider, die ausschließlich LO-Makros arbeiten, trivial scheinen mag, es aber nicht ist: Falls es ein Ereignis in der Art von OnShow (Formular wurde geladen und wird angezeigt) gibt und man ein Makro an dieses bindet - wird das dann für alle Formulare ausgeführt, die in der betreffenden ODB-Datei stecken? Vorstellbar ist beides - zumal sich z.B. in Delphi ein Formular-Event immer auf genau ein(e) Formular(klasse) bezieht und das dort der Standardfall ist.
Dateianhänge
Ereignisse.ods
(11.46 KiB) 143-mal heruntergeladen

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Größe eines db-Formulars

Beitrag von RobertG » Fr 6. Mär 2020, 16:06

Hallo devdol,

nur ein paar kleine Anmerkungen:
"Printing of form letters finished" ist in der deutschsprachiegen Übersetzung "Serienbriefdruck abgeschlossen".

Ein *.odb-Container beherbergt Formulare als separate (in den Container eingepackte) Dokumente. Es gibt also die Möglichkeit, etwas dem gesamten Container zu sagen ( Eigenschaften direkt beim Start des *.odb-Dokumentes), etwas beim Start jedes untergeordneten Dokumentes zu veranlassen (also beim Start von Formulardokumenten) und etwas beim Ändern des Inhaltes usw. auf der sichtbaren Formularoberfläche zu veranlassen.

Ereignisse, die bei einem Formulardokument ausgeführt wurden, haben nichts mit den Ereignissen zu tun, die bei einem anderen Formulardokument ausgeführt wurden. Das ist schlicht ein anderes Dokument, das da aufgerufen wird.

Ob bestimmte aufgeführte Ereignisse in diesem Zusammenhang überhaupt etwas Sinnvolles ergeben kann ich nicht sagen. Das hat mich nie groß interessiert. Wenn es nach mir ginge würde ich bestimmte Ereignisse (wie z.B. den Serienbrief als Ereignis in Formulardokumenten) raus werfen oder deaktiviert anzeigen. Ich habe da irgendwann einmal durchgetestet und bei vielen Ereignissen herausgefunden, dass sie im Zusammenhang mit Datenbanken nie ausgeführt wurden.

... und weil diese Ereignisse nicht so häufig von Anwendern genutzt werden kann es auch passieren, dass einmal aktive Ereignisse nach einem Versionswechsel erst einmal länger unentdeckt nicht mehr funktionieren.

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

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

Antworten