PDA

View Full Version : Frage zu RPGII



Seiten : [1] 2

AK1
16-01-15, 09:17
Hallo,
habe noch ein altes RPGII-Programm welches eine Printerfile erstellt.
Es werden dort mehrere Herst.-Protokolle in einer Spoolfile ausgegeben.

Jetzt soll pro Herst.-Protokoll eine Spoolfile ausgegeben werden, weil ein Formulargenerator zum Einsatz kommt.

Im RPGIV kann ich das über USROPN, OPEN, CLOSE leicht machen.

Ich habe leider keine RPGII-Unterlagen mehr. Ich möchte das Programm auch nicht nach
RPGIV konv.
Kann mir jemand sagen, wie man dies in RPGII hinkriegt. Danke.

hel400
16-01-15, 09:23
In der F-Bestimmung ganz am Ende in der letzten Spalte (im Deutschen Prompting ist die beschriftet mit "Bed.") einfach "UC" eingeben, das steht für user controlled.
Danach wie gewohnt mit OPEN u. CLOSE arbeiten.

AK1
16-01-15, 11:18
In der F-Bestimmung ganz am Ende in der letzten Spalte (im Deutschen Prompting ist die beschriftet mit "Bed.") einfach "UC" eingeben, das steht für user controlled.
Danach wie gewohnt mit OPEN u. CLOSE arbeiten.

Dies ist im RPG/400 möglich im RPGII nicht.

Fuerchau
16-01-15, 11:36
Laut altem RPGII-Handbuch gibt's da nur U1-U8, UC wird noch nicht unterstützt.

Du musst da halt das Programm so modifizieren, dass je Aufruf das jeweilige Protokoll gedruckt wird.
Also zusätzlichen Entry-Parameter und dann per Verteiler

P2 IF 1
EXSR PROT1
ENDIF
P2 IF 2
EXSR PROT1
ENDIF

Geht's nicht per EXSR, dann durch GOTO's ersetzen und am Ende jedes Protokolls dann einen GOTO ENDE.

hel400
16-01-15, 11:53
Laut altem RPGII-Handbuch gibt's da nur U1-U8, UC wird noch nicht unterstützt.


??
Ja schon, aber von welcher Maschine sprechen wir hier?
Mit "RPGII" nahm ich an, dass ein "altes" Zykluspgm. gemeint ist.
Aber in dem Augenblick, wo eine RPG-Source auf der AS/400 landet, ist die RPGIII(3)-Syntax verfügbar.
Oder denke ich da falsch?

Fuerchau
16-01-15, 12:06
Ja leider. Der Quelltyp ist ggf. RPT statt RPG. Da gibt's dann einen anderen Compiler.
Ich habe mal versucht RPT einfach auf RPG zu ändern, da flog der Compiler aber aus der Kurve.

hel400
16-01-15, 13:18
Ach Du liebe Zeit, diese alten Dinger :-)
Habe ich auch noch bei 2 Kunden - leider ...
(RPT steht übrigens für REPORT-Pgm. Das bewirkt, dass die Zeilen einer COPY-Routine automatisch anhand der Zeilencodes (F/I/C..) richtig einsortiert werden, daher krachts auch bei einer Umwandlung als RPG).

Aber sowohl bei RPT- als auch bei RPT38 kann man das "UC" angeben!

Nur damit wir da nicht aneinander vorbeireden:
@AK1:
Welche Sourcetype ist das eigentlich nun genau?

Robi
16-01-15, 13:20
Glaube NICHT das RPT ein anderer Compler ist.
Da läuft m.e. vorab nur ein 'auflösen und sortieren' der Source.

auflösen:
alle /copy werden in die Source einkopiert

sortieren
Die Source wir nach H-F-E-L-T-I-C-O (Kartenart, Spalte 6) sortiert

IN RPT kan ich in einer /COPY, die in den C-Specs eingebunden ist, auch F und I bestimmungen haben.
Der eigentliche Compile ist aber (soweit ich weis) der gleiche

Robi

AG1965_2
19-01-15, 09:58
Und man konnte die Zeilen aus dem Copy durch direkt darauf folgende Zeilen modifizieren - das kann der moderne RPG-Compiler auch nicht mehr.

GJV23
21-01-15, 16:03
Hallo AK1

ich habe da in einer alten Anwendung noch eine Lösung gefunden:

1. in RPGII-Programm:

C*
C* DRUCKDATEI SCHLIESSEN U. NEU ERÖFFNEN
C MOVE 'LFSCHLOE'NAME 8
C CALL 'SUBOC'
C PARM NAME
C*

2. CL-Programm SUBOC

0001.00 PGM PARM(&NAME)
0002.00 DCL VAR(&NAME) TYPE(*CHAR) LEN(8)
0003.00 OVRPRTF FILE(QSYSPRT) TOFILE(&NAME) DEV(*JOB) +
0004.00 SHARE(*YES)
0005.00 CALL PGM(SUBB)
0006.00 OVRPRTF FILE(&NAME) TOFILE(QSYSPRT) DEV(*JOB) +
0007.00 SHARE(*YES)
0008.00 ENDPGM

3. RPG400 Programm SUBB

H
FQSYSPRT O F 132 PRINTER
C SETOF 01
C FEOD QSYSPRT
C CLOSEQSYSPRT
C OPEN QSYSPRT
C SETON LR
C RETRN
OQSYSPRT D 01

Ich denke es müsst noch funktionieren.

Viele Grüße
GJV23