🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

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

Größe eines db-Formulars

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Größe eines db-Formulars

Beitrag von Pit Zyclade » Do 5. Nov 2015, 11:32

Hallo,
Sowohl beim Entwurfmodus als auch bei der Ansicht des gefüllten Formulars fällt mir auf, dass ich zwar die Seite (A4 bei mir) formatieren kann, aber das eigentliche Formular auf dem Bildschirm viel kleiner ist als gewünscht. Die Fläche daneben innerhalb des Programmrahmens habe ich z.B. Ocker gefärbt.
Wünschenswert wäre doch die Fläche formatfüllend auszunutzen. Ich habe auch mit verschiedenen Ansichtsmaßstäben gearbeitet, jedoch "optimal" ist z.B. ausgegraut.
Wie also kann ich mein Ziel einer formatfüllenden Ansicht erreichen, ohne jeden %-Schritt zu probieren?

Danke für Diskussion
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

gelöst: Größe eines db-Formulars

Beitrag von Pit Zyclade » Do 5. Nov 2015, 13:34

Habs selber gefunden ...
Im Entwurfmodus (!) unten das 10. Symbol von links (Rechteck mit 4 Pfeilen) anklicken und dann die Größe gewünscht ändern. Fertig.
Gruß
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

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

Re: Größe eines db-Formulars

Beitrag von RobertG » Do 5. Nov 2015, 17:47

Hallo Pit,

die Zoomeinstellung des Formulars entspricht der Zoomeinstellung der zuletzt von Dir geöffneten Writer-Datei. Das kannst Du nur dauerhaft über Makros korrigieren.

Code: Alles auswählen

SUB Formularzoom
	ThisComponent.CurrentController.ViewSettings.ZoomValue=100
END SUB
Der Code soll bei dem Öffnen des Formulars ausgelöst werden. Formular also zum Bearbeiten öffnen, Extras → Anpassen → Ereignisse → Dokument öffnen ... und dort dann das Makro einbinden.

Ansonsten: Strg und Scrollrad der Maus regeln die Größe wieder ein.

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 21. Feb 2020, 16:52

Hallo miteinander,

das

Code: Alles auswählen

ThisComponent.CurrentController.ViewSettings.ZoomValue=anIntegerValue
hat ja etliche Jahre funktioniert, neuerdings aber leider nicht mehr [LO Version: 6.3.4.2, Build-ID: 1:6.3.4-0ubuntu0.18.04.1~lo2].

Die Fehlermeldung lautet schlicht "Eigenschaft oder Methode nicht gefunden: ViewSettings."

Weil das Zufalls-Gezoome der Base-Formulare aber wirklich nervig sein kann: hat jemand schon wieder eine aktuelle Lösung für eine makrogesteuerte Größenanpassung gefunden :?: ?

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

Re: Größe eines db-Formulars

Beitrag von RobertG » Fr 21. Feb 2020, 17:42

Hallo devdol,

das funktioniert hier bei mir weiterhin einwandfrei: LO 6.4.0.3 unter OpenSUSE 15.1, Originalpakete von LO.

Vielleicht ist da etwas daneben gegangen bei der Ubuntu-Paketierung. Versuche es doch einmal mit den Originalpaketen, nicht mit denen Deiner Distribution.

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 » Mo 24. Feb 2020, 12:08

Leider kein Erfolg. Ich habe heute sämtliche LIbreOffice-Pakete der Ubuntu-Paktverwaltung deinstalliert und die aktuellen bei libreoffice.org verfügbaren Pakete installiert - soweit kein Problem ("Version: 6.4.0.3
Build-ID: b0a288ab3d2d4774cb44b62f04d5d28733ac6df8, CPU-Threads: 8; BS: Linux 4.15; UI-Render: GL; VCL: kf5;
Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE, Calc: threaded).

Allerdings: die Property ZoomValue ist nach wie vor nicht vorhanden.
Das Makro sieht aktuell aus wie folgt und ist via Extras/Anpassen/Ereignisse für die odb-Datei mit "Dokument öffnen" verknüpft, damit ein bestimmtes Formular automatisch geladen wird - was auch funktioniert.
Allerdings wäre dieses noch auf eine definierten Zoomstufe zu setzen, um vernünftig damit arbeiten zu können.

Code: Alles auswählen

Sub AutoLoadForm()
  Dim oController, oFrame
    oController = ThisDatabaseDocument.CurrentController
	If not ( oController.isConnected() ) Then oController.connect() ' Connect to the database, if necessary
	DoEvents
  
	oController.loadComponent( com.sun.star.sdb.application.DatabaseObject.FORM, _
	                           "MeinFormular", FALSE ) 
	                           ' Parameters: ObjectType, Parameter ObjectName, ForEditing

    XRayLaden()
    XRay ThisComponent.CurrentController

    oController.ViewSettings.ZoomType = com.sun.star.view.DocumentZoomType.BY_VALUE
    oController.ViewSettings.ZoomValue = 85

End Sub
Es würde mich nicht so frustrieren, hätte genau dies nicht in der Vergangenheit über viele Jahre funktioniert...

