GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Moderator: Moderatoren
-
- Beiträge: 4
- Registriert: Mo, 21.09.2020 18:09
- Wohnort: Hamburch
GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Moin zusammen!
Ich arbeite mich gerade in die Basic-Makroprogrammierung von LibreOffice ein und habe schon viele meiner Fragen durch Recherchen hier im Forum lösen können.
Ich habe jetzt eine Datenbank entworfen und darin mehrere Formulare entwickelt.
Das Hauptformular läuft mittlerweile zufriedenstellend.
Jetzt habe ich ein zweites Formular (frmWochenwahl) entworfen und aktiviere es über eine Schaltfläche aus dem Hauptformular per folgendem Aufruf.
ThisDatabaseDocument.FormDocuments.getByName( "frmWochenwahl" ).open
Das klappt soweit auch gut.
Das Formular wird geöffnet und die Steuerelemente reagieren.
Schaltflächen sind mit Makros hinterlegt und arbeiten (z.B. Schließen das Formular).
Mein Problem:
Ich habe im Formular frmWochenwahl ein Makro an das Ereignis „Beim Laden“ geknüpft.
Dieses Makro wird beim Laden des Formulars aber nicht ausgeführt!
Es steht im Moment nur ein msgbox „frmWochenwahl - Beginn“ darin, also nichts Kritisches…
Zur Sicherheit habe ich noch ein drittes rudimentäres Formular entworfen und auf gleiche Art und Weise konfiguriert.
Es verhält sich genauso wie das zweite…
Hat vielleicht jemand einen Ansatz, woran das liegen könnte?
Danke - Flipper
Ich arbeite mich gerade in die Basic-Makroprogrammierung von LibreOffice ein und habe schon viele meiner Fragen durch Recherchen hier im Forum lösen können.
Ich habe jetzt eine Datenbank entworfen und darin mehrere Formulare entwickelt.
Das Hauptformular läuft mittlerweile zufriedenstellend.
Jetzt habe ich ein zweites Formular (frmWochenwahl) entworfen und aktiviere es über eine Schaltfläche aus dem Hauptformular per folgendem Aufruf.
ThisDatabaseDocument.FormDocuments.getByName( "frmWochenwahl" ).open
Das klappt soweit auch gut.
Das Formular wird geöffnet und die Steuerelemente reagieren.
Schaltflächen sind mit Makros hinterlegt und arbeiten (z.B. Schließen das Formular).
Mein Problem:
Ich habe im Formular frmWochenwahl ein Makro an das Ereignis „Beim Laden“ geknüpft.
Dieses Makro wird beim Laden des Formulars aber nicht ausgeführt!
Es steht im Moment nur ein msgbox „frmWochenwahl - Beginn“ darin, also nichts Kritisches…
Zur Sicherheit habe ich noch ein drittes rudimentäres Formular entworfen und auf gleiche Art und Weise konfiguriert.
Es verhält sich genauso wie das zweite…
Hat vielleicht jemand einen Ansatz, woran das liegen könnte?
Danke - Flipper
Zuletzt geändert von Flipper.Ron am Mo, 21.09.2020 22:31, insgesamt 1-mal geändert.
Re: Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Am falschen Ereignis? Das EReignis „Beim Laden“ konnte ich bei verschiedenen LO-Versionen nicht finden, kann das also nicht prüfen. Bei mir funktioniert (unter mutmaßlich gleichen Bedingungen) das EReignis "Dokument öffnen" (in LO 8.0,3, 6.2.6, 7.0)Hat vielleicht jemand einen Ansatz, woran das liegen könnte?
Gruß
stephan
-
- Beiträge: 4
- Registriert: Mo, 21.09.2020 18:09
- Wohnort: Hamburch
Re: Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Hallo Stephan,
vielen Dank für Deinen Unterstützungsversuch!
Ich habe eben die Lösung gefunden:
In den Formulareigenschaften muss zwingend das Feld "Inhalt" gefüllt sein.
In diesem Formular hatte ich nicht die Notwendigkeit auf eine Tabelle zuzugreifen und habe deshalb den Eintrag leer gelassen.
Nachdem ich eine bestehende Tabelle ausgewählt habe, wird das "Laden-Ereignis-Makro" sofort abgearbeitet...
Gruß Flipper
vielen Dank für Deinen Unterstützungsversuch!
Ich habe eben die Lösung gefunden:
In den Formulareigenschaften muss zwingend das Feld "Inhalt" gefüllt sein.
In diesem Formular hatte ich nicht die Notwendigkeit auf eine Tabelle zuzugreifen und habe deshalb den Eintrag leer gelassen.
Nachdem ich eine bestehende Tabelle ausgewählt habe, wird das "Laden-Ereignis-Makro" sofort abgearbeitet...
Gruß Flipper
Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
mmh ... wenn ich das richtig verstehe könnte wohl (statt ThisDatabaseDocument.FormDocuments.getByName( "frmWochenwahl" ).open) folgende Ladeanweisung helfen:
Gruß
Stephan
Code: Alles auswählen
dim oCon as object
oCon = ThisDatabaseDocument.CurrentController
If NOT ( oCon.isConnected() ) Then oCon.connect()
oCon.loadComponent(com.sun.star.sdb.application.DatabaseObject.FORM,"frmWochenwahl",FALSE)
Gruß
Stephan
-
- Beiträge: 4
- Registriert: Mo, 21.09.2020 18:09
- Wohnort: Hamburch
Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Hallo Stephan,
vielen Dank, ich habe es jetzt endlich ausprobieren können.
Dein Ansatz funktioniert auch, wenn die Verbindung zur Datenbanktabelle in den Formulareigenschaften nicht eingetragen ist.
Also deutlich der bessere Ansatz
Hast Du auch noch einen Tipp, wie ich das Formularfenster beim Aufruf sehr einfach auf eine von mir gewünschte Größe bringen kann?
Im Moment wird die Standardgröße aufgerufen - geht, sieht aber blöd aus mit nur zwei Feldern und zwei Schaltflächen darin...
vielen Dank, ich habe es jetzt endlich ausprobieren können.
Dein Ansatz funktioniert auch, wenn die Verbindung zur Datenbanktabelle in den Formulareigenschaften nicht eingetragen ist.
Also deutlich der bessere Ansatz
Hast Du auch noch einen Tipp, wie ich das Formularfenster beim Aufruf sehr einfach auf eine von mir gewünschte Größe bringen kann?
Im Moment wird die Standardgröße aufgerufen - geht, sieht aber blöd aus mit nur zwei Feldern und zwei Schaltflächen darin...
Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
z,B. siehe:
https://www.uni-due.de/~abi070/count.ph ... eutsch.pdf
in Kapitel 12.3.5. Der aktuelle Frame:
Gruß
Stephan
https://www.uni-due.de/~abi070/count.ph ... eutsch.pdf
in Kapitel 12.3.5. Der aktuelle Frame:
Code: Alles auswählen
Sub ShrinkWindowBy75()
Dim vFrame 'Aktueller Frame
Dim vWindow 'Container-Fenster
Dim vRect As New com.sun.star.awt.Rectangle
vFrame = StarDesktop.getCurrentFrame()
vWindow = vFrame.getContainerWindow()
vRect = vWindow.getPosSize()
REM Beim Ändern der Position und der Größe bestimmt das letzte Argument,
REM welches der Argumente zu nutzen ist.
'com.sun.star.awt.PosSize.X Setzt nur die X-Position
'com.sun.star.awt.PosSize.Y Setzt nur die Y-Position
'com.sun.star.awt.PosSize.WIDTH Setzt nur die Breite
'com.sun.star.awt.PosSize.HEIGHT Setzt nur die Höhe
'com.sun.star.awt.PosSize.POS Setzt nur die Position
'com.sun.star.awt.PosSize.SIZE Setzt nur die Größe
'com.sun.star.awt.PosSize.POSSIZE Setzt sowohl die Position als auch die Größe
vWindow.setPosSize(vRect.X, vRect.Y, 3 * vRect.Width / 4, 3 * vRect.Height / 4, com.sun.star.awt.PosSize.SIZE)
End Sub
Gruß
Stephan
-
- Beiträge: 4
- Registriert: Mo, 21.09.2020 18:09
- Wohnort: Hamburch
Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt
Super - nochmals vielen Dank!
Flipper
Flipper