Anzahl zu druckender Kopien

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
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:

Anzahl zu druckender Kopien

Beitrag von Koverhage »

Wie kann ich die Anzahl der zu druckenden Kopien festlegen ?
(d.h. Anzahl Kopien setzen, damit diese im Druckerdialog angezeigt werden)

Habe mal den Makro aufgezeichnet
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=5, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
und dann
oWord:Printout:Copies := nCopies

bekomme dann diese Fehlermeldung
Xbase++ Version : Xbase++ (R) Version 1.90.355
Betriebssystem : Windows XP 05.01 Build 02600 Service Pack 3
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: Printout
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : 'PrintOut' ist keine Eigenschaft.
oError:filename : NIL
oError:genCode : NIL
oError:operation : Printout
oError:osCode : -2146822426
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
Gruß
Klaus
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: Anzahl zu druckender Kopien

Beitrag von brandelh »

Das muss eine Methode sein, wie sieht denn dein Code aus ?

oWord:PrintOut( ... ) // Parameter müssen in richtiger Reihenfolge angegeben werden.
Gruß
Hubert
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: Anzahl zu druckender Kopien

Beitrag von Koverhage »

So:
oWord:Printout:Copies := nCopies

aber das ganze ist nicht richtig. Ich möchte die Anzahl der Kopien vor dem Öffnen des Druckerdialogs setzen.
Gruß
Klaus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Anzahl zu druckender Kopien

Beitrag von AUGE_OHR »

Koverhage hat geschrieben:So:
oWord:Printout:Copies := nCopies
aber das ganze ist nicht richtig.
wie Hubert schon sagte ist es eine Method ... wie SaveAs() und hat Parameter
Koverhage hat geschrieben:Ich möchte die Anzahl der Kopien vor dem Öffnen des Druckerdialogs setzen.
http://msdn.microsoft.com/en-us/library ... 37331.aspx

Code: Alles auswählen

oDoc:PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
gruss by OHR
Jimmy
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: Anzahl zu druckender Kopien

Beitrag von brandelh »

VB sieht das mit Funktionen und Methoden bei der Syntax nicht so eng ;-)
Offensichtlich braucht es keine abschließenden Klammern.
Aber wenn es ein Objekt wäre der man ein Objekt zuweißt, dann müsste da ein '.' dazwischen.
Die Parameter selbst kann man bei VB auch per Namen übergeben. Wenn man die Klammer also ergänzt:

Code: Alles auswählen

Application.PrintOut( FileName:="" , Range:=wdPrintAllDocument,... )
wird dem Parameter FileName der Wert "" zugeordnet, Range wird zu wdPrintAllDocument ...
Wir müssen jeden Parameter übergeben (eventuell leer), also nimm Jimmy Syntax als Schablone (ein Kommentar eine Zeile über dem Aufruf ;-) )
Gruß
Hubert
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: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher »

hallo klaus

siehe in Wiki nach. habe ich dort reingestellt
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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: Anzahl zu druckender Kopien

Beitrag von Koverhage »

Hier liegt ein Verständnisproblem vor:
1.Ich drucke über Printout. Das funktioniert auch.
2. Wenn das Dokument zum Bearbeiten geöffnet ist und man dann Drucken möchte, muss man ja über Drucken / Druckersymbol gehen.
3. Der Makro der aufgezeichnet wurde, hat nur den Druckbefehl NACH Aufruf des Druckerdialogs aufgenommen.

Es geht hier um Folgendes: Wie kann ich die Anzahl der Kopien VOR dem Aufruf des Druckerdialogs setzen, damit diese im Druckerdialog angezeigt werden
oder wenn man auf das Druckersymbol klickt, die gewünschte Anzahl Kopien gedruckt werden.
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: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher »

das stellst du beim xbpprintdialog() ein.

oder verstehe ich dich jetzt falsch?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom »

Printout() ist eine Methode - und "Copies" ist ein Parameter dieser Methode (nämlich der achte). Siehe auch hier:

http://msdn.microsoft.com/de-de/library ... 80%29.aspx
Herzlich,
Tom
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: Anzahl zu druckender Kopien

