-
 Zitat von Fuerchau
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
-
Seitenvorschub auf der letzten Seite
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?
-
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.
-
@Fuerchau
meinst Du vielleicht den Parameter ALIGN(*YES)
LG
HaJo
-
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?
-
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)
-
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.
-
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?
-
Das steht meines Wissens nirgends, sondern wurde von mir auch beim Testen festgestellt.
Was das Ovfl angeht, schau mal dein Format an, dass du ausgibst.
Ovfl wird gemeldet, wenn die Zeile erreicht oder überschritten wird.
Wenn du also SPACEA(x) oder ggf. mehrere Zeilen mit einem Format ausgibst wird eben erst NACH dem Zeilenvorschub EOP gemeldet.
OVFL muss sich also errechenen aus: Zeilenzahl - Fussformat(e) - Positionsformat !
Damit wird verhindert, dass eine Position in den Fussbereich hineinkommt.
Korrekt gehts aber tatsächlich nur mit I-O-FEEDBACK-Area um eben VOR der Ausgabe eines Formates einen ggf. eintretenden Ovfl zu erkennen. Dies ist vor allem dann sinnvoll, wenn variabel lange Pos-Formate ausgegeben werden, die aus optischen Gründen aber nicht getrennt werden sollen.
Das Drucken ist an und für sich generell ein schwieriges Thema.
-
was ist denn für das EOP-Flag ausschlaggebend?
das wirkliche Ende der Seite oder die Ovfl-Zeile?
'... ggf. mehrere Zeilen mit einem Format ausgibst wird eben erst NACH dem Zeilenvorschub EOP gemeldet....'
wenn du dabei aber schon auf der nächsten Seite stehst, dann greift die EOP-Bedingung nicht und er druckt einfach weiter, richtig?
wenn dem so ist, dann müßte man jeder Ausgabezeile ein eigenes Format zu weisen, oder, was schon am Anfang gesagt wurde, einen Zähler mitlaufen lassen und vor dem Druck des entsprechenden Formats, errechnen wo man hinterher stehen würe und ggf. zuerst einen Seitenvorschub durchführen.
-
Für EOP ist die Overflow-Zeile ausschlaggebend !
Wenn ich z.B. Formulare mit der klassischen 3-Teilung (Kopf, Position, Fuss) habe, muss ich ja wissen wann ich in den Fussbereich komme.
Bei Rechnungen/Lieferscheinen gibt es im Fuss häufig Übertragszeilen. Wie soll ich die ansteuern, wenn EOP erst beim tatsächlichen Ende der Seite gemeldet würde ?
Also, bei einem Formular von 70 Zeilen (A4) und Overflow 66 kann ich die Zeilen 67-70 für den Fussbereich nutzen.
Allerdings muss ich noch die tatsächliche Druckleistung berücksichtigen. Beim normalen Laserdrucker habe ich einen nicht bedrucklbaren Rand von je 1 Zeile oben und unten.
Und genau das ist ein Problem beim Hosttransform !
Drucke ich gezielt auf Zeile 1, verschiebt Hosttransform die gesamte Seite um 1 Zeile nach unten !
Drucke ich gezielt erst ab Zeile 2, so bleibt das Layout der Seite erhalten !
Dadurch kommt es häufig zu Unterschieden zwischen der 1. und folgenden Seiten, da man meist mit SKIPB(1) positioniert.
Anders sieht es bei AFPDS aus, da wird jedes Druckfeld einzeln berücksichtigt. Passt es in den druckbaren Bereich, wird es so ausgegeben, passt es nicht, wird es verschoben.
Dadurch kommt es zu sehr seltsamen Ausgaben:
- Zeile 1 und 2 wird übereinander gedruckt
- Spalte 1-2 wird auf Spalte 3 verschoben
- alles Andere wird so gedruckt wie angegeben
Gibst du wiederum auf klassischen Endlosdruckern aus, ist der Druck auf jede Zeile/Spalte möglich (Randloser Druck).
-
Die aktuellen Werte stehen in der I-O-FEEDBACK-Area (siehe Handbuch)
könntest du mir bitte sagen, wie ich auf die I-O-FEEDBACK-AREA zugreifen kann, bzw, sie auslesen kann.
Ich habe sämtliche? /(einige) HB's gelesen, in denen der Begriff vorkommt, aber wie deklarien und/oder benutzen habe ich nicht gefunden.
Similar Threads
-
By Miles in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 26-04-06, 07:49
-
By chris in forum NEWSboard Drucker
Antworten: 1
Letzter Beitrag: 19-02-02, 07:13
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks