Anmelden

View Full Version : OVRPRTF zur Laufzeit



Tobse77
13-11-08, 15:37
Hallo zusammen,

in einem Listausgabe-Programm möchte ich anhand von Auswahlkriterien aus einer DSPF eine Liste erzeugen und den darin angegebenen Drucker zur Ausgabe verwenden.

In meinem Programm habe ich die PRTF mit dem Schlüsselwort USROPN definiert. Nachdem der Benutzer in der DSPF den Drucker eingegeben hat, rufe ich ein CLP auf und überschreibe per
OVRPRTF FILE(VT0567PF) OUTQ(&DRUCKER) den Drucker für die Ausgabe.
Erst danach öffne ich die PRTF!
Leider funktioniert dies aber nicht. Sobald das Open-Statement ausgeführt wurde, steht die Printerfile wieder in meiner Standard-OUTQ :mad:

Anbei der Original-Code:
// Druckerauswahl verarbeiten
close vt0567pf;
fcode = 0;
callp VT0567P(idrucker : fcode);
if fcode = 1;
AnzFehler = *on;
iter;
endif;
open vt0567pf; -> Jetzt steht der Spool mit Status Open in der falschen OUTQ

Kann mir jemand sagen, warum das so nicht funktioniert??

LG,
Tobias

mk
13-11-08, 15:45
Hallo Tobais,

versuche es mal mit
OVRPRTF FILE(A) OVRSCOPE(*JOB)

Vielleicht hilft es ja.

Gruß
Michael

Tobse77
13-11-08, 16:23
Hallo Michael,

DAS WAR'S !!!!!

VIELEN DANK für die SUPERSCHNELLE Antwort!!! :-)

Den Parameter hab ich bis jetzt noch nie beachtet. Er steht standardmäßig auf *ACTGRPDFN.
Bei meinem PGM handelt es sich um den Typ SQLRPGLE. Dieses habe ich mit CRTSQLRPGI ganz normal kompiliert.
Einen Umwandlungsparameter DFTACTGRP habe ich dort allerdings nicht gefunden, weshalb ich davon ausging, dass das PGM auch in der Standardaktivierungsgruppe ausgeführt wird. Dem war aber wohl nicht so!?! ;-)


LG,
Tobias

ExAzubi
18-11-08, 14:41
Oder im Programm den guten alten QCMDEXC aufrufen.

Umwandlungszeitfeldgruppe mit den Befehlen.

Nir ein Problem gehabt.


Gruß

Fuerchau
18-11-08, 16:20
Das Problem ist, dass QCMDEXC ein OPM-Programm ist und deshalb in der Standard-Aktivierungsgruppe läuft.
Es kann daher nicht garantiert werden, ob der OVRxxx per QCMDEXC auch deine aktuelle Aktivierungsgruppe betrifft.