Ich hatte meine ersten „Datenbank“-Erfahrungen bekanntlich mit ACCESS gemacht und bin dann auf OpenOffice umgestiegen. Damals hatte es eine ganze Weile gedauert, bis ich begriffen habe, dass man Formulare für eine BASE-Datenbank am einfachsten mit WRITER erstellen kann. Nun habe für alle Formulare eine eigene *.odt Datei gemacht, in die ich Schaltflächen eingebaut habe, mit denen ich über „Aktion: URL-öffnen“ die jeweils anderen Formulare öffne.
Endlich habe ich mit SUN REPORT BUILDER verstanden, wie man mit einer BASE-Datenbank Berichte erstellt. Was ein „geiles“ Tool!!! Zwar noch nicht ganz ausgereift, aber wenigstens ein Anfang.
Frage nun: Wie kann ich aus einem Formular heraus (hier: Writer-Dokument) den Bericht einer *.odb-Datenbank öffnen. Für Schaltflächen-Eigenschaften gibt es nur unter ALLGEMEIN – AKTION:
Dokument, Webseite öffnen
nächster, vorheriger, erster, letzter Datensatz
rückgängig
… usw.
Aber „Report öffnen“ finde ich nicht. Wie würde denn das Marko lauten, wenn die Datenbank „C:\BASE\Willy.odb“ und der Bericht dort „Summe über alles“ heißt?
Gruß Bernd!
Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
Moderator: Moderatoren
Re: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
Mit dem unten stehenden Makro kannst Du Deine Berichte aufrufen.
Einfach den PushButton via Ereignis (Mouseclick) mit diesem Makro verbinden.
Viel Erfolg
eBayer
Sub PrintReport
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( "DeineDatenbank" )
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("DeinBericht","_blank",0,Args)
oReportDoc.CurrentController.Frame.ContainerWindow.setFocus()
Fehler:
End Sub
Einfach den PushButton via Ereignis (Mouseclick) mit diesem Makro verbinden.
Viel Erfolg
eBayer
Sub PrintReport
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( "DeineDatenbank" )
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("DeinBericht","_blank",0,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: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
Ah! Korrekt! Mit "Meine Datenbank" = Registriername der Datenbank (unter F4 zu sehen). Pfad und so weiter werden dort geregelt.
Wunderbar, Danke!
Wenn du Lust hast, könntest Du mir ja mal erklären, was die MAKRO-Schritte im Einzelnen bedeuten
MAKROS sind noch ein Buch mit 7 Siegeln für mich, obwohl ich eigentlich Programmiererfahrung von früher noch habe (Turbopascal, BASIC usw.)
gruß Bernd!
Wunderbar, Danke!
Wenn du Lust hast, könntest Du mir ja mal erklären, was die MAKRO-Schritte im Einzelnen bedeuten

MAKROS sind noch ein Buch mit 7 Siegeln für mich, obwohl ich eigentlich Programmiererfahrung von früher noch habe (Turbopascal, BASIC usw.)
gruß Bernd!
Re: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
Mir ist was Seltsames aufgefallen: Meine Schaltfläche funktioniert. Wenn ich drauf drücke, wird das Formular „XYZ“ aus der Base-Datenbank geöffnet und angezeigt. Doch: dort, wo gewöhnlicherweise bei WinXP im Fenster der Dokument-/Programmname steht (also der Name des Windows-Fensters) steht beim ersten mal „xyz.odt (schreibgeschützt) – OpenOffice.org Writer“.
Wenn ich das Dokument schließe und noch mal öffne, steht da „xyz1.odt (schreibgeschützt) – OpenOffice.org Writer“.
Wenn ich das Dokument dann noch mal schließe und noch mal wieder öffne, steht da „xyz2.odt (schreibgeschützt) – OpenOffice.org Writer“.
Usw.
Das ist übrigens bei allen Berichten so, auch wenn man sie aus der Base-Datenbank heraus direkt öffnet. Der Zähler fängt erst beim Neustart des Rechners wieder bei null an.
Ist das ein Programmierfehler?
Gruß Bernd!
Wenn ich das Dokument schließe und noch mal öffne, steht da „xyz1.odt (schreibgeschützt) – OpenOffice.org Writer“.
Wenn ich das Dokument dann noch mal schließe und noch mal wieder öffne, steht da „xyz2.odt (schreibgeschützt) – OpenOffice.org Writer“.
Usw.
Das ist übrigens bei allen Berichten so, auch wenn man sie aus der Base-Datenbank heraus direkt öffnet. Der Zähler fängt erst beim Neustart des Rechners wieder bei null an.
Ist das ein Programmierfehler?
Gruß Bernd!
Re: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
nein, das Verhalten ist normal.
Aber Du kannst es beeinflussen:
oReportDoc=oDatenquelle.DatabaseDocument.ReportDocuments.loadComponentFromURL(sReport,"_self",2,Args)
oReportDoc.Title="MeinTitel"
oReportDoc.CurrentController.Frame.ContainerWindow.setFocus()
So ähnlich sieht ja wohl Dein Aufruf des Berichtes aus.
Füge einfach die rot markierte Zeile ein.
Gruß eBayer
Aber Du kannst es beeinflussen:
oReportDoc=oDatenquelle.DatabaseDocument.ReportDocuments.loadComponentFromURL(sReport,"_self",2,Args)
oReportDoc.Title="MeinTitel"
oReportDoc.CurrentController.Frame.ContainerWindow.setFocus()
So ähnlich sieht ja wohl Dein Aufruf des Berichtes aus.
Füge einfach die rot markierte Zeile ein.
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: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
!!Tatsächlich!!
Woher weiß man alle diese Variablen? Ich glaube, man müßte sich mal richtig mit den Makros beschäftigen!
gruß Bernd!
Woher weiß man alle diese Variablen? Ich glaube, man müßte sich mal richtig mit den Makros beschäftigen!
gruß Bernd!
Re: Formular Schaltflächen-Aktionen (auch Bericht öffnen?)
Du solltest Dich in der Tat mit Makros und damit zwingend mit ooBasic beschäftigen.
Dann solltest Du Dir aus dem Netz XRAY besorgen. Das ist ein Tool, mit dem man u.a. alle Objekte und Variablen während der Laufzeit des Programms untersuchen kann. Daher habe ich z.B. Deine Frage beantworten können.
Gruß eBayer
Dann solltest Du Dir aus dem Netz XRAY besorgen. Das ist ein Tool, mit dem man u.a. alle Objekte und Variablen während der Laufzeit des Programms untersuchen kann. Daher habe ich z.B. Deine Frage beantworten können.
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