Writer-Dokument dynamisch mit Datenbank-Daten befüllen
Moderator: Moderatoren
Writer-Dokument dynamisch mit Datenbank-Daten befüllen
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.
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.
- 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
Willkommen in Forum.
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.
Anders herum "wird ein Schuh draus":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.
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)
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)
Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen
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.
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.
- 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
Nimm den Berichts-Assistenten des BASE-Dokuments, der kann dynamische Berichte erstellenhubsif hat geschrieben:das Ergebnis des Statments "SELECT * from tabelle where bedingung=parameter" als Tabelle eingebunden, die Zahl der Ergebniszeilen kann dabei variieren.

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)
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)
Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen
Mit meinem gefährlichen Halbwissen weiss ich jetzt leider nicht, wie ernst diese Antwort gemeint war...komma4 hat geschrieben:Nimm den Berichts-Assistenten des BASE-Dokuments, der kann dynamische Berichte erstellen
Meinen Versuchen zufolge kann ich aus so einem Report kaum ein vernünftiges Dokument erstellen, sondern bin an den ganzen Automatismus gebunden?!
hubsif.
- 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
War schon ernst gemeint.hubsif hat geschrieben:komma4 hat geschrieben:wie ernst diese Antwort gemeint war...
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)
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)
Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen
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.komma4 hat geschrieben: Zu Deinen Versuchen wünsche ich Dir:
Viel Erfolg!
Muss mir wohl was anderes einfallen lassen...
Danke für die Hilfe!
hubsif.
- 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
Das hat mir nun keine Ruhe gelassen....
Im Anhang zwei Dateien.
Die BASE-Datei dient als Test-Datenquelle und wird durch das Makro genutzt (muss als Datenquelle registriert werden).
Am Writer-Dokument 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!
Im Anhang zwei Dateien.
Die BASE-Datei dient als Test-Datenquelle und wird durch das Makro genutzt (muss als Datenquelle registriert werden).
Am Writer-Dokument 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)
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)
Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen
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.
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
Windows XP Professional SP3 x86
- 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
Du startest das Makro aus einem Writer-Dokument?
Zum Einlesen meine Nummer Eins: das Makro-Dokument von Andrew
Viel Erfolg!
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)
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)
Re: Writer-Dokument dynamisch mit Datenbank-Daten befüllen
Erst mal danke und ja ich starte es aus dem Writer Dokumentkomma4 hat geschrieben:Du startest das Makro aus einem Writer-Dokument?
Zum Einlesen meine Nummer Eins: das Makro-Dokument von Andrew
Viel Erfolg!
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86