GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

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

Beitrag von Flipper.Ron »

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
Zuletzt geändert von Flipper.Ron am Mo, 21.09.2020 22:31, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt

Beitrag von Stephan »

Hat vielleicht jemand einen Ansatz, woran das liegen könnte?
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)


Gruß
stephan
Flipper.Ron
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

Beitrag von Flipper.Ron »

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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt

Beitrag von Stephan »

mmh ... wenn ich das richtig verstehe könnte wohl (statt ThisDatabaseDocument.FormDocuments.getByName( "frmWochenwahl" ).open) folgende Ladeanweisung helfen:

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

Beitrag von Flipper.Ron »

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 :-P
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...
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: GELÖST - Beim Laden eines Formular wird ein verknüpftes Makro nicht ausgeführt

Beitrag von Stephan »

z,B. siehe:
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
Flipper.Ron
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

Beitrag von Flipper.Ron »

Super - nochmals vielen Dank!
Flipper
Antworten