Beitrag von brandelh »

Koverhage hat geschrieben: 2. Wenn das Dokument zum Bearbeiten geöffnet ist und man dann Drucken möchte, muss man ja über Drucken / Druckersymbol gehen.
3. Der Makro der aufgezeichnet wurde, hat nur den Druckbefehl NACH Aufruf des Druckerdialogs aufgenommen.
Es geht hier um Folgendes: Wie kann ich die Anzahl der Kopien VOR dem Aufruf des Druckerdialogs setzen, damit diese im Druckerdialog angezeigt werden
oder wenn man auf das Druckersymbol klickt, die gewünschte Anzahl Kopien gedruckt werden.
wenn ich das richtig verstehe, startest du aus deinem Programm heraus Word mit einem Dokument ...
dieses kann noch in Word bearbeitet werden und dann will der Kunde über Drucken ... x Kopien ... voreingestellt haben ?

Das hat nichts mehr mit deinem Xbase++ Steuerprogramm zu tun, da die Kontrolle ja bei Word liegt.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom »

wenn ich das richtig verstehe, startest du aus deinem Programm heraus Word mit einem Dokument ...
Klaus startet Word und ruft die Methode PrintOut() auf, um das Dokument zu drucken. Wenn man Word unsichtbar aufruft, wird dann sofort gedruckt; wenn man es sichtbar aufruft, erscheint der Druckerdialog. Dort möchte Klaus in diesem Fall die Anzahl der Kopien vorwählen, feddisch. Durchaus kein unsinnvolles Anliegen. :wink:

@Klaus: Hast Du mein voriges Posting gelesen?
Herzlich,
Tom
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: Anzahl zu druckender Kopien

Beitrag von Koverhage »

Hallo Tom,

Problem richtig erkannt =D>

Noch keine Zeit gehabt, werde mir das aber gleich ansehen.

Danke.
Gruß
Klaus
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: Anzahl zu druckender Kopien

Beitrag von Koverhage »

So gelesen, aber wenn ich das richtig sehe, gibt es keine Möglichkeit das einzustellen.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom »

Klar geht das. Das hier ruft Word mit dem Dokument <cText> auf und druckt zwei Exemplare:

Code: Alles auswählen

oWord := CreateObject("Word.Application")
oWord := oWord:DynamicCast(ActiveXObject())
oWord:Visible := .T.
oWord:Documents:Open(<cText>)
oWord:ActiveDocument:PrintOut(,,,,,,,2)
* ...
Herzlich,
Tom
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: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher »

Klaus

wenn du dir mein Beispiel ansiehst, welches ich in Wiki reingestellt habe, dann gehe ich genauso vor. Und bevor Word dann gestartet wird, wird im xbpprintdialog kopie - seite von bis usw. eingestellt und diese werte dann an printout() übergeben.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom »

Hallo, Rolf.

Es wäre hilfreich gewesen, wenn Du mal erwähnt hättest, um welchen Eintrag im Wiki es sich handelt. Gemeint ist vermutlich dieser hier:

http://wiki.xbaseentwickler.de/index.ph ... omponenten
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Anzahl zu druckender Kopien

Beitrag von AUGE_OHR »

Koverhage hat geschrieben:2. Wenn das Dokument zum Bearbeiten geöffnet ist und man dann Drucken möchte, muss man ja über Drucken / Druckersymbol gehen.
meinst du jetzt damit das du, per activeX, ein Word Document öffnest und der User "dann" darin rummachen kann ?
damit ist z.b. "drucken" gemeint was eine Aktion des User ist und einen Event auslöst welchen man auswerten sollte.

wenn du nun den Event zum Drucken empfängst könntest du reagieren und das Fenster des Druck-Dialog suchen / finden***1
und die Controls ansteuern***2 und deine Werte (Druckername, Kopien etc.) setzten.
***1 API FindWindowA
***2 API FindWindowExA
Word_Druck_Class.PNG
Word_Druck_Class.PNG (55.56 KiB) 13155 mal betrachtet
gruss by OHR
Jimmy
Antworten