[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Nov 2004
    Beiträge
    47
    @Baldur
    Zitat Zitat von Fuerchau
    In COBOL ist das leider doch etwas schwieriger:

    01 MyEdit.
    05 MyNum pic z.zzz.zz9,99B.
    05 MyWacd pic xxx.

    77 MyPos pic s9(4) comp-4.

    move 1 to MyPos
    inspect MyEdit tallying MyPos for characters before space
    move MyEdit(MyPos:17 - MyPos) to MyPrtField.
    hatte ich gestern abend mit einem kleinen Test-Pgm ausprobiert:
    ging nicht... ging nicht ..... ging nicht... bin gegen 22:00 frustriert ins Bett gegangen
    Heute morgen wieder ran...
    Kann aber auch nicht gehen, wen man MyNum NICHT füllt Blöder Fehler!

    Jetzt gehts, vielen Dank!

    Gruß
    Ralph

    PS (MyPos:17 - MyPos) warum 17? da kommt bei mir OUT OF RANGE

  2. #2
    Registriert seit
    Nov 2004
    Beiträge
    47
    @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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Nov 2004
    Beiträge
    47

    Thumbs up

    Zitat 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

  5. #5
    Registriert seit
    Nov 2004
    Beiträge
    47

    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?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Nov 2004
    Beiträge
    1
    @Fuerchau

    meinst Du vielleicht den Parameter ALIGN(*YES)


    LG
    HaJo

  8. #8
    Registriert seit
    Nov 2004
    Beiträge
    47
    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?

  9. #9
    Registriert seit
    Nov 2004
    Beiträge
    47
    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)

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Nov 2004
    Beiträge
    47
    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?

Similar Threads

  1. Drucker
    By Miles in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 26-04-06, 07:49
  2. Ausrichtung Remote Printer
    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
  •