Word Serienbrief
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Word Serienbrief
Hallo zusammen,
ich steuere meine Listenausdrucke über Word. jetzt bin ich bei der Umsetzung von Reklamationen. Hierbei werden Anschreiben an Lieferanten erzeugt. dies können auch mehrere sein. Dann käme ein Serienbrief in Frage .
geht das überhaupt ?? kann ich mit ActiveX dies steuern. ich könnte natürlich auch jeden einzelnen Lieferanten ansteuern und eine Datei pro Lieferant schreiben und dann drucken.
ich steuere meine Listenausdrucke über Word. jetzt bin ich bei der Umsetzung von Reklamationen. Hierbei werden Anschreiben an Lieferanten erzeugt. dies können auch mehrere sein. Dann käme ein Serienbrief in Frage .
geht das überhaupt ?? kann ich mit ActiveX dies steuern. ich könnte natürlich auch jeden einzelnen Lieferanten ansteuern und eine Datei pro Lieferant schreiben und dann drucken.
- Schubi
- Rekursionen-Architekt
- Beiträge: 139
- Registriert: Mi, 05. Okt 2005 15:10
- Wohnort: Wiesloch
- Hat sich bedankt: 5 Mal
Re: Word Serienbrief
Hallo Rolf,
klar geht das. Hier ein Beispiel von MS dazu:
http://support.microsoft.com/kb/181926
Man kann es mit DBF oder CSV als Steuerdatei tun.
Wir nehmen CSV, da es hier keine Probleme mit verschiedenen Codepages gibt (Umlaute usw.).
Zum Thema Word und Mailmerge findet man unter Google massenhaft Beispiele, die auch funktionieren.
Ich versuche das gleiche gerade unter Openoffice und bin kurz vorm Wahnsinn.
klar geht das. Hier ein Beispiel von MS dazu:
http://support.microsoft.com/kb/181926
Man kann es mit DBF oder CSV als Steuerdatei tun.
Wir nehmen CSV, da es hier keine Probleme mit verschiedenen Codepages gibt (Umlaute usw.).
Zum Thema Word und Mailmerge findet man unter Google massenhaft Beispiele, die auch funktionieren.
Ich versuche das gleiche gerade unter Openoffice und bin kurz vorm Wahnsinn.
Grüße Steffen
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Word Serienbrief
das Beispiel c:\ALASKA\XPPW32\SOURCE\samples\activex\msword\feed.prg ist zwar für eine *.DOT ( Vorlage ) Datei aber das Prinzip ist das selbe mit einer *.DOCx Datei.Rolf Ramacher hat geschrieben:dies können auch mehrere sein. Dann käme ein Serienbrief in Frage .
geht das überhaupt ?? kann ich mit ActiveX dies steuern.
Frage : wenn du die "Serie" hast willst du die wirklich "drucken" ... oder FAX ... oder Email ... ?
gruss by OHR
Jimmy
Jimmy
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Word Serienbrief
Hallo,
ich mache Serienbriefe über folgende Funktion (weiss nicht mehr woher). In der Wordvorlage muss ich nur die Felder definieren.
Grüsse
Rudolf
ich mache Serienbriefe über folgende Funktion (weiss nicht mehr woher). In der Wordvorlage muss ich nur die Felder definieren.
Grüsse
Rudolf
Code: Alles auswählen
FUNCTION WordFillDocument(cFile,aData,cSaveAs,nBearb)
LOCAL oWord,oBM,oDoc,lWordFinished := .f.,x
default nBearb to 0
// Create a Word ActiveX component
oWord := CreateObject("Word.Application")
IF Empty( oWord )
MsgBox( "Microsoft Word ist nicht installiert" )
ENDIF
oWord := oWord:dynamicCast(ActiveXObject())
oWord:Quit := {||lWordFinished := .T.}
oWord:visible := .T.
lWordFinished := .f.
// Open a Word document and retrieve the bookmarks
// collection.
oWord:documents:open( cFile )
oDoc := oWord:ActiveDocument
oBM := oDoc:Bookmarks
// Replace the Bookmark with a new value
ReplaceBookmark(oBM , "COMPANY" , aData[1] )
ReplaceBookmark(oBM , "TO" , aData[2] )
ReplaceBookmark(oBM , "FAX" , aData[3] )
ReplaceBookmark(oBM , "FROM" , aData[4] )
ReplaceBookmark(oBM , "TOTAL_PAGES" , "1" )
ReplaceBookmark(oBM , "CARBON_COPY" , "" )
ReplaceBookmark(oBM , "SUBJECT" , aData[5] )
ReplaceBookmark(oBM , "SALUTATION" , aData[6] )
ReplaceBookmark(oBM , "TEXT" , aData[7] )
ReplaceBookmark(oBM , "DATE" , DToC(Date()) )
ReplaceBookmark(oBM , "NAME1" , aData[15] )
ReplaceBookmark(oBM , "NAME2" , aData[16] )
ReplaceBookmark(oBM , "STRASSE" , aData[17] )
ReplaceBookmark(oBM , "LKZ" , aData[18] )
ReplaceBookmark(oBM , "PLZ" , aData[19] )
ReplaceBookmark(oBM , "ORT" , aData[20] )
ReplaceBookmark(oBM , "Z_HD" , aData[21] )
ReplaceBookmark(oBM , "LAND" , getland(aData[18]) )
// Save the resulting Word document
IF(ValType(cSaveAs)=="C")
oDoc:saveas(cSaveAs)
ENDIF
// Optional print out of document to standard
// printer
IF nBearb = 2
*oDoc:PrintOut()
ENDIF
// Close the document and destroy the ActiveX
// object
if nBearb # 1
//oDoc:sendfax()
oDoc:close()
oWord:Quit()
endif
*Do WHILE !lWordFinished
// Just wait
*EndDo
sleep(200)
oWord:destroy()
if nBearb = 2
WinAPIPrint(cFile)
endif
RETURN NIL
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- 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: Word Serienbrief
Ja, das geht, aber nur bis etwa 20 Felder, weil das Ganze extrem langsam ist.
Weiter sind die Einschränkungen, dass kein Feldname gleich heissen darf, was bei verwenden derselben Variablen auf z.B. mehreren Seiten verteilt mühsam wird.
Auch kann keine Kopf- oder Fusszeile bedient werden.
Ich bin daher wieder von Word weg und bediene den Drucker direkt mit reinen Textdokumenten als Basis. Die Druckersteuerung erfolgt über eigene Steuerzeichen. Hat den Vorteil, dass das Ganze sehr schnell ist und zugleich auch eine PDF in derselben Geschwindigkeit erstellt werden kann.
Weiter sind die Einschränkungen, dass kein Feldname gleich heissen darf, was bei verwenden derselben Variablen auf z.B. mehreren Seiten verteilt mühsam wird.
Auch kann keine Kopf- oder Fusszeile bedient werden.
Ich bin daher wieder von Word weg und bediene den Drucker direkt mit reinen Textdokumenten als Basis. Die Druckersteuerung erfolgt über eigene Steuerzeichen. Hat den Vorteil, dass das Ganze sehr schnell ist und zugleich auch eine PDF in derselben Geschwindigkeit erstellt werden kann.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Word Serienbrief
das liegt an der activeX Schnittstelle von Xbase++.Herbert hat geschrieben:... weil das Ganze extrem langsam ist.
wenn man nur einige "Calls" macht fällt das kaum auf, aber bei einer Serie addieren sich 0.02 Sec. dann doch gewaltig auf.
Wenn man das nun ganze mit Xbase++ und der DispHpr.DLL macht ist es 400%-500% "schneller".
gruss by OHR
Jimmy
Jimmy
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Word Serienbrief
Hallo,
ich verwende es auch nur für einzelne Seiten, az.B. für FAX. Alles ander mache ich mit FastReports und Frax, das funktioniert perfekt. Und meine Kunden haben weit weniger Probleme mit FastReporst als mit Word
Grüsse
Rudolf
ich verwende es auch nur für einzelne Seiten, az.B. für FAX. Alles ander mache ich mit FastReports und Frax, das funktioniert perfekt. Und meine Kunden haben weit weniger Probleme mit FastReporst als mit Word
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Word Serienbrief
Hallo,
für CGI Programme speichere ich HTML Code mit eigener Syntax für Platzhalter.
Beispiel:
... <b> {NAME} ...
Genauso könnte man ein Word-Dokument im XLS Format speichern, eventuell halt mehr Klammern verwenden ...
{[NAME]}
und mit StrTran() die Texte austauschen, speichern und dann mit Word drucken oder ändern lassen.
Mit Excel mache ich sowas häufiger, Word habe ich einmal so bedient, bleibe aber bei meinem Druckprogram oder PDF direkt. Auf jeden Fall ist das SAUSCHNELL
für CGI Programme speichere ich HTML Code mit eigener Syntax für Platzhalter.
Beispiel:
... <b> {NAME} ...
Genauso könnte man ein Word-Dokument im XLS Format speichern, eventuell halt mehr Klammern verwenden ...
{[NAME]}
und mit StrTran() die Texte austauschen, speichern und dann mit Word drucken oder ändern lassen.
Mit Excel mache ich sowas häufiger, Word habe ich einmal so bedient, bleibe aber bei meinem Druckprogram oder PDF direkt. Auf jeden Fall ist das SAUSCHNELL
Gruß
Hubert
Hubert
- 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: Word Serienbrief
Jimmy,
hast Du dafür ein Beispiel wie man das mit DispHpr.DLL macht ?
hast Du dafür ein Beispiel wie man das mit DispHpr.DLL macht ?
Gruß
Klaus
Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Word Serienbrief
siehe dir mal http://www.xbaseforum.de/viewtopic.php? ... 8&start=25 an.Koverhage hat geschrieben:hast Du dafür ein Beispiel wie man das mit DispHpr.DLL macht ?
Das Attachment DHOL2DBF.ZIP enthält eine DH Version mit Kommentar.
bei Pablo im news.xbwin.com Forum findet ihr unter xfree.public den Thread "BCC55 OBJ for Xbase++ ?",5. März 2011 dazu.
Es gibt auch ein Excel (Office97 !!!) File mit einer DH Version die Pablo in "dem" Thread als Attachment angehängt hat.
gruss by OHR
Jimmy
Jimmy