Daten aus XBASE in Word übergeben (Adresse)
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Daten aus XBASE in Word übergeben (Adresse)
Guten Morgen,
selbst auf die Gefahr hin, daß dieses Thema schon irgendwie im Forum behandelt wurde (ich fand zumindest nichts Passendes), hier das Problem.
Ich möchte Word Vorlagen (Word 2010, 2013) automatisch mit Daten aus XBase ausfüllen.
Konkret, aus einer Kundenmaske mit Stammdaten sollen je nach Fall Word-Vorlagen aufgerufen werden und Adressdaten oder andere Daten aus XBase (dbf oder Array) automatisch in das Word-Formular eingetragen werden. Geht das mit vernünftigem Aufwand und wie?
Danke und Gruß
Wolfgang
selbst auf die Gefahr hin, daß dieses Thema schon irgendwie im Forum behandelt wurde (ich fand zumindest nichts Passendes), hier das Problem.
Ich möchte Word Vorlagen (Word 2010, 2013) automatisch mit Daten aus XBase ausfüllen.
Konkret, aus einer Kundenmaske mit Stammdaten sollen je nach Fall Word-Vorlagen aufgerufen werden und Adressdaten oder andere Daten aus XBase (dbf oder Array) automatisch in das Word-Formular eingetragen werden. Geht das mit vernünftigem Aufwand und wie?
Danke und Gruß
Wolfgang
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Moin Wolfgang,
ich mache das als Seriendruck. Ich erstelle eine .rtf-Datei als Seriendruckdokument (aus dem Programm heraus) und dazu passend eine .csv-Datei, die die einzelnen Felder enthält.
Dann kann der Kunde das Seriendruckdokument in Word (das nach dem Erstellen der beiden Dateien automatisch geöffnet wird) ganz bequem mit den dort vorhandenen Funktionalitäten (sortieren, Filtern, Druck in neue Datei oder auf Drucker,...) nutzen.
Braucht kein ActiveX
Viele Grüße,
Martin
ich mache das als Seriendruck. Ich erstelle eine .rtf-Datei als Seriendruckdokument (aus dem Programm heraus) und dazu passend eine .csv-Datei, die die einzelnen Felder enthält.
Dann kann der Kunde das Seriendruckdokument in Word (das nach dem Erstellen der beiden Dateien automatisch geöffnet wird) ganz bequem mit den dort vorhandenen Funktionalitäten (sortieren, Filtern, Druck in neue Datei oder auf Drucker,...) nutzen.
Braucht kein ActiveX
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
In den Beispielen gibt es eines, das ein Formular mit Platzhaltern ausfüllt und speichert, drucken wäre kein Problem:
...\XPPW32\source\samples\activex\msword\feed.prg
Die nutzen "Bookmarks", was sehr sicher ist, dass man nicht das falsche ersetzt.
Ich habe schon in Word Dokumenten nach einem bestimmten Begriff gesucht und diesen ersetzt, aber da kann es zu Verwechslungen kommen, also aufpassen.
So setze ich z.B. in HTML Dokumenten Felder ein {{NAME}} ... das sollte eindeutig sein
Ein Beispiel dazu und eines mit Standard Drucker habe ich - eventuell sogar in der Wissensdatenbank
...\XPPW32\source\samples\activex\msword\feed.prg
Die nutzen "Bookmarks", was sehr sicher ist, dass man nicht das falsche ersetzt.
Ich habe schon in Word Dokumenten nach einem bestimmten Begriff gesucht und diesen ersetzt, aber da kann es zu Verwechslungen kommen, also aufpassen.
So setze ich z.B. in HTML Dokumenten Felder ein {{NAME}} ... das sollte eindeutig sein
Ein Beispiel dazu und eines mit Standard Drucker habe ich - eventuell sogar in der Wissensdatenbank
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Nein, war nur als Anfrage 3 Zeilen unter deiner
Suchen und Ersetzen in Word - hat das jemand schon gemacht ?
Wenn du das Suchen und Ersetzen willst, kann ich das bei Gelegenheit zusammenstellen, aber die Bookmarks sind der Standardweg
Suchen und Ersetzen in Word - hat das jemand schon gemacht ?
Wenn du das Suchen und Ersetzen willst, kann ich das bei Gelegenheit zusammenstellen, aber die Bookmarks sind der Standardweg
Gruß
Hubert
Hubert
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo Martin,
danke für die schnelle Antwort.
Wie bringst Du dem .rtf Dokument bei, daß es ein Serienbrief ist?
danke für die schnelle Antwort.
Wie bringst Du dem .rtf Dokument bei, daß es ein Serienbrief ist?
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo Hubert,
"suchen und Ersetzen" wird nicht nötig sein. Es reicht, wenn man in ein WORD-Formular z.B. die Adresse und ein paar Daten übergeben kann. Notfalls kann man auch Token (was ja auch im Prinzip Platzhalter sind) setzen ...
Gruß Wolfgang
"suchen und Ersetzen" wird nicht nötig sein. Es reicht, wenn man in ein WORD-Formular z.B. die Adresse und ein paar Daten übergeben kann. Notfalls kann man auch Token (was ja auch im Prinzip Platzhalter sind) setzen ...
Gruß Wolfgang
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
...\XPPW32\source\samples\activex\msword\feed.prg
sieht auch gut aus ... Schaue ich mir auch an ..
sieht auch gut aus ... Schaue ich mir auch an ..
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wolfgang,
.rtf ist ja ein reines Textformat. Ähnlich wie HTML mit entsprechendem Befehlssatz ausgerüstet. Du musst in dem Aufbau (den Metadaten) des Dokumentes einfach hinterlegen, dass es sich um ein Seriendokument handelt und den Namen der Datei mit den Datensätzen und die Abfrage mitgeben.
Als Stichworte dafür sollten Dir mailmerge, mmdatasource, mmconnectstrdata, mmquery und dann die Felddefintionen mittels MERGEFIELD helfen.
Wenn Du möchtest, kann ich dir auch gerne das ganze per PN als Beispiel senden (Du könntest Dir aber auch einen Serienbrief mit dazugehöriger Quelle unter WinWord bauen und als .rtf speichern und anschauen).
Die Doku dazu findest Du hier: https://de.wikipedia.org/wiki/Rich_Text_Format - am unteren Ende sind dann als Weblinks die Verweise zur ausführlichen Microsoft-Doku aufgeführt.
Viele Grüße,
Martin
.rtf ist ja ein reines Textformat. Ähnlich wie HTML mit entsprechendem Befehlssatz ausgerüstet. Du musst in dem Aufbau (den Metadaten) des Dokumentes einfach hinterlegen, dass es sich um ein Seriendokument handelt und den Namen der Datei mit den Datensätzen und die Abfrage mitgeben.
Als Stichworte dafür sollten Dir mailmerge, mmdatasource, mmconnectstrdata, mmquery und dann die Felddefintionen mittels MERGEFIELD helfen.
Wenn Du möchtest, kann ich dir auch gerne das ganze per PN als Beispiel senden (Du könntest Dir aber auch einen Serienbrief mit dazugehöriger Quelle unter WinWord bauen und als .rtf speichern und anschauen).
Die Doku dazu findest Du hier: https://de.wikipedia.org/wiki/Rich_Text_Format - am unteren Ende sind dann als Weblinks die Verweise zur ausführlichen Microsoft-Doku aufgeführt.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Martin, vielen Dank. Schau ich mir an. Bin im Augenblick KO. Habe gerade das Verspachteln von 20qm Trockenbau über Kopf hinter mir ...
Gruß Wolfgang
Gruß Wolfgang
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Oje!
Dann solltest du mit uns zur Langen Saunanacht mitkommen vor unserem Treffen in Osnabrück Anfang Februar - viel Entspannung und gutes Essen!
Viele Grüße,
Martin
Dann solltest du mit uns zur Langen Saunanacht mitkommen vor unserem Treffen in Osnabrück Anfang Februar - viel Entspannung und gutes Essen!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Ja, diese Methode ist schnell und effektiv.Martin Altmann hat geschrieben: ↑Do, 11. Jan 2018 11:06 Moin Wolfgang,
ich mache das als Seriendruck. Ich erstelle eine .rtf-Datei als Seriendruckdokument (aus dem Programm heraus) und dazu passend eine .csv-Datei, die die einzelnen Felder enthält.
Dann kann der Kunde das Seriendruckdokument in Word (das nach dem Erstellen der beiden Dateien automatisch geöffnet wird) ganz bequem mit den dort vorhandenen Funktionalitäten (sortieren, Filtern, Druck in neue Datei oder auf Drucker,...) nutzen.
Braucht kein ActiveX
Alternativ kann in Word mit Textfeldern gearbeitet werden. Hat aber Nachteile: Dieser Prozess ist in Word langsam, also nur bei wenigen Feldern sinnvoll und jedes Feld kann mit demselben Namen nur einmal vorkommen.
Ich arbeite mit eigenen Feldern "<Adresse1>", also mit diesen Zeichen umhüllt. Dadurch kann ich die normalen Ersetz-Funktionen brauchen.
Achtung: die Schlüsselworte müssen hier in einem Guss geschrieben werden, da Word bei Korrekturen Textmarken hineinsetzt und den Suchtext nicht mehr findet.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Danke an alle...
Martin, wann wäre das denn in Osnabrück?
Martin, wann wäre das denn in Osnabrück?
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wolfgang,
am 10. Februar.
Jan
am 10. Februar.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wie ich dir bereits per SMS geschrieben hatte: am 10.02.
Am Abend davor geht es wieder in die Sauna (gegen 16:30 Uhr)
Viele Grüße,
Martin
Am Abend davor geht es wieder in die Sauna (gegen 16:30 Uhr)
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Martin, SMS stimmt. Bei meiner exzessiven Handybenutzung glatt übersehen.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo Hubert,
ich hab das Beispiel mal ausprobiert. Funktioniert ja ganz ordentlich. Das einzige was mich stört ist, daß man im Word-Dokument die Textmarken nicht mehr mit Namen sieht, sondern nur []. Das ist relativ doof. Lt. Google gibt es auch keine Möglichkeit, außer einem Makro (Makros haben meine Kunden standardmäßig deaktivert).
...\XPPW32\source\samples\activex\msword\feed.prg
Martin
Die Methode mit .rtf habe ich noch nicht kapiert. Ich will, daß der Kunde ein Word-Dokument anlegen kann mit den "Platzhaltern" die dann beim Aufruf aus XBASE durch Daten aus XBase ersetzt werden. Ich habe z.B. einen Briefbogen als .rtf. Den kann ich natürlich aufrufen, aber wie kriege ich die Daten da hinein ...
Herbert
Wie bringst Du Word das Ersetzen von <xxx> per Programm bei?
ich hab das Beispiel mal ausprobiert. Funktioniert ja ganz ordentlich. Das einzige was mich stört ist, daß man im Word-Dokument die Textmarken nicht mehr mit Namen sieht, sondern nur []. Das ist relativ doof. Lt. Google gibt es auch keine Möglichkeit, außer einem Makro (Makros haben meine Kunden standardmäßig deaktivert).
...\XPPW32\source\samples\activex\msword\feed.prg
Martin
Die Methode mit .rtf habe ich noch nicht kapiert. Ich will, daß der Kunde ein Word-Dokument anlegen kann mit den "Platzhaltern" die dann beim Aufruf aus XBASE durch Daten aus XBase ersetzt werden. Ich habe z.B. einen Briefbogen als .rtf. Den kann ich natürlich aufrufen, aber wie kriege ich die Daten da hinein ...
Herbert
Wie bringst Du Word das Ersetzen von <xxx> per Programm bei?
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo Wolfgang !
Mit MemoRead in eine StringVariable einlesen, dann mit STRTRAN deine Platzhalter mit den aktuellen Werten aus der Steuer-Tabelle ersetzten. Dann wieder mit MemoWrit auf in die RTF-Datei schreiben.
Schau dir dazu dieses Beispiel von Alaska an:
Xbase20\Beispiele\Samples\activex\msword\feed.prg
Alternativ:
Dazu die Platzhalter mittels Select() markieren und mit TypeText(txText) den aktuellen Text einfügen.
Hier gibts VBA-Beispiele:
https://msdn.microsoft.com/de-de/librar ... -snippet-1
Wenn du die RTF-Datei mit einem Programmier-Editor wie Notepad++ anschaust, kannst du alles lesen.ch habe z.B. einen Briefbogen als .rtf. Den kann ich natürlich aufrufen, aber wie kriege ich die Daten da hinein ...
Mit MemoRead in eine StringVariable einlesen, dann mit STRTRAN deine Platzhalter mit den aktuellen Werten aus der Steuer-Tabelle ersetzten. Dann wieder mit MemoWrit auf in die RTF-Datei schreiben.
Durch Automation von Word.Wie bringst Du Word das Ersetzen von <xxx> per Programm bei?
Schau dir dazu dieses Beispiel von Alaska an:
Xbase20\Beispiele\Samples\activex\msword\feed.prg
Alternativ:
Dazu die Platzhalter mittels Select() markieren und mit TypeText(txText) den aktuellen Text einfügen.
Hier gibts VBA-Beispiele:
https://msdn.microsoft.com/de-de/librar ... -snippet-1
Zuletzt geändert von HaPe am So, 14. Jan 2018 18:28, insgesamt 1-mal geändert.
--
Hans-Peter
Hans-Peter
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wolfgang,
in meinem Fall lege ich das Dokument an, indem ich die .rtf-Datei aus meinem Programm heraus erzeuge - nicht mein Kunde.
Wenn Dein Kunde das Steuerdokument (welches die Feldnamen als Steuersatzfelder enthält) selber erstellt, hast du es doch noch einfacher: du brauchst doch nur eine .csv-Datei mit den Datensätzen erzeugen, die er dann für sein Seriendruckdokument als Steuersatzdatei auswählt. Dann kann er die dort definierten Felder (=Spaltenüberschriften) auswählen und einsetzen.
Viele Grüße,
Martin
in meinem Fall lege ich das Dokument an, indem ich die .rtf-Datei aus meinem Programm heraus erzeuge - nicht mein Kunde.
Wenn Dein Kunde das Steuerdokument (welches die Feldnamen als Steuersatzfelder enthält) selber erstellt, hast du es doch noch einfacher: du brauchst doch nur eine .csv-Datei mit den Datensätzen erzeugen, die er dann für sein Seriendruckdokument als Steuersatzdatei auswählt. Dann kann er die dort definierten Felder (=Spaltenüberschriften) auswählen und einsetzen.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo,
ich arbeite heute schon den ganzen Tag an einem ähnlichen Problem.
Ich muss formatierten Text mit Bildern in WORD einfügen.
Ich poste hier einen Link.
https://github.com/jgm/pandoc/issues/3883
Mit diesem Lösungsansatz konnte ich das Problem lösen.
Lg
Otto
ich arbeite heute schon den ganzen Tag an einem ähnlichen Problem.
Ich muss formatierten Text mit Bildern in WORD einfügen.
Ich poste hier einen Link.
https://github.com/jgm/pandoc/issues/3883
Mit diesem Lösungsansatz konnte ich das Problem lösen.
Lg
Otto
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wolfgang,
wenn Du die als Textmarken angelegt hast, müssen die zu sehen sein, oder Du hast eine nicht so tolle Möglichkeit gewählt.
1. Du kannst Textmarken anlegen, deren Namen nicht angezeigt werden. Einfügen->Textmarke. Hier ist der Name der Textmarke einzugeben der Name erscheint aber nicht im Dokument.
2. Du kannst Textmarken anlegen, deren Namen im Dokument angezeigt werden. Den Namen der Textmarke in das Dokument schreiben, dann markieren und
Einfügen->Textrmarke. In den [] sthet dann Dein Name der Textmarke. ( so mache ich das)
Beispiel:
wenn Du die als Textmarken angelegt hast, müssen die zu sehen sein, oder Du hast eine nicht so tolle Möglichkeit gewählt.
1. Du kannst Textmarken anlegen, deren Namen nicht angezeigt werden. Einfügen->Textmarke. Hier ist der Name der Textmarke einzugeben der Name erscheint aber nicht im Dokument.
2. Du kannst Textmarken anlegen, deren Namen im Dokument angezeigt werden. Den Namen der Textmarke in das Dokument schreiben, dann markieren und
Einfügen->Textrmarke. In den [] sthet dann Dein Name der Textmarke. ( so mache ich das)
Beispiel:
Gruß
Klaus
Klaus
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
worauf du achten musst- schriftformatierung muss gleich sein auch mit den Klammern
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Wenn man Suchen & Ersetzen aus Word nutzen will, kann man einfach seine Platzhalter selbst erfinden, grundsätzlich geht jeder Text, aber Vorsicht: es wird dann alles ersetzt
WordReplace() = habe ich aus dem Word-Macro-Quellcode übersetzt.
WordReplace() = habe ich aus dem Word-Macro-Quellcode übersetzt.
Code: Alles auswählen
#include "activex.ch"
#include "word2010.ch"
// https://msdn.microsoft.com/de-de/vba/word-vba/articles/find-execute2007-method-word
//////////////////////////////////////////////////////////////////////
// Main()-Prozedur der Anwendung
//////////////////////////////////////////////////////////////////////
PROCEDURE main
LOCAL cDir,cFile, cSaveAs
LOCAL oWord,oDoc, aReplace, lPrint
lPrint := .t.
set charset to ansi
aReplace := { { "{NAME}" , "Testmann" }, { "{VNAME}" , "Hans" } } // jedes Feld einzeln
// im Word-Text dann diese Platzhalter nutzen: {NAME}, {VNAME}, etc.
set alternate to Ersetzen-LOG.TXT
set alternate on
// Ermitteln des voll-qualifizierten Pfades
// oder fix vorgeben
cDir := CurDrive()+":\"+CurDir()
cFile := cDir+"\Test.docx"
cSaveAs := cDir+"\Test1.docx"
// Erzeugen einer ActiveX-Komponente
oWord := CreateObject("Word.Application")
IF Empty( oWord )
MsgBox( "Microsoft Word ist nicht installiert" )
ENDIF
oWord:visible := .T.
// Oeffnen eines Word-Dokuments
oWord:documents:open( cFile )
oDoc := oWord:ActiveDocument
aEval( aReplace, {|aR| WordReplace(oWord,aR[1],aR[2]) } )
// Speichern des Ergebnisses
IF(ValType(cSaveAs)=="C")
oDoc:saveas(cSaveAs)
ENDIF
IF(ValType(lPrint)=="L" .AND. lPrint)
oDoc:PrintOut()
ENDIF
// Schliessen des Dokuments und zerstoeren das
// ActiveX-Objektes.
oDoc:close()
oWord:Quit()
oWord:destroy()
? "Dokument", cSaveAs, "erzeugt"
set alternate to
inkey(20)
RETURN
function WordReplace(oWord,cVon,cNach)
local oSel, lOK
oSel := oWord:selection
oSel:Find:ClearFormatting()
oSel:Find:Replacement:ClearFormatting()
lOK := oSel:Find:Execute( cVon,; // FindText
.f.,; // MatchCase
.f.,; // MatchWholeWord
.f.,; // MatchWildcards
.f.,; // MatchSoundsLike
.f.,; // MatchAllWordForms
.t.,; // Forward
wdFindContinue,; // Wrap
.f.,; // Format
cNach,; // ReplaceWith
wdReplaceAll,; // Replace
.f.,; // MatchKashida
.f.,; // MatchDiacritics
.f.,; // MatchAlefHamza
.f. ) // MatchControl
? "ersetze",cVon,cNach, lOK
return lOK
- Dateianhänge
-
- word2010.CH.zip
- (35.57 KiB) 282-mal heruntergeladen
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
PS: RTF-Format, wenn man dies aus Word heraus erzeugt und nachher dann den Text ändert, kann es passieren, dass die Schlüsselwörter durch Formatierungstexte getrennt werden.
Mit DOTX oder DOXC ist mir das noch nie passiert.
Mit DOTX oder DOXC ist mir das noch nie passiert.
Gruß
Hubert
Hubert
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Daten aus XBASE in Word übergeben (Adresse)
Hallo Hubert,
habe Deine Funktionen mal getestet. Funktionieren prima - Danke!
Noch 3 Fragen ..
1. Was bedeutent eigentlich in der Funktion -> WordReplace(oWord,cVon,cNach) die ganzen Parameter? cvon und cnach ist klar, aber die anderen?
2. Kann man eigentlich damit auch sowas wie einen Serienbrief aufsetzen? zB. Wenn man Einladungen oder Ähnliches erzeugen will.
3. Kann man auch irgendwie eine Tabelle einfügen z.B. für Rechnungen?
Noch einen schönen sonnigen Tag
Gruß Wolfgang
habe Deine Funktionen mal getestet. Funktionieren prima - Danke!
Noch 3 Fragen ..
1. Was bedeutent eigentlich in der Funktion -> WordReplace(oWord,cVon,cNach) die ganzen Parameter? cvon und cnach ist klar, aber die anderen?
2. Kann man eigentlich damit auch sowas wie einen Serienbrief aufsetzen? zB. Wenn man Einladungen oder Ähnliches erzeugen will.
3. Kann man auch irgendwie eine Tabelle einfügen z.B. für Rechnungen?
Noch einen schönen sonnigen Tag
Gruß Wolfgang
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Daten aus XBASE in Word übergeben (Adresse)
Hi,
das sind die Parameter von Word-VBA für Suchen ... wie auch im Word Suchen Dialog.
MatchCase = Beachte Groß-/Kleinschreibung
MatchWholeWord = nur ganze Worte vergleichen
MatchWildcards = Gibt es Wildcards z.B. * ...
MatchSoundsLike = Phonetische Suche (also nach Lauten)
MatchAllWordForms = .... bin mir nicht ganz sicher, alle Worte finden ?
Forward = Suche vorwärts
wdFindContinue,; // Wrap => wenn man hinten ankommt, vorne neu beginnen bis nix mehr gefunden wird.
Format => nur die Formatierung suchen
cNach,; // ReplaceWith => Ersetzen
wdReplaceAll,; // Replace => hier alle Fundstellen ersetzen
MatchKashida => keine Ahnung
MatchDiacritics => keine Ahnung
MatchAlefHamza => keine Ahnung
MatchControl => keine Ahnung
Grundsätzlich geht alles
du meinst wahrscheinlich die Parameter die intern hier genutzt werden:1. Was bedeutent eigentlich in der Funktion -> WordReplace(oWord,cVon,cNach) die ganzen Parameter? cvon und cnach ist klar, aber die anderen?
Code: Alles auswählen
// https://msdn.microsoft.com/de-de/vba/word-vba/articles/find-execute2007-method-word
lOK := oSel:Find:Execute( cVon,; // FindText
.f.,; // MatchCase
.f.,; // MatchWholeWord
.f.,; // MatchWildcards
.f.,; // MatchSoundsLike
.f.,; // MatchAllWordForms
.t.,; // Forward
wdFindContinue,; // Wrap
.f.,; // Format
cNach,; // ReplaceWith
wdReplaceAll,; // Replace
.f.,; // MatchKashida
.f.,; // MatchDiacritics
.f.,; // MatchAlefHamza
.f. ) // MatchControl
MatchCase = Beachte Groß-/Kleinschreibung
MatchWholeWord = nur ganze Worte vergleichen
MatchWildcards = Gibt es Wildcards z.B. * ...
MatchSoundsLike = Phonetische Suche (also nach Lauten)
MatchAllWordForms = .... bin mir nicht ganz sicher, alle Worte finden ?
Forward = Suche vorwärts
wdFindContinue,; // Wrap => wenn man hinten ankommt, vorne neu beginnen bis nix mehr gefunden wird.
Format => nur die Formatierung suchen
cNach,; // ReplaceWith => Ersetzen
wdReplaceAll,; // Replace => hier alle Fundstellen ersetzen
MatchKashida => keine Ahnung
MatchDiacritics => keine Ahnung
MatchAlefHamza => keine Ahnung
MatchControl => keine Ahnung
Ich gehe immer hin und erstelle ein Macro in Word von den Aktionen die ich möchte und versuche dann den VBA Code zu übersetzen.2. Kann man eigentlich damit auch sowas wie einen Serienbrief aufsetzen? zB. Wenn man Einladungen oder Ähnliches erzeugen will.
Grundsätzlich geht alles
im Prinzip ja, wie bei 2. - ich habe das aber nicht gemacht.3. Kann man auch irgendwie eine Tabelle einfügen z.B. für Rechnungen?
Gruß
Hubert
Hubert