Ausgabefach eines Druckers steuern

Alle Themen rund um die Erstellung von Programmen
Antworten
Geronimo
Junior Member
Beiträge: 16
Registriert: 12. August 2014, 18:03

Ausgabefach eines Druckers steuern

Beitrag von Geronimo »

Hallo

Gibt es mit Windev die Möglichkeit das Ausgabefach des Druckers zu steuern?
Ich habe bisher nur die Steuerung des Einzugfaches gefunden mit iParameter(iPaperSource).
Ich habe einen Drucker mit 12 Ausgabefächern und muss für jeden Mitarbeiter das Ausgabefach ansteuern.

Gruss
Urs

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Ausgabefach eines Druckers steuern

Beitrag von Herbert »

Ja, das ist der korrekte Befehl. Ueber Papersource kannst den Papertray steuern.
Aber eben wohl nur die in der Hilfe gegebenen Werte.

Aber:
verwende iConfigureReport(RPT_xxx). Dadurch erhälst mal mindestens die Abfrage des Druckers, wodurch der User schon mal wählen kann.

Folgendes habe ich noch in einem Forum gefunden:

I use this code to show the printer-window, select a papertray and save this value for later

Code: Alles auswählen

// Don't save the specified settings
iConfigure(sPrinter,True)
// preset the window with the value choosen before
iParameter(iPaperSource,nPapertray)
// show the parameter window
IF iConfigureReport(RPT_RouteLijstKlant) THEN
// get the new paper source
nPapertray= iParameter(iPaperSource)
END
here I;m saving this value to the database for later use, when printing

Code: Alles auswählen

nPapertray is int = read from the db
IF nPaperTray > 0 THEN
iParameter(iPaperSource, nPaperTray)
END

Geronimo
Junior Member
Beiträge: 16
Registriert: 12. August 2014, 18:03

Re: Ausgabefach eines Druckers steuern

Beitrag von Geronimo »

Hallo Herbert

Vielen Dank für Deine schnelle Antwort.

Wahrscheinlich habe ich mich zu wenig klar ausgedrückt.
Wie ich die Einzugsfächer steuern kann habe ich schon rausgefunden.
Mein Problem ist ich muss die Ausgabefächer des Drucks automatisch steuern könne.

Beispiel:
Mein Drucker hat 4 Ausgabefächer
In Ausgabefach 1 werden alle Reports gedruckt welche als Lierferschein definiert sind
In Ausgabefach 2 werden alle Reports gedruckt welche als Rechnung definiert sind
In Ausgabefach 3 werden alle Reports gedruckt welche als Liste definiert sind
Usw..........

Dies alles sollte automatsch funktionieren ohne Benutzereingriff.
Also sowas wie iParameter(iPaperDestination,nOuputTray)

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Ausgabefach eines Druckers steuern

Beitrag von satmax »

Man könnte für jedes Ausgabefach (jeden Mitarbeiter) einen eigenen Drucker unter Windows anlegen. Dann brauchts dir in Windev nur den Windows-Druckernamen zu merken, ist einfach und funktioniert.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Ausgabefach eines Druckers steuern

Beitrag von Herbert »

Die Idee hinter dem Code-Beispiel ist die, dass du für dich einmalig die Schächte herausschreibst, um diese dann richtig den Mitarbeitern automatisch zuordnen zu können. Aber Satmax' Idee finde ich sehr interessant.

Geronimo
Junior Member
Beiträge: 16
Registriert: 12. August 2014, 18:03

Re: Ausgabefach eines Druckers steuern

Beitrag von Geronimo »

Ich habe mich in der Zwischenzeit ein wenig schlau gemach. Die Ansteuerung der Ausgabefächer von Druckern ist nicht genormt. Das heisst jeder Druckerhersteller fährt hier eine eigene Schiene. Man müsste, sofern man vom Hersteller die detaillierten Angaben hat, für jedes Druckermodell einen eigenen Programmcode schreiben. Aus diesem Grund ist es praktisch unmöglich ein Ausgabefach mit Programmcode anzusteuern. Das gleiche gilt übrigens auch für Dotnet. Die Idee von Satmax finde ich auch interessant. Ich werde aber einen anderen Weg gehen. Ich werde den Output als PostScript ablegen, die Ausgabefächer des PS manipulieren und an den Drucker senden. Somit kann ich sogar innerhalb des Dokumentes jede Seite steuern und habe somit eine grosse Flexibilität.

Besten Dank für eure Hilfe

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Ausgabefach eines Druckers steuern

Beitrag von satmax »

Schon mal Escape Command verwendeet?

iEscape (Function);

sEscapeSequence = ESC + "j7" // Hier eben deine Escape Sequenz
// Send the Escape commands all at once
iEscape(sEscapeSequence)


Das sollte auch funktionieren.

Geronimo
Junior Member
Beiträge: 16
Registriert: 12. August 2014, 18:03

Re: Ausgabefach eines Druckers steuern

Beitrag von Geronimo »

Das ist ein ganze interessanter Ansatz, den ich bis jetzt nicht berücksichtigt habe.
Ich werde das mal ausprobieren und hier meine Erfahrungen posten.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Ausgabefach eines Druckers steuern

Beitrag von satmax »

Unter Cli**er hatten wir nichts anderes... ;-)

Geronimo
Junior Member
Beiträge: 16
Registriert: 12. August 2014, 18:03

Re: Ausgabefach eines Druckers steuern

Beitrag von Geronimo »

Ich habe ja versprochen meine Erfahrungen mit Escape-Commands hier zu posten.
Die Escape-Commands funktionieren wirklich problemlos. An dieser Stelle danke an satmax für den Tipp
Folgendes Szenario:
Drucker mit 12 Ausgabefächern und 5 Einzugsfächern.
Für jeden Benutzer ein eigenes Ausgabefach, in den Einzugsfächern Papier mit deutschem, französischem und italienischen Logo.
Die Ansteuerung der Ausgabefächer und Einzugsfächer wird über die Escape-Commands gesteuert.
Die Escape Commands werden in einer Tabelle für den Drucker hinterlegt. Da bei mir zwei verschiedene Drucker im Einsatz stehen müssen die Commands pro Drucker abgelegt werden.
Der einzige Nachteil den ich hier erwähnen möchte ist der Zeitaufwand den ich hatte bis ich die Commands vom Druckerhersteller erhalten hatte.

Antworten