Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

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: 1963
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Anzahl zu druckender Kopien

Beitrag von Koverhage » So, 08. Dez 2013 12:55

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: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von brandelh » So, 08. Dez 2013 13:17

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: 1963
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Koverhage » So, 08. Dez 2013 19:16

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: 10579
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Anzahl zu druckender Kopien

Beitrag von AUGE_OHR » So, 08. Dez 2013 22:33

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: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von brandelh » So, 08. Dez 2013 22:57

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: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher » Mo, 09. Dez 2013 9:00

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: 1963
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Koverhage » Mi, 11. Dez 2013 9:46

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: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher » Mi, 11. Dez 2013 11:32

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: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom » Mi, 11. Dez 2013 12:15

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: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von brandelh » Mi, 11. Dez 2013 15:35

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: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom » Mi, 11. Dez 2013 17:19

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: 1963
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Koverhage » Mi, 11. Dez 2013 18:24

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: 1963
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Koverhage » Mi, 11. Dez 2013 18:38

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: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom » Mi, 11. Dez 2013 19:34

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: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Rolf Ramacher » Mi, 11. Dez 2013 21:42

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: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Anzahl zu druckender Kopien

Beitrag von Tom » Mi, 11. Dez 2013 22:37

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: 10579
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Anzahl zu druckender Kopien

Beitrag von AUGE_OHR » Do, 12. Dez 2013 0:31

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) 2530 mal betrachtet
gruss by OHR
Jimmy

Antworten