[NEWSboard IBMi Forum]

Thema: printfile

  1. #1
    Registriert seit
    Apr 2012
    Beiträge
    360

    printfile

    Morgen liebes Forum,

    hätte da eine große Bitte:
    Bräuchte bitte einen Codesnipes, wie das Pgm in Free Printfile (F-Definitionen,Überlauf) ungefähr auszuschauen hat.

    Bedanke mich schon mal vorab

    Gruß

    Tarki

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    746
    Code:
         FQSYSPRT   O    F  132        Printer InfDs( PrtLinInf )  OflInd( *InOf ) 
    
         D PrtLinInf       Ds                  Qualified                 
         D  OvfLin                        5i 0 Overlay( PrtLinInf: 188 ) 
         D  CurLin                        5i 0 Overlay( PrtLinInf: 367 ) 
         D  CurPag                        5i 0 Overlay( PrtLinInf: 369 ) 
    
           /Free
                 If  PrtLinInf.CurLin > PrtLinInf.OvfLin - x;
                     Except  Header;      // oder Write bei ext. PRTF                   
                 EndIf;                                      
                 Except  Detail;           // s.o.
       
           /End-Free
    
         OQSYSPRT   EF           Header         2  2 
         O                                            2 'Intern beschriebene Druckausgabe'                             
         O                       PAGE             +   1 
         O                       *DATE         Y     38

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Durch OVLIND wird ja die BZ INOF gesetzt.
    Also einfach abfragen:

    if *INOF = *ON;
    // Drucken Header
    *INOF = *OFF;
    endif;

    Die Infds kann man sich da ggf. schenken.
    Sie ist dann erforderlich, wenn man vor Druck ggf. einen Seitenwechsel machen muss obwohl er noch nicht ansteht.
    Beispiel:
    Man möchte 3 Zeilen in einem Format ausgeben, vor dem Überlauf stehen aber weniger zur Verfügung.
    Damit also nicht in den Überlaufbereich gedruckt wird oder gar ein automatischer Seitenwechsel erfolgt, sollte man das wie im obigen Beispiel vorher abfragen (x = Anzahl zu druckender Zeilen).
    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
    Apr 2012
    Beiträge
    360
    ich bekomme aber die Meldung:
    *RNF2014 20 1 Der Parameter für das Schlüsselwort OFLIND ist ungültig; das Schlüsselwort wird ignoriert.

    Wie oder was muss ich eigentlich angegeben das ich die BZ *INOF benutzen darf?

    Gruß

    tarki

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Nachrichten-ID . . . . . . . : RNF2014
    Nachrichtendatei . . . . . . : QRPGLEMSG
    Bibliothek . . . . . . . . : QDEVTOOLS

    Nachricht . . . : Der Parameter für das Schlüsselwort OFLIND ist ungültig;
    das Schlüsselwort wird ignoriert.
    Ursache . . . . : Der Parameter für das Schlüsselwort OFLIND ist ungültig.
    Der Parameter muß *INxx sein, wobei xx der Anzeiger OA-OG, OV oder 01-99
    ist. Für eine extern beschriebene Datei sind nur die Werte 01-99 zulässig.
    Fehlerbeseitigung: Korrigieren Sie den Parameter. Wiederholen Sie die
    Umwandlung.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nun ja, wie der Fehler schon beschreibt.
    Bei einer Printerfile sind nur 01-99 erlaubt, als an Stelle von *INOF dann z.B. *IN99 (oder was immer du frei hast).
    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
    Apr 2012
    Beiträge
    360
    Hallo,

    bei mir will einfach kein Seitenwechsel im Free glücken.
    Wo liegt bei mir der Fehler?
    Code:
    FWTPRTF    O    E             PRINTER USROPN         
    F                                     OFLIND(*IN23)  
          Write DATEN;                                   
                                                         
          IF *IN23;                                      
            Write KOPFDATEN;                             
            *IN23 = *OFF;                                
          EndIf;
    Gruß

    Tarki

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mit den Bezugszahlen ist das manchmal so eine Sache, im Spool steht irgendwo in der Referenz, wo die Variable *IN23 denn definiert wurde (bzw. der Indicator 23).

    Für ILERPG kann man allerdings auch nun eigene Variablen definieren:

    Listing 3-7: Output operations in free format
    * An externally described printer file PrintFile
    FPrintFile O E Printer Oflind(Ofl_1)
    D Ofl_1 s n
    /free
    // To print all lines described by record Headings
    Write Headings;
    // To check for overflow and redo headings
    If Ofl_1;
    Write Headings;
    Clear Ofl_1;
    Endif;
    // To print a line described by record Detail
    Write Detail;
    /end-free
    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

  9. #9
    Registriert seit
    Apr 2012
    Beiträge
    360
    Danke Herr Fuerchau funktioniert toll.

  10. #10
    Registriert seit
    Apr 2012
    Beiträge
    360
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Mit den Bezugszahlen ist das manchmal so eine Sache, im Spool steht irgendwo in der Referenz, wo die Variable *IN23 denn definiert wurde (bzw. der Indicator 23).

    Für ILERPG kann man allerdings auch nun eigene Variablen definieren:

    Listing 3-7: Output operations in free format
    * An externally described printer file PrintFile
    FPrintFile O E Printer Oflind(Ofl_1)
    D Ofl_1 s n
    /free
    // To print all lines described by record Headings
    Write Headings;
    // To check for overflow and redo headings
    If Ofl_1;
    Write Headings;
    Clear Ofl_1;
    Endif;
    // To print a line described by record Detail
    Write Detail;
    /end-free
    Hallo,

    ich habe das Beispiel fast 1:1 umgesetzt.
    Aber bei einem von mir erzwungen Seitenwechsel habe ich die Variable ofl_1 auf *on gesetzt, aber er druckt es einfach nicht auf eine Seite.
    Wie erzwinge ich da einen Seitenwechsel?

    Gruß und Dank im Voraus

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Den Seitenwechsel erzwingst du durch die Ausgabe eines Satzformates dass auf die nächste Seite druckt (SPIPB(1)).

    Der Indikator hilft dir nur, den Status selber zu setzen oder setzen zu lassen (OVRFLW).
    Die Logik muss deine eigene sein.

    if ofl_1 = *on;
    write Kopf; // mit Skipb(1) o.ä.
    ofl_1 = *off;
    endif;
    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

Similar Threads

  1. *IPDS in Printfile auf Remote Outq
    By mikka_71 in forum NEWSboard Drucker
    Antworten: 8
    Letzter Beitrag: 12-09-11, 13:38
  2. Problem mit AFP Printfile und Procedur
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 01-02-06, 13:54
  3. Zahlen im APF Printfile
    By redsky in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 22-11-05, 09:56
  4. Arithmetische Operation im Printfile
    By alexander may in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-05-05, 10:27
  5. x'1B ' in SCS Printfile
    By spiceisnice in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 10-02-05, 19:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •