Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

hubsif
Beiträge: 5
Registriert: Fr, 23.03.2007 16:24

Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von hubsif »

Hallo,

Ich habe schon viel im Internet gesucht, jedoch nicht wirklich was zu dem gefunden, was ich machen will. Deshalb frage ich jetzt mal hier nach:

Ich habe ein Writer-Dokument, welches ich mit Daten aus einer Datenbank ergänzen möchte. Das ganze soll dynamisch sein, genau hier liegt mein Problem.

Ein Beispiel bzw. genauere Beschreibung was ich vor habe:

Auf meiner Titelseite steht der Name des Monats für den mein Dokument erstellt wird. Später im Dokument folgen einige Tabellen und Textstellen die aus der Datenbank generiert werden. Das Query dazu soll den genannten Monatsnamen verwenden (z.B. "SELECT COUNT(*) from datensaetze WHERE monat=<Monatsname aus Writer-Textstelle>;).

Ausserdem hätte ich darunter gerne eine Tabelle mit entsprechenden Datensätzen aus der Datenbank, die die Monatseinträge enthält (z.B. "SELECT * from datensaetze WHERE monat=<Monatsname aus Writer-Textstelle>;).

Ich habe mir das alles so gedacht, dass ich dann nur noch die Textstelle mit dem Monatsnamen anpasse und das Dokument dann entsprechend aktualisiert wird.

Falls ich mich verständlich genug ausgedrückt habe:
Ist so etwas überhaupt möglich? Wenn ja wie?

Vielen Dank schonmal!
hubsif.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von komma4 »

Willkommen in Forum.

hubsif hat geschrieben: "SELECT COUNT(*) from datensaetze WHERE monat=<Monatsname aus Writer-Textstelle>"
[...]
Ich habe mir das alles so gedacht, dass ich dann nur noch die Textstelle mit dem Monatsnamen anpasse und das Dokument dann entsprechend aktualisiert wird.
Anders herum "wird ein Schuh draus":

erstelle Deine Abfrage als Parameterabfrage (<= Dein Suchbegriff für die Forensuche hier)
Ziehe die Felder aus der Ergebnistabelle in Deine Writer-Vorlage.

Erstellst Du nun ein neues Dokument wird die Abfrage neu ausgeführt, Du gibst den Parameter (Monatsname oder -zahl?) ein, und die Felder im neuen Writer-Dokument werden automatisch gefüllt.


Bemühe mal die Forensuche und melde Dich bei Fragen wieder.


Errgänzung: auch viele anschauliche Beschreibungen im http://www.ooowiki.de , Kategorie Writer, siehe DatenUndTextMischen, CalcSerienbriefe etc.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
hubsif
Beiträge: 5
Registriert: Fr, 23.03.2007 16:24

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von hubsif »

Hallo,

Danke für deine Antwort.
Das mit der Parameterabfrage habe ich verstanden (auch wenn's noch nicht richtig funktioniert). Allerdings schade, dass ich scheinbar keinen Text aus dem Writer-Dokument dafür nutzen kann.

Allerdings konnte ich noch nicht herausfinden, wie ich eine Ergebnistabelle in Writer anzeigen lassen kann.
Ich hätte z.B. gerne das Ergebnis des Statments "SELECT * from tabelle where bedingung=parameter" als Tabelle eingebunden, die Zahl der Ergebniszeilen kann dabei variieren.
Derzeit krieg ich es nur hin, die Ergebnistabelle in Writer "hineinzuziehen", wonach die Tabelle aber nicht mehr dynamisch ist.

Hast du dazu noch einen Tipp?

Danke!
hubsif.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von komma4 »

hubsif hat geschrieben:das Ergebnis des Statments "SELECT * from tabelle where bedingung=parameter" als Tabelle eingebunden, die Zahl der Ergebniszeilen kann dabei variieren.
Nimm den Berichts-Assistenten des BASE-Dokuments, der kann dynamische Berichte erstellen :)


Deine Abfrage muss ausserdem die Syntax WHERE bedingung = :parameter haben


HTH
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
hubsif
Beiträge: 5
Registriert: Fr, 23.03.2007 16:24

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von hubsif »

komma4 hat geschrieben:Nimm den Berichts-Assistenten des BASE-Dokuments, der kann dynamische Berichte erstellen
Mit meinem gefährlichen Halbwissen weiss ich jetzt leider nicht, wie ernst diese Antwort gemeint war...

Meinen Versuchen zufolge kann ich aus so einem Report kaum ein vernünftiges Dokument erstellen, sondern bin an den ganzen Automatismus gebunden?!

hubsif.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von komma4 »

hubsif hat geschrieben:
komma4 hat geschrieben:wie ernst diese Antwort gemeint war...
War schon ernst gemeint.

Natürlich kannst Du den Bericht nach der Erstellung bearbeiten (re. Maustaste). Es öffnet sich ein "normales" Writer-Dokument mit einem Bereich, der die Tabelle der Abfrage enthält.

Meine Versuche unterhalb der Tabelle Text zu editieren waren nicht sehr erfolgreich... vllt. kann einer der Kollegen noch einen Tipp hierzu abgegeben.

Ansonsten sei hier noch auf den Sun Report Builder verwiesen, den Du auf der Seite der Extensions (Erweiterungen) findest. Inwieweit der besser ist ... kann ich auch nicht sagen.

Den Grund dafür schiebe ich nach:
ich erstelle solche Dokumente mit BASIC. Da ist es relativ einfach eine gespeicherte Abfrage (auch Parameter-A.) abzurufen und das Ergebnis in eine Texttabelle in den Writer zu integrieren.


Zu Deinen Versuchen wünsche ich Dir:
Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
hubsif
Beiträge: 5
Registriert: Fr, 23.03.2007 16:24

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von hubsif »

komma4 hat geschrieben: Zu Deinen Versuchen wünsche ich Dir:
Viel Erfolg!
Meine Versuche waren leider nicht von Erfolg gekrönt. Hab viel rumprobiert und im Internet recherchiert. Hab aber keinen der Punkte wirklich hinbekommen, auch nicht mit Zwischenweg über Calc.

Muss mir wohl was anderes einfallen lassen...

Danke für die Hilfe!
hubsif.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von komma4 »

Das hat mir nun keine Ruhe gelassen....

Im Anhang zwei Dateien.

Die BASE-Datei
de40580.odb
Beispiel-Datenbank, interne HSQLDB
(6.28 KiB) 109-mal heruntergeladen
dient als Test-Datenquelle und wird durch das Makro genutzt (muss als Datenquelle registriert werden).

Am Writer-Dokument
de40580-Makro.odt
Writer-Dokument mit Makro-Modul
(18.52 KiB) 125-mal heruntergeladen
ist ein Makro-Modul angehängt. Dort ist (für den Einsatz mit Deiner Datenbank) der Name der registrierten Datenquelle zu ändern.


Das Makro de40580 im Modul1 listet die definierten Abfragen der BASE-Datei auf, führt eine gewählte Abfrage aus und schreibt die Ergebnisse in der Writer-Datei in eine Texttabelle, die an der Cursorposition erzeugt wird.

Das ganze ist nur ein erster Entwurf... (keine Fehlerüberprüfung, noch nicht alle Datentypen enthalten)... aber vielleicht kann der ein oder andere damit etwas anfangen.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
MikeRo
****
Beiträge: 153
Registriert: Mi, 20.01.2010 10:16

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von MikeRo »

Hallo komma4,

ich habe mal deine Dateien heruntergeladen und versucht Sie auszuführen, bekomme allerdings eine Fehlermeldung.

BASIC-Laufzeitfehler
Objektvariable nicht Belegt.

und markiert ist diese Zeile

oViewCursor = oDok.getCurrentController().getViewCursor()

Ich würde auch gern mal wissen, ob du einen Tipp, hast wo ich mich am besten einlesen kann um so etwas auch selber erstellen zu können.
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von komma4 »

Du startest das Makro aus einem Writer-Dokument?


Zum Einlesen meine Nummer Eins: das Makro-Dokument von Andrew


Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
MikeRo
****
Beiträge: 153
Registriert: Mi, 20.01.2010 10:16

Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen

Beitrag von MikeRo »

komma4 hat geschrieben:Du startest das Makro aus einem Writer-Dokument?


Zum Einlesen meine Nummer Eins: das Makro-Dokument von Andrew


Viel Erfolg!
Erst mal danke und ja ich starte es aus dem Writer Dokument
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Antworten