ActiveX oder COM Komponenten

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Version vom 9. November 2013, 11:40 Uhr von Rolf Ramacher (Diskussion | Beiträge) (Hinweis für Worddruck)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Hier ein Beispiel von mir. Es wird eine Datei zum Drucken an Word übergeben. Die Datei "filbestandliste2.rtf" wird gedruckt mit Seite von bis. Die Datei "maengel.rtf" mit Anzahl der eingebenen Kopien.


  1. include "Gra.ch"
  2. include "Xbp.ch"
  3. include "Appevent.ch"
  4. include "Font.ch"
  5. include "Inkey.ch"
  6. include "xbpdev.ch"
  7. include "activex.ch"
  8. include "xbpdev.ch"
  1. define wdPrintFromTo 3
  1. pragma Library( "XppUI2.lib" )
  2. pragma library( "ascom10.lib" )

Function Drucken( cDoc, cDrucker,oPrinter) Local cActivePrinter, aSeite:={}, nCopie:=0 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 

Do Case Case AT("filbestandliste2.rtf",cDoc) > 0 aSeite:=oDlg:pageRangeSelected oDoc:PrintOut(.f.,Nil,wdPrintFromTo,Nil,alltrim(str(aSeite[1])),alltrim(str(aSeite[2])),Nil,1 ) Case AT("maengel",cDoc) > 0 nCopie:=oPrinter:SetNumCopies() oDoc:PrintOut(.f.,Nil,Nil,Nil,Nil,Nil,Nil,nCopie ) Otherwise oDoc:PrintOut(.f.) EndCase

  oWord:Activeprinter:= cActivePrinter       // alten Drucker setzen 
  oDoc:close() 
  oWord:Quit() 
  oWord:destroy() 
  oWord := NIL 

Return ( NIL )