activeX - Methoden bei CreateObject("Word.Application")

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
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

activeX - Methoden bei CreateObject("Word.Application")

Beitrag von Wolfgang_B »

Hallo,

mein Kunde druckt bei bestimmten Aktionen Word-Dokumente aus. Wo kann ich die Methoden finden, die dieses Object hat? Ich möchte einen PrinterDialog erzeugen, damit man den Drucker auswählen kann, auf dem das Dokument gedruckt wird. Normalerweise gilt ja hier der Standarddrucker unter Windows, dies ist aber nicht gewünscht.

Code: Alles auswählen

// Erzeugen einer ActiveX-Komponente
		oWord := CreateObject("Word.Application")

		IF Empty( oWord )
			MsgBox( "Microsoft Word ist nicht installiert" )
		ENDIF
		
		oWord:visible := .T.                                                                                                                                                                                                                                                                                                	
		oWord:documents:open( cFile )
		
		oDoc := oWord:ActiveDocument

		aEval( aReplace, {|aR| TokenReplace( oWord,aR[1],aR[2]) } )

		IF wordopen == "J"																															
			oDoc:close()
			oWord:Quit()
			oWord:destroy()
      			lprint := .F.
      		ELSE	
      			IF(ValType(lPrint)== "L" .AND. lPrint)																																						 
  				// drucken wenn lPrint =.T.
				oDoc:PrintOut()
			ENDIF

			oDoc:close()
			oWord:quit()
		ENDIF
	
 
	   IF !lPrint																																									
		lSuccess := DllCall("SHELL32.DLL", DLL_STDCALL, "ShellExecuteA", AppDesktop():GetHWND(), "open", AllTrim(cSaveAs), NIL, CurDir(), SW_NORMAL)
	ELSE
		oWord:destroy()
	ENDIF
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: activeX - Methoden bei CreateObject("Word.Application")

Beitrag von Tom »

Das ist irgendwo komplett dokumentiert, aber am einfachsten ist, die Makroaufzeichnung zu starten, die Prozesse in Word auszulösen, das Makro zu speichern und sich dann anzuschauen. Dort findest Du genau für den fraglichen Ablauf dann alle Methoden und Instanzen.
Herzlich,
Tom
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: activeX - Methoden bei CreateObject("Word.Application")

Beitrag von Wolfgang_B »

Hallo Tom,
das Makro hat jetzt nicht allzuviel Infos gebracht. Immerhin weiß ich jetzt, wie man eine Drucker bestimmen kann.

z.B.:
oWord:ActivePrinter = "HPA3FFB9 (HP Officejet 6800)"

Würde mir ja reichen. Ich müßte nur noch die installierten Drucker des Systems auslesen können. Mit diesen könnte ich eine Auswahlliste füllen und gut ist. Hast Du eine Idee wie man die installierten Drucker auslesen kann?

Aber danke für die Antwort
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: activeX - Methoden bei CreateObject("Word.Application")

Beitrag von Jan »

Hallo Wolfgang,

Code: Alles auswählen

oDrucker := XbpPrinter():new()
aDrucker := oDrucker:list()
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied 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: activeX - Methoden bei CreateObject("Word.Application")

Beitrag von Wolfgang_B »

Jan -> stimmt! :banghead:

Danke!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten