Seite 1 von 1

Formulars per Makro aus Formular aufrufen (gelöst)

Verfasst: Di, 16.06.2009 14:27
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

Re: Formulars per Makro aus Formular aufrufen

Verfasst: Di, 16.06.2009 17:03
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

Re: Formulars per Makro aus Formular aufrufen

Verfasst: Mi, 17.06.2009 08:28
von puzzledag
Danke,


hat einwandfrei funktioniert.

Gruß

dagmar