Word-Text aus Anwendung aufrufen und bearbeiten..
Moderator: Moderatoren
- adrian
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Word-Text aus Anwendung aufrufen und bearbeiten..
Hallo zusammen
Ziel: Ich möchte direkt aus der Kundenkartei einen Brief einem Kunden schreiben. (Word und OpenOffice) Natürlich sollte die Adresse direkt ausgefühlt werden und das ZielOrt zum Speichern vordefiniert sein. Daher, Word sollte geöffnet werden die Adresse ausgefühlt und bereit bleiben um den Text zu schreiben. So, dass der Kunde am Schluss noch Speichern klicken kann und der Text im definiertem Ort gespeichert wird.
Im Prinzip klappt ja, mit den Beispielen, soweit alles bis auf: Word wird wieder geschlossen.
Daher: Die Vorlage wird genommen und die Felder werden ausgefühlt. Der SpeicherOrt wird mit "Saveas" übergeben. Doch danach sollte eben Word "stehen" bleiben und dem Kunden die Möglichkeit geben den Brief zu schreiben, falls er ja nicht speichern möchte könnte er ja auch noch abbrechen. Die Frage ist nun, wie bringe ich Word dazu nicht wieder zu schliessen. Jedoch so, dass das Object am Schluss auch wieder den Speicher freigiebt? Sollte man alles durchlaufen lassen und am Schluss Word mit RUN und der dem DOC neu starten? Wenn jedoch der Kunde das Dokument gar nicht speichern wollte?
oWord:documents:open("TEST.DOT")
oDoc := oWord:ActiveDocument
oBM := oDoc:Bookmarks
oDoc:saveas("KUNDE.DOC")
oDoc:close()
oWord:Quit()
oWord:destroy()
Ich bin sicher, dass dies schon jemand von Euch Kracks gelöst hat, und da bin ich natürlich für jeden Tip herzlich dankbar.
Zusatzfrage: Kenn jemand auch die Lösung für OpenOffice?
adrian
Ziel: Ich möchte direkt aus der Kundenkartei einen Brief einem Kunden schreiben. (Word und OpenOffice) Natürlich sollte die Adresse direkt ausgefühlt werden und das ZielOrt zum Speichern vordefiniert sein. Daher, Word sollte geöffnet werden die Adresse ausgefühlt und bereit bleiben um den Text zu schreiben. So, dass der Kunde am Schluss noch Speichern klicken kann und der Text im definiertem Ort gespeichert wird.
Im Prinzip klappt ja, mit den Beispielen, soweit alles bis auf: Word wird wieder geschlossen.
Daher: Die Vorlage wird genommen und die Felder werden ausgefühlt. Der SpeicherOrt wird mit "Saveas" übergeben. Doch danach sollte eben Word "stehen" bleiben und dem Kunden die Möglichkeit geben den Brief zu schreiben, falls er ja nicht speichern möchte könnte er ja auch noch abbrechen. Die Frage ist nun, wie bringe ich Word dazu nicht wieder zu schliessen. Jedoch so, dass das Object am Schluss auch wieder den Speicher freigiebt? Sollte man alles durchlaufen lassen und am Schluss Word mit RUN und der dem DOC neu starten? Wenn jedoch der Kunde das Dokument gar nicht speichern wollte?
oWord:documents:open("TEST.DOT")
oDoc := oWord:ActiveDocument
oBM := oDoc:Bookmarks
oDoc:saveas("KUNDE.DOC")
oDoc:close()
oWord:Quit()
oWord:destroy()
Ich bin sicher, dass dies schon jemand von Euch Kracks gelöst hat, und da bin ich natürlich für jeden Tip herzlich dankbar.
Zusatzfrage: Kenn jemand auch die Lösung für OpenOffice?
adrian
es Grüessli
Adrian
Adrian
- brandelh
- 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: Word-Text aus Anwendung aufrufen und bearbeiten..
Hi,
oWord:quit() schließt Word. Ohne diese Zeile müsste es offen bleiben
Wichtig ist auch, dass man oWord:visible := .t. um dieses in den Vordergrund zu holen (anzuzeigen),
sobald man will, dass der Anwender Word bedient.
oWord:quit() schließt Word. Ohne diese Zeile müsste es offen bleiben
Wichtig ist auch, dass man oWord:visible := .t. um dieses in den Vordergrund zu holen (anzuzeigen),
sobald man will, dass der Anwender Word bedient.
Gruß
Hubert
Hubert
- brandelh
- 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: Word-Text aus Anwendung aufrufen und bearbeiten..
eines noch ... wenn dieses Programm im Netzwerk läuft und mehrere gleichzeitig so einen Brief schreiben,
könnte es ein Problem damit geben, dass zwischen oWord:documents:open("TEST.DOT") und oDoc:saveas("KUNDE.DOC") einige Zeit vergeht. Es könnte dazu führen, dass der zweite ff. User eine Fehlermeldung ("schon benutzt ...") erhält. Ich würde bei open(cFilename,,.t.) die .DOT Vorlage readonly öffnen. Damit sollten alle Probleme beseitigt sein.
Alternativ könnte man auch direkt nach dem Öffnen schon ein erstes saveas() mit neuem Namen einbauen und danach nur noch save() aufrufen. Ob und wann es zu solchen Problemen kommt weiß ich nicht, dafür haben meine Programme zu wenig Konkurenz bei der Ausführung aber ich kann mir die ab und zu gemeldeten Fehlermeldungen nur so erklären.
könnte es ein Problem damit geben, dass zwischen oWord:documents:open("TEST.DOT") und oDoc:saveas("KUNDE.DOC") einige Zeit vergeht. Es könnte dazu führen, dass der zweite ff. User eine Fehlermeldung ("schon benutzt ...") erhält. Ich würde bei open(cFilename,,.t.) die .DOT Vorlage readonly öffnen. Damit sollten alle Probleme beseitigt sein.
Alternativ könnte man auch direkt nach dem Öffnen schon ein erstes saveas() mit neuem Namen einbauen und danach nur noch save() aufrufen. Ob und wann es zu solchen Problemen kommt weiß ich nicht, dafür haben meine Programme zu wenig Konkurenz bei der Ausführung aber ich kann mir die ab und zu gemeldeten Fehlermeldungen nur so erklären.
Gruß
Hubert
Hubert
- 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: Word-Text aus Anwendung aufrufen und bearbeiten..
Hi Adrian,
ich mache das ganze mit RTF-Dateien als Vorlage- der Ausdruck sieht bei mir so aus:
ich mache das ganze mit RTF-Dateien als Vorlage- der Ausdruck sieht bei mir so aus:
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "Inkey.ch"
#include "xbpdev.ch"
#pragma Library( "XppUI2.lib" )
#pragma library( "ascom10.lib" )
Function Drucken( cDoc, cDrucker,oDlg)
Local cActivePrinter
Local oWord
Local oDoc
oWord := CreateObject("Word.Application")
IF Empty( oWord )
MsgBox( "Microsoft Word ist nicht installiert" )
RETURN Nil
ENDIF
oWord:visible := .f. // Word unsichtbar!
cActivePrinter := oWord:Activeprinter // aktuellen Drucker feststellen
oWord:Activeprinter:= cDrucker // Neuen Drucker setzen
oWord:documents:Open(cDoc)
oDoc := oWord:ActiveDocument
If AT("filbestandliste.rtf",cDoc) > 0
oDlg:PageRangeSelected
oDlg:PrintRange:=(XBPPDLG_PRINT_PAGERANGE)
EndIf
oDoc:PrintOut(.f.) // .T.= Druck im Hintergrund
oWord:Activeprinter:= cActivePrinter // alten Drucker setzen
oDoc:close()
oWord:Quit()
oWord:destroy()
oWord := NIL
Return ( NIL )
- adrian
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
Herzlichen Dank für die ersten Infos, Ihr seit ja wirklich cool.
Der Tip mit dem Readonly-parameter ist super. Auch das ohne Quit alles stehenbleibt, hatte jedoch mehr "Angst" das nach dem Destroy das ganze in einen unsicheren Zustand kommt.
Nun habt Ihr eventuell auch noch einen Tip wie ich zwar am Word mitteilen kann wie die Datei gespeichert werden soll (Namen), sofern ich speichern wähle, dies jedoch nicht automatisch geschehen soll? Daher, falls der Kunde bemerkt, dass er da eine falsche Vorlage aufgerufen hat, sollte auch keine Datei vorhanden sein.
Zusätzliche: Hat dies schon jemand mit OpenOffice gelöst ?
adrian
Der Tip mit dem Readonly-parameter ist super. Auch das ohne Quit alles stehenbleibt, hatte jedoch mehr "Angst" das nach dem Destroy das ganze in einen unsicheren Zustand kommt.
Nun habt Ihr eventuell auch noch einen Tip wie ich zwar am Word mitteilen kann wie die Datei gespeichert werden soll (Namen), sofern ich speichern wähle, dies jedoch nicht automatisch geschehen soll? Daher, falls der Kunde bemerkt, dass er da eine falsche Vorlage aufgerufen hat, sollte auch keine Datei vorhanden sein.
Zusätzliche: Hat dies schon jemand mit OpenOffice gelöst ?
adrian
es Grüessli
Adrian
Adrian
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
hi,
versuche doch mal die "suchen" Functionadrian hat geschrieben: Zusätzliche: Hat dies schon jemand mit OpenOffice gelöst ?
gruss by OHR
Jimmy
Jimmy
- adrian
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
Alles klar, hätte ich natürlich auch machen können, doch da im Register "OpenOffice" noch nichts eingetragen war, habe ich diesen Schritt noch nicht gemacht.
Werde ich natürlich sofort nachholen.
Zu meiner anderen Frage: Könnte man, anstelle des Dateinamen, auch nur den Speicherort übergeben? Daher, so das der Kunde beim beenden zuerst nach dem Dateinnamen gefragt wird, der Pfad jedoch festgelegt wäre, dann wäre die Lösung perfekt.
adrian
Werde ich natürlich sofort nachholen.
Zu meiner anderen Frage: Könnte man, anstelle des Dateinamen, auch nur den Speicherort übergeben? Daher, so das der Kunde beim beenden zuerst nach dem Dateinnamen gefragt wird, der Pfad jedoch festgelegt wäre, dann wäre die Lösung perfekt.
adrian
es Grüessli
Adrian
Adrian
- brandelh
- 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: Word-Text aus Anwendung aufrufen und bearbeiten..
hierdurch wird nur die "Fernbedienung" im Xbase++ Programm abgeschaltet, der COM Server Word bleibt weiter aktiv.adrian hat geschrieben:Auch das ohne Quit alles stehenbleibt, hatte jedoch mehr "Angst" das nach dem Destroy das ganze in einen unsicheren Zustand kommt.
In der Word Hilfe steht zu Document.name, dass dies der Name der Datei enthält, diese Eigenschaft ist nicht readonly, so müsste es möglich sein:adrian hat geschrieben:Nun habt Ihr eventuell auch noch einen Tip wie ich zwar am Word mitteilen kann wie die Datei gespeichert werden soll (Namen), sofern ich speichern wähle, dies jedoch nicht automatisch geschehen soll?
Code: Alles auswählen
oDoc:name := "MyDoc.doc"
im ActiveX Stammforum gibt es ein oder zwei Threads die sich mit OpenOffice befassen.adrian hat geschrieben: Zusätzliche: Hat dies schon jemand mit OpenOffice gelöst ?
Dort müsste auch solche Dinge beschrieben sein ... ich weiß gar nicht mehr wer das gemacht hat
Gruß
Hubert
Hubert
- adrian
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
Hallo Huberth
Leider klappt dies mit dem "Name" leider nicht.
Da kommt die die xBase++ Fehlermeldung: "Name" ist eine schreibgeschütze Eigenschaft. und Absturz.
adrian
Leider klappt dies mit dem "Name" leider nicht.
Da kommt die die xBase++ Fehlermeldung: "Name" ist eine schreibgeschütze Eigenschaft. und Absturz.
adrian
es Grüessli
Adrian
Adrian
- brandelh
- 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: Word-Text aus Anwendung aufrufen und bearbeiten..
Hi,
geh man manuell in Word, öffne eine .DOT, schalte MACRO Speicherung ein und versuche den Namen ohne Save As zu ändern.
Falls es über das Menü geht sieh in der Macro Aufzeichnung nach was VBA macht
geh man manuell in Word, öffne eine .DOT, schalte MACRO Speicherung ein und versuche den Namen ohne Save As zu ändern.
Falls es über das Menü geht sieh in der Macro Aufzeichnung nach was VBA macht
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
und was passiert wenn duadrian hat geschrieben: Daher: Die Vorlage wird genommen und die Felder werden ausgefühlt. Der SpeicherOrt wird mit "Saveas" übergeben. Doch danach sollte eben Word "stehen" bleiben und dem Kunden die
oDoc:saveas("KUNDE.DOC")
oDoc:close()
oWord:Quit()
oWord:destroy()
Code: Alles auswählen
oDoc:saveas("")
gruss by OHR
Jimmy
Jimmy
- adrian
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Word-Text aus Anwendung aufrufen und bearbeiten..
Da kommt, was verständlich ist, die Meldung das die Pfadangabe nicht korrekt ist oder es soll eine Datei aus der Liste ausgewählt werden.
Daher, dies ist der gleiche Effekt, wie wenn Du unter Word auf Speichern unter gehst und nichts eingeben würdest.
Was ich jedoch Suche ist die Vorgabe für den Pfad und den Dateinamen.
adrian
Daher, dies ist der gleiche Effekt, wie wenn Du unter Word auf Speichern unter gehst und nichts eingeben würdest.
Was ich jedoch Suche ist die Vorgabe für den Pfad und den Dateinamen.
adrian
es Grüessli
Adrian
Adrian