Formulars per Makro aus Formular aufrufen (gelöst)

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

Moderator: Moderatoren

puzzledag
*
Beiträge: 10
Registriert: Mi, 06.05.2009 14:08

Formulars per Makro aus Formular aufrufen (gelöst)

Beitrag von puzzledag »

Hallo,

ich habe schon wieder ein Problem.

Ich möchte aus einem Formular (form_Essensmarken)per Button mit Makro ein weiteres Formular (form_reservierungen) aufrufen. Das funktioniert auch soweit, das das Formular geöffnet wird.
Nun sollen aber beim Öffnen auch gleich die Daten der zugehärigen Tabelle angezeigt werden. Das habe ich nicht hinbekommen.

Hier das Makro


Sub OpenFormReservierungen ' Beispiel für manuellen Aufruf z.B. aus anderem Makro oder aus einem Dialog heraus
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container As Variant, oForm As Variant
Dim oDatenbankKontext As Object, oDatenquelle As Object
' FormularAusblenden
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "db_kantinenabrechnung" )
container = oDatenquelle.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oCon ' oCon wird nur einmal geöffnet und ist Global definiert
args(1).Name = "OpenMode"
args(1).Value = "open"
oForm = container.loadComponentFromURL("form_reservierungen","_blank",0,args())
With oForm.getCurrentController().getFrame().getContainerWindow()
End With
End Sub

Was fehlt?

Gruß

dagmar
Zuletzt geändert von puzzledag am Mi, 17.06.2009 08:29, insgesamt 1-mal geändert.
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formulars per Makro aus Formular aufrufen

Beitrag von eBayer »

Hallo Dagmar,
wo und wann belegst Du denn die Variable oCon?
Ich habe Dein Makro mal testweise in ein Testprogramm einbebaut und dort funktioniert es einwandfrei.
Voraussetzung: Beim Programmstart muß oCon als globale Variable mit der Connection gefüllt sein.
Wenn ich nur oCon definiere ohne eine Connection aufzubauen, erhalte ich das von Dir beschriebene Ergebnis....... ein leeres Formular.
Ich habe das SO gelöst (siehe unten) und um einer möglichen Frage zuvorzukommen:
Main wird einmalig aufgerufen, indem Du im Hauptformular das Ereignis "beim öffnen" dem Sub Main zuordnest.
Gruß eBayer

Sub Main
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "DeineDatenbank" )
oCon = oDatenquelle.getConnection( "" , "" ) ' muß oberhalb von Main, also außerhalb der Sub's als global definiert sein
End Sub
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
puzzledag
*
Beiträge: 10
Registriert: Mi, 06.05.2009 14:08

Re: Formulars per Makro aus Formular aufrufen

Beitrag von puzzledag »

Danke,


hat einwandfrei funktioniert.

Gruß

dagmar
Antworten