Seite 1 von 1
Bericht erstellen vom Formular aus
Verfasst: Sa, 14.11.2009 14:56
von Tinaa
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
Re: Bericht erstellen vom Formular aus
Verfasst: Sa, 14.11.2009 15:15
von eBayer
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
Re: Bericht erstellen vom Formular aus
Verfasst: Sa, 14.11.2009 15:39
von Tinaa
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
Re: Bericht erstellen vom Formular aus
Verfasst: Sa, 14.11.2009 16:23
von eBayer
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
Re: Bericht erstellen vom Formular aus
Verfasst: Sa, 14.11.2009 16:32
von Tinaa
...ganz herzlichen Dank!!!