PDA

View Full Version : printfile



Seiten : [1] 2

tarkusch
31-08-12, 07:23
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

RobertMack
31-08-12, 07:49
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

Fuerchau
31-08-12, 08:21
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).

tarkusch
31-08-12, 14:35
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

Pikachu
31-08-12, 14:43
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.

Fuerchau
31-08-12, 16:23
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).

tarkusch
20-09-12, 15:42
Hallo,

bei mir will einfach kein Seitenwechsel im Free glücken.
Wo liegt bei mir der Fehler?


FWTPRTF O E PRINTER USROPN
F OFLIND(*IN23)
Write DATEN;

IF *IN23;
Write KOPFDATEN;
*IN23 = *OFF;
EndIf;


Gruß

Tarki

Fuerchau
20-09-12, 16:27
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

tarkusch
20-09-12, 19:37
Danke Herr Fuerchau funktioniert toll.

tarkusch
27-10-12, 21:21
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