Daten aus XBASE in Word übergeben (Adresse)

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

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
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
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)

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
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)

Beitrag von brandelh »

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 :D
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
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)

Beitrag von brandelh »

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
Gruß
Hubert
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

Hallo Martin,
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
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

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
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

...\XPPW32\source\samples\activex\msword\feed.prg

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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
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)

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

Martin, vielen Dank. Schau ich mir an. Bin im Augenblick KO. Habe gerade das Verspachteln von 20qm Trockenbau über Kopf hinter mir ...

Gruß Wolfgang
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
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)

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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)

Beitrag von Herbert »

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
Ja, diese Methode ist schnell und effektiv.

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...
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

Danke an alle...

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
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Daten aus XBASE in Word übergeben (Adresse)

Beitrag von Jan »

Wolfgang,

am 10. Februar.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
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)

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

Martin, SMS stimmt. Bei meiner exzessiven Handybenutzung glatt übersehen. :D
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

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?
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
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)

Beitrag von HaPe »

Hallo Wolfgang !
ch habe z.B. einen Briefbogen als .rtf. Den kann ich natürlich aufrufen, aber wie kriege ich die Daten da hinein ...
Wenn du die RTF-Datei mit einem Programmier-Editor wie Notepad++ anschaust, kannst du alles lesen.
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.

Wie bringst Du Word das Ersetzen von <xxx> per Programm bei?
Durch Automation von Word.
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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
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)

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
azzo
Rekursionen-Architekt
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)

Beitrag von azzo »

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
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
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)

Beitrag von Koverhage »

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:
2018-01-15_074236.jpg
2018-01-15_074236.jpg (8.9 KiB) 15133 mal betrachtet
Gruß
Klaus
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
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)

Beitrag von Rolf Ramacher »

worauf du achten musst- schriftformatierung muss gleich sein auch mit den Klammern
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
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)

Beitrag von brandelh »

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.

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) 276-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
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)

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
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)

Beitrag von Wolfgang_B »

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
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
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)

Beitrag von brandelh »

Hi,
1. Was bedeutent eigentlich in der Funktion -> WordReplace(oWord,cVon,cNach) die ganzen Parameter? cvon und cnach ist klar, aber die anderen?
du meinst wahrscheinlich die Parameter die intern hier genutzt werden:

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
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
2. Kann man eigentlich damit auch sowas wie einen Serienbrief aufsetzen? zB. Wenn man Einladungen oder Ähnliches erzeugen will.
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.
Grundsätzlich geht alles
3. Kann man auch irgendwie eine Tabelle einfügen z.B. für Rechnungen?
im Prinzip ja, wie bei 2. - ich habe das aber nicht gemacht.
Gruß
Hubert
Antworten