Anmelden

View Full Version : Ausrichtung in PRTF's



Seiten : 1 [2] 3 4

Rafer19
19-11-04, 12:01
@Baldur

der 'inspect MyEdit tallying MyPos for characters before space..'
funktioniert nicht bei alle Zahlen.

Besser ist :
inspect MyEdit tallying MyPos for leading spaces...

Ralph

Fuerchau
19-11-04, 13:42
Sorry, aber mein COBOL-Gedächtnis ist etwas am rosten, da ich das "aus dem Kopf" codiert habe. Auf Grund der Möglichkeiten von ILERPG und der existierenden ERP's in RPG gerät COBOL etwas ins hintertreffen.

Rafer19
19-11-04, 13:54
Sorry, aber mein COBOL-Gedächtnis ist etwas am rosten, da ich das "aus dem Kopf" codiert habe. Auf Grund der Möglichkeiten von ILERPG und der existierenden ERP's in RPG gerät COBOL etwas ins hintertreffen.
ich bin dir trotzdem dankbar, da es mir einen von (sicherlich) vielen Wegen gezeigt hat, um nach 'Rom' zu kommen...

auf diesem Wege auch dank an alle Anderen, die mir geholfen haben :)

Rafer19
19-11-04, 17:19
Angenommen ein Druckjob mit mehreren Positionen endet auf der 2. oder 3. Seite, z.B. in Zeile 35.
Bleibt der Drucker in dieser Zeile stehen,oder wird automatisch ein Seitenvorschub durchgeführt, wenn der Job, sprich Programm beendet wird, so daß der Drucker für die nächste Ausgabe wieder am Seitenanfang steht?

Ich nehme an, das die Steuerung über das Pgm stattfinden muss, d.h. es muss ein Foot-Format angesprungen werden, welches dann entsprechende Zeilen mit SPACEA(X) durchführt, richtig?

Fuerchau
19-11-04, 18:45
Nein, beim AS/400-Spool ist das nicht mehr nötig. Nach der Letzten Zeile einfach Close.
Beim CRTPRTF gibt's einen Parameter (im Moment weiß ich ihn nicht), der eine Einrichtroutine startet. Die AS druckt dann eine Zeile, schickt eine Nachricht an QSYSOPR bzw. an die MSGQ die dem Drucker zugewiesen ist und wartet, ob das so OK ist.
Aber ich denke, dass macht bei Laserdruckern nicht mehr viel Sinn ;).

Die Druckausgabe des AS/Spools ist generell seitenorientiert.

eifeifmeiler
19-11-04, 21:49
@Fuerchau

meinst Du vielleicht den Parameter ALIGN(*YES)


LG
HaJo

Rafer19
21-11-04, 19:59
wenn ich richtig verstande habe, dient der Parameter ALIGN zur Papierausrichtung beim Beginn des Druckjobs.

Frage:
in den Beispielen ist immer angenommen, du druckst einige Kopfzeilen und dann beliebige Positionszeilen.
EOP usw. funktionieren hervorragend!:)
Wie verhält es sich aber, wenn man aus File A mehrere Kopfzeilen sequentiell liest und die zugehörigen Positionsdaten aus File B ?
Also 1 Satz aus A....Satz aus B
.........................Satz aus B
.........................Satz aus B
---2.Seite---
2 Satz aus A.....Satz aus B
usw
wird der EOP auch autom. erkannt oder muss man die Zeilen mitzählen?
Gibt es einen Zähler, den man abfragen kann, um zu überprüfen, in welcher Zeile man steht?

in meinen Druck-pgm läuft bis mitte der 2 Seite alles glatt und dann kommt bei (z.B.Zeile 51) die Seite 3 ???
Kann es sein, das der interne Zähler eine neue Seite nicht merkt?

Rafer19
21-11-04, 20:59
ich glaube 'mein' Problem liegt in der Zeilenanzahl der PRTF und der Overflow-Zeile.

Einige Versuche sahen mit anderen Werten ganz gut aus. (jedenfalls in Spool)

Fuerchau
22-11-04, 19:39
Der Zeilenzähler wird zurückgesetzt, wenn die Seitenlänge überschritten wird.
Wenn du EOP abfragst, bleibt Status EOP erhalten, bis du einen WRITE ohne EOP durchführst und wieder am Seitenanfang stehst, also:

77 Eop-Merker pic 9.

move 1 to Eop-Merker.

Schleife.

Read myfile at end goto ende
end-read

if Eop-Merker
write headformat
move zero to Eop-Merker
end-if

write posformat at eop
move 1 to Eop-Merker
end-write

goto Schleife.

Ende.
write feetformat

Das Kopf-Format sollte die DDS-Anweisung SKIPB(1) enthalten, so dass garantiert auf Zeile 1 begonnen wird (oder auch jede andere Startzeile).

EOP wird gemeldet, wenn die OVRFLW-Zeile erreicht bzw. überschritten wird, allerdings nur wenn EOP auch abgefragt wird.
write format : keine EOP, ggf. gelöscht
write format at eop ... : EOP wird abgefragt und ggf. gesetzt
end-write

Die aktuellen Werte stehen in der I-O-FEEDBACK-Area (siehe Handbuch), macht allerdings wenig Sinn, da EOP vollkommen ausreicht.
Ausserdem sollten die OVRFLW-Zeile und die Seitenlänge das Programm nicht interessieren, da ja die PRTF jederzeit geändert oder per OVRPRTF übersteuert werden kann. EOP funktioniert aber immer.

Rafer19
01-12-04, 18:01
mit den Hinweisen zu
WRITE FORMAT bzw
WRITE FORMAT AT EOP
konnte ich (nach richtiger Anwendung!) meinen Ausdruck hinbekommen.
Woher weiss man so etwas, dass der EOP-Zähler nur dann zurückgesetzt wird? Habe nirgendwo einen entsprechenden Hinweis gefunden...

Was mich noch etwas irrietiert und ich mir nicht erklären kann, ist folgendes
Zeilenzahl 66 Ovfl 60 ok
Zeilenzahl 66 ovfl 64 ok
Zeilenzahl 66 Ovfl 65 nein?
Zeilenzahl 68 Ovfl 64 ok
Zeilenzahl 68 Ovfl 66 nein?
Zeilenzahl 72 Ovfl 66 ok

gibt es einen Zusammenhang zwischen Zeilenzahl und Ovfl-Zeile?