BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Brief automatisiert mit Daten füllen
Brief automatisiert mit Daten füllen
Hallo zusammen,
ich soll aus einer Anwendung heraus eine vorhandene ODT-Datei mit Daten füllen und speichern. Mit OO hat das wohl früher funktioniert, indem man einen DDE-Kanal auf "soffice","system","brief.odt" öffnete und Makros absetzte wie ThisComponent.TextSections.GetByName("AktDatum").Anchor.String="08.12.2021". In brief.odt gab es natürlich einen korrspondierenden Bereich namens AktDatum.
Mit LibreOffice kann ich zwar immer noch den DDE-Kanal öffnen, aber es passiert nichts, und ich bekomme nicht mal eine Fehlermeldung. Vermutlich ist DDE Technik von vorgestern, aber ich finde in er LO-Doku einfach nichts Passendes.
Hat mir bitte jemand einen Tipp, wo ich in der Doku schauen könnte bzw. mit welcher Technik ich diese Aufgabe lösen könnte? Ich bin LibreOffice-Anwender seit es StarOffice hieß und unter OS/2 lief...
aber ich hab es noch nie anprogrammieren müssen.
Danke und Grüße
Stefan
ich soll aus einer Anwendung heraus eine vorhandene ODT-Datei mit Daten füllen und speichern. Mit OO hat das wohl früher funktioniert, indem man einen DDE-Kanal auf "soffice","system","brief.odt" öffnete und Makros absetzte wie ThisComponent.TextSections.GetByName("AktDatum").Anchor.String="08.12.2021". In brief.odt gab es natürlich einen korrspondierenden Bereich namens AktDatum.
Mit LibreOffice kann ich zwar immer noch den DDE-Kanal öffnen, aber es passiert nichts, und ich bekomme nicht mal eine Fehlermeldung. Vermutlich ist DDE Technik von vorgestern, aber ich finde in er LO-Doku einfach nichts Passendes.
Hat mir bitte jemand einen Tipp, wo ich in der Doku schauen könnte bzw. mit welcher Technik ich diese Aufgabe lösen könnte? Ich bin LibreOffice-Anwender seit es StarOffice hieß und unter OS/2 lief...
aber ich hab es noch nie anprogrammieren müssen.
Danke und Grüße
Stefan
Re: Brief automatisiert mit Daten füllen
Hallo,
eigentlich macht man das, was Du beschreibst einfach als Serienbrief.
Wenn es DDE sein soll, schau mal hier rein:
http://www.ooowiki.de/DDE.html
Habe ich zwar seit "vorgestern" nicht mehr verwendet, funktioniert aber auch unter Libre-Office. Ich habe aber eine Calc Tabelle als Quelle der 6 Veranstaltungsdaten verwendet (nächster Termin in der ersten Zeile) um die üblichen Flyer, Hinweise, Anzeigen etc. mit Daten zu füllen. Zur nächsten Veranstaltung wurde einfach die bisherige erste Zeile gelöscht, womit die nächste Zeile zur extern referenzierten ersten Zeile wurde.
Mfg, Jörn
PS: Ganz allgemein brauchst Du Textfelder, die auch die Grundlage von Serienbriefen sind. Wirklich programmieren muss man da nichts.
eigentlich macht man das, was Du beschreibst einfach als Serienbrief.
Wenn es DDE sein soll, schau mal hier rein:
http://www.ooowiki.de/DDE.html
Habe ich zwar seit "vorgestern" nicht mehr verwendet, funktioniert aber auch unter Libre-Office. Ich habe aber eine Calc Tabelle als Quelle der 6 Veranstaltungsdaten verwendet (nächster Termin in der ersten Zeile) um die üblichen Flyer, Hinweise, Anzeigen etc. mit Daten zu füllen. Zur nächsten Veranstaltung wurde einfach die bisherige erste Zeile gelöscht, womit die nächste Zeile zur extern referenzierten ersten Zeile wurde.
Mfg, Jörn
PS: Ganz allgemein brauchst Du Textfelder, die auch die Grundlage von Serienbriefen sind. Wirklich programmieren muss man da nichts.
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
Re: Brief automatisiert mit Daten füllen
Jörn,
danke für den Link zu DDE. Wenn ich das richtig sehe, dann kann ich DDE-Felder definieren, die sich aus irgendwelchen DDE-Quellen wie eine Calc-Datei füllen. Ich habe solch eine DDE-Quelle nicht, weil die Daten aus einer Anwendung kommen.
Ich bin auch nicht auf DDE festgelegt, nur hat dieser von mir beschriebene Weg mal mit OOo funktioniert. und funktioniert so ähnlich auch mit Word.
Letztendlich muss ich ins ODT irgendwelche Werte pushen. Serienbriefe kann ich auch erstellen, weil ich da ja einfach eine Textdatei als Datenquelle für Adressen und Anreden zusammenstellen kann. Nur die anderen Werte muss ich direkt ins ODT schreiben. Ich google mir seit Tagen einen Wolf...
Viele Grüße
Stefan
danke für den Link zu DDE. Wenn ich das richtig sehe, dann kann ich DDE-Felder definieren, die sich aus irgendwelchen DDE-Quellen wie eine Calc-Datei füllen. Ich habe solch eine DDE-Quelle nicht, weil die Daten aus einer Anwendung kommen.
Ich bin auch nicht auf DDE festgelegt, nur hat dieser von mir beschriebene Weg mal mit OOo funktioniert. und funktioniert so ähnlich auch mit Word.
Letztendlich muss ich ins ODT irgendwelche Werte pushen. Serienbriefe kann ich auch erstellen, weil ich da ja einfach eine Textdatei als Datenquelle für Adressen und Anreden zusammenstellen kann. Nur die anderen Werte muss ich direkt ins ODT schreiben. Ich google mir seit Tagen einen Wolf...
Viele Grüße
Stefan
Re: Brief automatisiert mit Daten füllen
Moin,
Dann kann dir auch geholfen werden.
Gruß R
Tja, und geholfen werden kann Dir hier auch nicht, weil du das wichtigste hinterm Berg hältst:Nur die anderen Werte muss ich direkt ins ODT schreiben. Ich google mir seit Tagen einen Wolf...
Was bitte soll denn eine Anwendung sein? Das kann alles sein. Du solltest eine Datei hochladen, die deine Anwendung ausspuckt und erklären, welche der in der Datei enthaltenen Daten, wo, in welches .odt Dokument sollen.... weil die Daten aus einer Anwendung kommen.
Dann kann dir auch geholfen werden.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Brief automatisiert mit Daten füllen
Moin R.
Die Anwendung erzeugt keine Dateien mit Daten, die in ein ODT sollen. Daher gibt es da nichts hochzuladen.
Die Anwendung kann Geschäftsbriefe erzeugen, indem in Vorlagendateien bestimmte Platzhalter ersetzt werden. Das funktioniert mit MS-Word über DDE, und funktionierte auch mit OOo über DDE, über den Weg, den ich im ersten Post beschrieben habe. Nur mit LO funktioniert es offensichtlich nicht mehr. Daher suche ich für LO eine Lösung.
Anders formuliert: ich habe eine ODT, in der es Platzhalter gibt, z.B. <Aktenzeichen>. Diesen Platzhalter möchte die Anwendung durch den Wert 47.11 ersetzen.
Wie kann ich das erreichen?
Gruß Stefan
Die Anwendung erzeugt keine Dateien mit Daten, die in ein ODT sollen. Daher gibt es da nichts hochzuladen.
Die Anwendung kann Geschäftsbriefe erzeugen, indem in Vorlagendateien bestimmte Platzhalter ersetzt werden. Das funktioniert mit MS-Word über DDE, und funktionierte auch mit OOo über DDE, über den Weg, den ich im ersten Post beschrieben habe. Nur mit LO funktioniert es offensichtlich nicht mehr. Daher suche ich für LO eine Lösung.
Anders formuliert: ich habe eine ODT, in der es Platzhalter gibt, z.B. <Aktenzeichen>. Diesen Platzhalter möchte die Anwendung durch den Wert 47.11 ersetzen.
Wie kann ich das erreichen?
Gruß Stefan
Re: Brief automatisiert mit Daten füllen
Siehe Antwort 1: Serienbrief
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Brief automatisiert mit Daten füllen
Hallo,
von welcher Anwendung sprichst du?
Nur: woher kommen die Daten? Das ist die wesentliche Information, die fehlt.
von welcher Anwendung sprichst du?
Du hast eine odt-Datei in der an bestimmten Stellen Daten eingetragen werden. Soweit ist alles klar und problemlosich soll aus einer Anwendung heraus
Nur: woher kommen die Daten? Das ist die wesentliche Information, die fehlt.
Gruß,
mikele
mikele
Re: Brief automatisiert mit Daten füllen
Ich habe den Eindruck, dass da einiges durcheinander ist... Zumindestens verstehe ich es nicht.Stefan22 hat geschrieben: ↑Sa 11. Dez 2021, 02:23Moin R.
Die Anwendung erzeugt keine Dateien mit Daten, die in ein ODT sollen. Daher gibt es da nichts hochzuladen.
Die Anwendung kann Geschäftsbriefe erzeugen, indem in Vorlagendateien bestimmte Platzhalter ersetzt werden. Das funktioniert mit MS-Word über DDE, und funktionierte auch mit OOo über DDE, über den Weg, den ich im ersten Post beschrieben habe. Nur mit LO funktioniert es offensichtlich nicht mehr. Daher suche ich für LO eine Lösung.
Anders formuliert: ich habe eine ODT, in der es Platzhalter gibt, z.B. <Aktenzeichen>. Diesen Platzhalter möchte die Anwendung durch den Wert 47.11 ersetzen.
Wie kann ich das erreichen?
Gruß Stefan
- Erstmal: Wenn "die Anwendung" etwas machen soll, musst Du eigentlich im "die Anwendung"-Forum suchen, nicht bei LibreOffice.
- Bei DDE wird nichts in eine Datei gepusht, sondern das Programm, das eine Datei bearbeitet holt sich die Werte (bzw fragt bei "einer anderen Anwendung" nach Daten )
- Funktioniert es denn immer noch mit OpenOffice oder Word? Wenn es mit OpenOffice noch geht, kannst Du entweder OO und LO parallel verwenden, oder mal probieren, ob die 32bit-Version von LO Dir weiterhilft. Inter-Prozess-Kommunikation scheitert gerne mal an solchen Grenzen. Und nach Deinen Einlassungen könnte "die Anwendung" ja auch von vorgestern sein...
- Wenn Deine Push-Darstellung stimmt und "die Anwendung" mit Dateien für Open- oder MS- Office klarkommt und die Werte dort reinschreiben kann, sollte LibreOffice diese Dateien eigentlich danach lesen können...
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
Re: Brief automatisiert mit Daten füllen
Also,
ich habe es gerade mit AOO 4.1.11und LO 7.2.3 ausprobiert, DDE funktioniert in beiden.
Allerdings muss der Link, siehe Menü Bearbeiten, Verknüpfungen zu externen Dateien auch stimmen!
Wenn man die Quelle verschoben hat funktioniert der Link in der Zieldatei nicht mehr.
Gruß R
ich habe es gerade mit AOO 4.1.11und LO 7.2.3 ausprobiert, DDE funktioniert in beiden.
Allerdings muss der Link, siehe Menü Bearbeiten, Verknüpfungen zu externen Dateien auch stimmen!
Wenn man die Quelle verschoben hat funktioniert der Link in der Zieldatei nicht mehr.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Brief automatisiert mit Daten füllen
Hallo zusammen, vielen Dank für Eure Antworten!
Bei der Anwendung handelt es sich um ein kommerzielles DMS mit eigener Datenbank. Ganz klassisch in Cplüschplüsch mit VisualStudio programmiert. Wird niemand kennen, weil es fast ausschließlich im kommunalen Bereich eingesetzt wird. Und ich bin ja beim Hersteller. Konkret habe ich das gerade bei einer Stadt eingeführt, die mit LO arbeitet. Mit MS-Office funktioniert die Datenübergabe, mit OOo auch. Früher funktionierte es mit LO auch, muss aber schon einige Jahre her sein.
Das DMS kann u.a. Dokumente (Geschäftsbriefe, Formulare whatever) erstellen, die mit DMS-eigenen Daten oder mit Daten aus kommunalen Fachverfahren "befüllt" und einem Sachbarbeiter zur weiteren Bearbeitung geöffnet werden. Diese Dokumente werden durchaus nach außen weitergegeben, deshalb müssen die Daten im Dokument sein, d.h. ich kann es nicht über Serienbrieffelder füllen.
In meinem ersten Post hatte ich beschrieben,wie bei OO und früher LO die Daten übergeben werden. Es ist tatsächlich so, dass das OO/LO als DDE-Server aufgerufen wird, zumindest würde ich das so interpretieren:
Dann werden durch folgenden Aufruf die Platzhalter gefüllt:
Die Platzhalter werden also nicht aus irgendwelchen DDE-Quellen gefüllt, sondern über DDE ins Dokument gepusht!
Das dumme ist, dass alle Returncodes auf Erfolg hinweisen. Es gibt auch keine Fehlermeldungen in LO. Und ich weiß nicht, ob man LO irgendwie debuggen kann. Ich finde aber auch in keiner Doku von LO (auch nicht in der von OO) etwas Vernünftiges, ob der Zugriff auf die oben beschriebene Art mal irgendwann rausgenommen wurde. Aus Sicherheitsgründen oder so, könnte ja sein. Ich finde nicht mal die Dokumentationvon diesem Zugriff.
Den Tipp mit der 32-Bit-Variante von LO werde ich auf jeden Fall ausprobieren!
Ansonsten bin ich dankbar für alle Hinweise, wie ich meine Aufgabe gelöst bekomme.
Danke und Grüße
Stefan
Bei der Anwendung handelt es sich um ein kommerzielles DMS mit eigener Datenbank. Ganz klassisch in Cplüschplüsch mit VisualStudio programmiert. Wird niemand kennen, weil es fast ausschließlich im kommunalen Bereich eingesetzt wird. Und ich bin ja beim Hersteller. Konkret habe ich das gerade bei einer Stadt eingeführt, die mit LO arbeitet. Mit MS-Office funktioniert die Datenübergabe, mit OOo auch. Früher funktionierte es mit LO auch, muss aber schon einige Jahre her sein.
Das DMS kann u.a. Dokumente (Geschäftsbriefe, Formulare whatever) erstellen, die mit DMS-eigenen Daten oder mit Daten aus kommunalen Fachverfahren "befüllt" und einem Sachbarbeiter zur weiteren Bearbeitung geöffnet werden. Diese Dokumente werden durchaus nach außen weitergegeben, deshalb müssen die Daten im Dokument sein, d.h. ich kann es nicht über Serienbrieffelder füllen.
In meinem ersten Post hatte ich beschrieben,wie bei OO und früher LO die Daten übergeben werden. Es ist tatsächlich so, dass das OO/LO als DDE-Server aufgerufen wird, zumindest würde ich das so interpretieren:
Code: Alles auswählen
DDE_Oeffne("soffice", "system", Dateiname);
Code: Alles auswählen
DDE_FuehreAus(DDEKanal, "[ThisComponent.TextSections.GetByName("Aktenzeichen").Anchor.String="123.45"]")
Das dumme ist, dass alle Returncodes auf Erfolg hinweisen. Es gibt auch keine Fehlermeldungen in LO. Und ich weiß nicht, ob man LO irgendwie debuggen kann. Ich finde aber auch in keiner Doku von LO (auch nicht in der von OO) etwas Vernünftiges, ob der Zugriff auf die oben beschriebene Art mal irgendwann rausgenommen wurde. Aus Sicherheitsgründen oder so, könnte ja sein. Ich finde nicht mal die Dokumentationvon diesem Zugriff.
Den Tipp mit der 32-Bit-Variante von LO werde ich auf jeden Fall ausprobieren!
Ansonsten bin ich dankbar für alle Hinweise, wie ich meine Aufgabe gelöst bekomme.
Danke und Grüße
Stefan
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️