Hat jemand noch Ideen? Oder alternative Wege, die Zoomstufe per Makro zuzuweisen?

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

Re: Größe eines db-Formulars

Beitrag von RobertG » Mo 24. Feb 2020, 12:39

Hallo devdol,

Dein Makro versucht, dem Controller des Datenbankdokuments eine Zoomstufe eines Writerdokumentes (nichts anderes ist ein Formular) zuzuweisen.

Ich habe das nicht im Einzelnen geprüft, was dabei passieren sollte, aber

Code: Alles auswählen

SUB Formularzoom
	ThisComponent.CurrentController.ViewSettings.ZoomValue=100
END SUB
das obige Makro funktioniert hier einwandfrei.

Schmeiß einmal den ganzen unnützen Kram aus Deinem Makro raus. Dann können wir weiter forschen, wenn das Ganze eben nicht läuft.
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 » Mo 24. Feb 2020, 13:20

Hallo RobertG,

"unnütz" wären da allein die beiden Xray-Anweisungen, die vorher natürlich auch nicht drin standen.
Die oController.loadComponent-Anweisung soll das Formular ja automatisch laden, was sie nur tut, wenn zuvor oController.connect() ausgeführt wird, sonst schlägt das fehl.

Diskutieren könnte man allenfalls über das DoEvents ... war nur so eine Hoffnung ,-)

Mittlerweile habe ich herausgefunden, daß

Code: Alles auswählen

    oController.ViewSettings.ZoomType = com.sun.star.view.DocumentZoomType.BY_VALUE
    oController.ViewSettings.ZoomValue = 85
funktioniert, wenn ich es dem "Aktion ausführen"-Ereignis einer Befehlsschaltfläche auf dem Formular zuweise!

Damit ist bewiesen, daß Du recht hast - aber die Frage noch zu klären, wo man das unterbringen kann, damit das bei jedem Öffnen des Formulars auch automatisch passiert.
Eine Zuweisung von "Ansicht wurde erzeugt" habe ich ebenfalls versucht, in der Annahme, daß dieses Event etwas später ausgelöst wird, mit einem separaten Minimal-Makro:

Code: Alles auswählen

Sub Zoom
       ThisComponent.CurrentController.ViewSettings.ZoomValue=100
End Sub
Aber auch davon erhalte ich nur:
"BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: ViewSettings."
Nächster Versuch "Dokument aktivieren", aber auch das ist augenscheinlich kein geeignetes Ereignis - gleicher Fehler. Letzter Versuch, Zuweisung zum Ereignis "Laden des Dokuments beendet": Funktioniert ebenfalls nicht.

Leider ist die genaue Abfolge der Events entweder gut versteckt oder tatsächlich nicht dokumentiert, aber nach meinem Verständnis bin ich durch alles halbwegs in Frage kommende durch...

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

Re: Größe eines db-Formulars

Beitrag von RobertG » Mo 24. Feb 2020, 15:14

Ich habe das hier testweise bei
Extras > Anpassen > Ereignisse > Dokument öffnen
liegen. Das klappt. Habe ich auch so im Handbuch hinterlegt:
Wählen Sie das passende Ereignis aus. Bestimmte Makros lassen sich nur starten, wenn Ansicht wurde erzeugt gewählt ist. Andere Makros wie z.B. das Erzeugen eines Vollbild-Formulars kann über Dokument öffnen gestartet werden.
Ich ermittle so etwas auch nur über Tests.
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 » Mo 24. Feb 2020, 16:39

Hallo RobertG,

zuallererst erst mal herzlichen Dank für Deine Hilfsbereitschaft!

Ja, genau den zitierten Satz in jenem Handbuch (eine der besten Quellen übrigens, die ich bisher gefunden habe!) habe ich gelesen.

Ich habe jetzt mal ein Minimalbeispiel erstellt - ohne Datenbanktabellen, nur ein Formular mit einem Label, das automatisch über das Ereignis "Dokument öffnen" mit dem Makro unten geladen wird. Dabei bekomme ich von der Zoom-Zeile wieder nur besagtes "Eigenschaft oder Methode nicht gefunden: ViewSettings."
Daher bin ich gespannt, ob es bei Dir funktioniert.
Meine Umgebung ist ein aktuelles KDE Neon (Ubuntu 18.04-LTS basiert) mit den bereits erwähnten aktuellen deb-Paketen von libreoffice.org.

Code: Alles auswählen

Sub AutoLoad
	Dim oController
	oController = ThisDatabaseDocument.CurrentController
	If not ( oController.isConnected() ) Then oController.connect() 
	oController.loadComponent( com.sun.star.sdb.application.DatabaseObject.FORM, _
	                           "Formular1", FALSE ) 
	                           ' Parameter: ObjectType, Parameter ObjectName, ForEditing
	ThisComponent.CurrentController.ViewSettings.ZoomValue=100
End Sub
Dateianhänge
Minimalbeispiel_AutoZoom.7z
(9.23 KiB) 272-mal heruntergeladen


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