-
OVRPRTF im laufenden Programm
Ich habe folgendes Problem, ein Rechnungsformular mit Overlay/Printerfile soll in drei Arten ausgedruckt werden. Ich habe drei Printerfile´s und möchte die während eines Cobol PGM´s unterschiedlich zuweiesen. Geht das ???
Vielen Dank, Sandra
-
Hey,
Cobol kenne ich leider nicht so sehr. In RPG würde ich es wie folgt lösen. Im RPG Programm kannst du ein Progr. aufrufen, was einen CL Befehl ausführt.
MOVEABE1 PARP 80
Z-ADD80 PARQ 155
CALL 'QCMDEXC' 98
PARM PARP
PARM PARQ
wobei der CL Befehl - im Beispiel - in die Variabel PARP gestellt wird. Durch das Programm hast du die Möglichkeit die Printerfile mit OVRPRTF zu überschreiben. Aber denke daran, die Printerfile erst nach
dem Befehl benutzergesteuert zu öffnen. Im COBOL Programm müsste das ähnlich funktionieren. Viel Glück
-
Auch in COBOL ist dies kein Problem:
WORKING-STORAGE SECTION.
77 OVERLAY-01 PIC X(10) VALUE "FORM1"
01 QCMD-PARAM.
05 QCMD-STRING PIC X(256).
05 QCMD-LEN PIC S9(10)V9(5) COMP-3 VALUE 256.
PROCEDURE DIVISION.
:
:
INITIALIZE QCMD-STRING
STRING "OVRPRTF FILE(myfile) TOFILE(xyz) FRONTOVL(" DELIMITED BY SIZE
OVERLAY-01 DELIMITED BY SPACE
")" DELIMITED BY SIZE
INTO QCMD-STRING
CALL "QCMDEXC" USING QCMD-STRING QCMD-LEN
OPEN OUTPUT MYFILE.
:
Mittels des STRING-Befehls kann der OVRPRTF entsprechend dynamisch zusammengebaut werden.
Anschließend kann die Druckdatei geöffnet werden.
Das Hauptproblem in COBOL ist: wenn der OVRPRTF syntaktisch nicht korrekt ist, wird ein CPF-Fehler gemeldet der nicht abgefangen werden kann (anders als in RPG).
-
Hallo,
ich arbeite viel mit Cobol und OVRPRTF. Zum Beispiel drucke ich während der Seitenwechsel normierte Listköpfe aus einem externen Upro, welches je Seite mit Call aufgerufen wird. Der OVRPRTF wird im CL aufgerufen und kann hier auch vernünftig abgefangen werden. Falls Du Programmuster benötigst, schick mir doch eine Mail.
Gruß
Klaus
[Dieser Beitrag wurde von skipper_k am 28. Juni 2002 editiert.]
-
Obiges Beispiel funktioniert nur, wenn das Cobol-Programm dann NACH dem OVRPRTF aus dem CL aufgerufen wird, da die Gültigkeit eines OVR-Befehls von der Aufrufebene abhängt.
Wenn also Programm A einen Call auf ein CL macht, dieses dann den OVRxxx macht und sich beendet, wird der OVRxxx wieder gelöscht !
Ansonsten muss man den Parameter OVRSCOPE(*JOB) verwenden um den OVRxxx zu erhalten.
Dann darf man allerdings den DLTOVR nicht vergessen, da dies sonst ungeahnte Auswirkungen auf später aufgerufene Programme hat, da der OVRxxx ja noch gültig ist !
Die Große Ausnahme ist hier CALL QCMDEXC. Dieses Programm verändert die Aufrufebene nicht, so dass ein OVRxxx-Befehl direkt aus RPG/COBOL vor einem OPEN aufgerufen werden kann.
Nach Beenden des Programmes werden alle OVRxxx automatisch wieder entfernt (Aufrufebene).
-
Hi Skipper,
Ich habe noch zwei andere Ideen, wenn auch ähnlich.
Warum nicht einfach in einem vorgeschalteten CL 3 OVR machen und im Programm dann 3 Printerfiles definieren, welche je nach Bedarf geöffnet oder geschlossen werden. Da ich davon ausgehe, daß die Feldnamen in den PRTF gleich sind, braucht man auch nur eine Verabreitung zu definieren.
Oder Lösung zwei: Fasse doch einfach Deine 3 PRTF zu einem PRTF zusammen und arbeite mit verschiedenen Satznamen. Eventuelle spezielle printerfilespezifische Einstellungen wie OUTQ, Größen, CPI etc. kann man dann nach dem Druck mit CHGSPLFA ändern.
Also warum kompliziert, wenn es auch einfach geht.
Thomas
Similar Threads
-
By mk in forum NEWSboard Java
Antworten: 8
Letzter Beitrag: 21-04-11, 21:51
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 13-05-09, 19:50
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 19-10-06, 09:12
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