PDA

View Full Version : Drucken und Heften



Seiten : [1] 2

Karo
08-09-06, 10:11
Hallo,

wir wollen von der AS400 aus Belege drucken und diese automatisch vom Drucker, mit Hefteinheit (HP-Drucker), heften lassen. Gibt es hierzu schon Lösungen wie man diese Funktion von der AS400 aus ansteuern kann?

Danke.

Gruß, Karo

Fuerchau
08-09-06, 10:15
Siehe CRTPRTF/OVRPRTF ... CORNERSTPL... EDGESTITCH... SADLSTITCH...

Ggf. sind noch die passenden ESC's ins WSCST zu übernehmen.

Proggi
08-09-06, 11:37
oder wer es druckerunabhängig mag, in PCL innerhalb der Spoolfile mitgeben.

Fuerchau
08-09-06, 12:22
Gerade wenn man es druckerunabhängig machen will, dann kein PCL innerhalb des Spools verwenden, da eben nicht jeder PCL kann und ggf. die ESC's unterschiedlich sind.
Dafür ist ja das WSCST da.

jgv
11-09-06, 08:52
Das DDS-Keyword STAPLE kann auch zur Steuerung verwendet werden.

woki
13-09-06, 09:55
Liebe Forumsmitglieder,

ich beschäftige mich gerade mit dem STAPLE-Befehl.
Ich habe eine Druckdatei SHARE(*YES) mit der ich von 2 Programmen aus arbeiten möchte.
Aus Programm 1 wird eine Art Deckblatt erzeugt, dann ein callP auf ein 2. Programm in der die Detailseiten gedruckt werden sollen. Diese sollen mit dem Deckblatt zusammengeheftet werden.

Arbeite ich nur mit einem Programm mit der Printerfile, klappt das heften ohne Probleme, aber mit den 2 Programmen klappt es nicht.
Das Deckblatt wird ungeheftet ausgedruckt und die Detailseiten zusammengeheftet.

Hier die Quellcodes meiner 2 Test-Programme:
Masterprogramm:

FTEST71213 O E PRINTER OFLIND(Overflow01)
*
Dj S 2S 0 inz(0)
Dausgabe PR extpgm('TEST71213')
*
/free
for j = 1 to 2;
write STAPLEOFF;
write STAPLEON;
write DECKBLATT;
write NEUESEITE;
callP ausgabe();
endfor;
*Inlr = *On;
/end-free

Slave-Programm:

FTEST71213 O E PRINTER OFLIND(Overflow01)
*
Di S 2S 0 inz(0)
*
/free
for i = 1 to 3;
if i = 1;
write STAPLEOFF;
write STAPLEON;
endif;
write TEXT;
write NEUESEITE;
if i = 3;
write KLAMMERN;
endif;
endfor;
*Inlr = *On;
/end-free

Printerfile:

A*--- PAGESIZE(72 80)
A*--- OVRFLW(63)
A*--- FOLD(*NO)
A*--- CORNERSTPL(*TOPLEFT)
A*--- DEVTYPE(*AFPDS)
A*--- HOLD(*YES)
A*--- OUTQ(PRT71213)
A*--- SHARE(*YES)
A*--- UOM(*CM)
A R DECKBLATT
A 10 24'Deckblatt'
A R TEXT
A 10 24'Seite'
A I 2S 0 10 30
A R NEUESEITE
A ENDPAGE
A R STAPLEON
A STAPLE(*ON)
A R STAPLEOFF
A STAPLE(*OFF)
A R KLAMMERN
A STAPLE

Fuerchau
13-09-06, 10:37
Wird denn nur 1 Spool erzeugt ?
Prüfe mal, ob die Druckerdatei wirklich SHARE geöffnet wird.

woki
13-09-06, 10:47
Wird denn nur 1 Spool erzeugt ?
Ja.

Prüfe mal, ob die Druckerdatei wirklich SHARE geöffnet wird.
Wie mache ich das denn :confused:

Fuerchau
13-09-06, 11:50
SHARE kann man beim DSPJOB->14 sehen.

Das Problem bei O-Dateien ist häufig die Pufferung (siehe Compiler-Liste).
Das heißt, dass die Daten noch nicht an das Spool weitergegeben werden sondern noch im internen Dateipuffer stehen. Dieser wird erst bei Close dann vollständig ausgegeben.
SHARE hilft da nicht weiter, da RPG einen eigenen Programmpuffer anlegt.

Schau mal in den Spool, ob die Reihenfolge deiner Seiten auch stimmt.

Ich weiß aber im Moment nicht, wie man das Blocken abschaltet bzw. eine Dateiausgabe (flush) erzwingt.

woki
13-09-06, 12:34
Schau mal in den Spool, ob die Reihenfolge deiner Seiten auch stimmt. Die Reihenfolge stimmt. Aber ich kriege es nicht hin, daß ich die erste Seite aus dem ersten Programm und die folgenden Seiten aus dem 2. Programm zusammen geklammert sind. ich habe etwas rumgespielt, ich komme aber immer nur zu den beiden ERgebnissen: Entweder ist gar nichts geklammert oder die erste Seite allein und die folgenden geklammert.... :(