Hallo,
ich würde gerne in OOoBasevon einem Formular aus per Button- Druck eine Liste (Bericht) erstellen, bzw. einen vorher definierten Bericht aufrufen und ausführen. In meinem ansonsten sehr umfangreichen Handbuch ist das leider nicht beschrieben. Kann mir da jemand helfen?
Gruß Tina
Bericht erstellen vom Formular aus
Moderator: Moderatoren
Re: Bericht erstellen vom Formular aus
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
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
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
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
Re: Bericht erstellen vom Formular aus
Hallo ebayer,
vielen Dank für die schnelle Antwort.
Da ich relativer Anfänger bin und noch nie mit Makros gearbeitet habe, muß ich nochmal nachfragen:
den Dreizeiler baue ich bei dem jeweiligen Button unter Ereignisse ein. Und wo kommt die globale Sub hin?
Gruß Tina
vielen Dank für die schnelle Antwort.
Da ich relativer Anfänger bin und noch nie mit Makros gearbeitet habe, muß ich nochmal nachfragen:
den Dreizeiler baue ich bei dem jeweiligen Button unter Ereignisse ein. Und wo kommt die globale Sub hin?
Gruß Tina
Re: Bericht erstellen vom Formular aus
Hallo Tina,
beispielsweise unter "Meine Makros - Standard".
Allerdings kannst Du dann Deine Anwendung nicht einfach auf einen anderen Rechner kopieren, weil das Makro dann ja in Deiner Konfiguration gespeichert ist.
Ich würde vorschlagen, daß Du Deine Anwendung startest und dann das Makro "PrintReport" in Deine Anwendung einbaust.
Das geht ganz einfach.....
Extras - Makros - Makros verwalten - OpenOffice.org Basic
Dann gehst Du ganz nach unten in dem Fenster und klickst auf den Namen Deiner Anwendung.
Dort unter "Standard - Modul1" kopierst Du das Makro hinein.
Das kleine Makro, den 3-zeiler kannst Du ebenfalls dahin kopieren.
Dann den PushButton in Deinem Formular mit dem kleinen Makro verlinken...... fertig.
Viel Erfolg
Gruß eBayer
beispielsweise unter "Meine Makros - Standard".
Allerdings kannst Du dann Deine Anwendung nicht einfach auf einen anderen Rechner kopieren, weil das Makro dann ja in Deiner Konfiguration gespeichert ist.
Ich würde vorschlagen, daß Du Deine Anwendung startest und dann das Makro "PrintReport" in Deine Anwendung einbaust.
Das geht ganz einfach.....
Extras - Makros - Makros verwalten - OpenOffice.org Basic
Dann gehst Du ganz nach unten in dem Fenster und klickst auf den Namen Deiner Anwendung.
Dort unter "Standard - Modul1" kopierst Du das Makro hinein.
Das kleine Makro, den 3-zeiler kannst Du ebenfalls dahin kopieren.
Dann den PushButton in Deinem Formular mit dem kleinen Makro verlinken...... fertig.
Viel Erfolg
Gruß eBayer
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
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
Re: Bericht erstellen vom Formular aus
...ganz herzlichen Dank!!!