-
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
-
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
-
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).
-
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
-
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.
-
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).
-
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
-
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
-
Danke Herr Fuerchau funktioniert toll.
-
Zitat von Fuerchau
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
-
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;
Similar Threads
-
By mikka_71 in forum NEWSboard Drucker
Antworten: 8
Letzter Beitrag: 12-09-11, 13:38
-
By Stefan_Sk in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 01-02-06, 13:54
-
By redsky in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 22-11-05, 09:56
-
By alexander may in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 31-05-05, 10:27
-
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
-
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