von eBayer » Sa, 14.11.2009 15:15
Wenn Du das unten aufgeführte Makro "PrintReport" als globales Sub verwendest, brauchst Du Dir nie wieder Gedanken über den Aufruf eines Berichts machen. Dann Ist der Aufruf immer der folgende 3-zeiler mit jeweils angepasstem Namen des Berichts.
Gruß eBayer
Sub MeinReport1
PrintReport("MeinReport1")
End Sub
Sub PrintReport(sReport) ' in sReport wird der Name des Berichts übergeben!
Dim oDatenbankKontext AS Object, oDatenquelle As Object, oReportDoc As Object, oVerbindung As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "MyDataBase" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
Args(0).Name="ActiveConnection" : Args(0).Value=oVerbindung
Args(1).Name="OpenMode" : Args(1).Value="open"
on Error goto Fehler
oReportDoc=oDatenquelle.DatabaseDocument.ReportDocuments.loadComponentFromURL(sReport,"_self",2,Args)
oReportDoc.CurrentController.Frame.ContainerWindow.setFocus()
Fehler:
End Sub
Wenn Du das unten aufgeführte Makro "PrintReport" als globales Sub verwendest, brauchst Du Dir nie wieder Gedanken über den Aufruf eines Berichts machen. Dann Ist der Aufruf immer der folgende 3-zeiler mit jeweils angepasstem Namen des Berichts.
Gruß eBayer
Sub MeinReport1
PrintReport("MeinReport1")
End Sub
Sub PrintReport(sReport) ' in sReport wird der Name des Berichts übergeben!
Dim oDatenbankKontext AS Object, oDatenquelle As Object, oReportDoc As Object, oVerbindung As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "MyDataBase" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
Args(0).Name="ActiveConnection" : Args(0).Value=oVerbindung
Args(1).Name="OpenMode" : Args(1).Value="open"
on Error goto Fehler
oReportDoc=oDatenquelle.DatabaseDocument.ReportDocuments.loadComponentFromURL(sReport,"_self",2,Args)
oReportDoc.CurrentController.Frame.ContainerWindow.setFocus()
Fehler:
End Sub