View Full Version : DDS in ILE RPG
Seiten :
[
1]
2
3
4
5
6
7
8
9
Hallo,
gibt es eine Möglichkeit eine DDS Datei in ILE RPG ohne Usereingaben zu erstellen?
Dh. das Programm liest aus einer Datei die entsprechenenden Daten(so das es einen vollständigen Satz hat) bzw bekommt diese Daten übergeben und schreibt dann Sätze in dieses PF oder LF. Ist das möglich? Habe schon per google gesucht aber bisher nichts konkretes gefunden.
Ich weiß das man Seu aufrufen kann, sowie die Datei mit den entsprechenden Befehlen erstellen können müsste. Nur kann ich in Seu Sätze vom Programm aus schreiben?
Gruß Martin
Hallo Martin,
über Umwege kannst du das machen
zB. so
CL-Aufrufen
CPYFSRC MUSTER --> MUSTER1
ILE PGM aufrufen
F QDDSSRC
C WRITE MUSTER1 (ACHTUNG: Auf Satzaufbau einer DDS Quelle achten SRCSEQ 6,2 SRCDAT 6,0 SRCDTA 80)
CL-Zurück
CPYSRCF --> NAME
So sollte der Grobaufbau deines Programmes sein.
Hallo Martin,
über Umwege kannst du das machen
zB. so
CL-Aufrufen
CPYFSRC MUSTER --> MUSTER1
ILE PGM aufrufen
F QDDSSRC
C WRITE MUSTER1 (ACHTUNG: Auf Satzaufbau einer DDS Quelle achten SRCSEQ 6,2 SRCDAT 6,0 SRCDTA 80)
CL-Zurück
CPYSRCF --> NAME
So sollte der Grobaufbau deines Programmes sein.
Danke für die schnell Antwort. Ich hätte noch 2 Fragen dazu. :)
Rein über ILE RPG lässt sich das Problem nicht lösen?
Und müsste ich bei F nicht das kopierte Muster definieren?(QDDSRC ist doch die Standart-Lib oder?)
Hallo Sqall,
eine QDDSSRC ist keine "LIB", sondern eine PF-SRC in einer LIB. Eine QDDSSRC ist also für ein RPG-Programm nichts anderes als eine PF mit X verschiedenen Membern. Insofern kannst Du im CL auch einfach mit OVRDBF Datei Member arbeiten.
Gruß
martikx
Hallo Sqall,
eine QDDSSRC ist keine "LIB", sondern eine PF-SRC in einer LIB. Eine QDDSSRC ist also für ein RPG-Programm nichts anderes als eine PF mit X verschiedenen Membern. Insofern kannst Du im CL auch einfach mit OVRDBF Datei Member arbeiten.
Gruß
martikx
Ah ok danke. Aber müsste ich nicht trotzdem auch das Muster1 in der F definition definieren?
Gruss Martin
Hallo Martin,
nein in einer F-Bestimmung kann das Member nicht angegeben werden. Wenn auf ein Member zugegriffen werden muss, dann sind in diesem Fall die Befehle
OVRDBF FILE(QDDSSRC) TOFILE(LIB/QDDSSRC) MBR(MUSTER1) OVRSCOPE(*JOB)
CALL Programm
DLTOVR FILE(QDDSSRC) LVL(*JOB)
im aufrufenden CL abzusetzen.
Gruß
Martin
Hallo Martin,
nein in einer F-Bestimmung kann das Member nicht angegeben werden. Wenn auf ein Member zugegriffen werden muss, dann sind in diesem Fall die Befehle
OVRDBF FILE(QDDSSRC) TOFILE(LIB/QDDSSRC) MBR(MUSTER1) OVRSCOPE(*JOB)
CALL Programm
DLTOVR FILE(QDDSSRC) LVL(*JOB)
im aufrufenden CL abzusetzen.
Gruß
Martin
Ah ok vielen Dank. :)
Gruß Martin
Wenn neue Member erstellt werden müssen, so ist dies VOR dem Aufruf des Programmes per ADDPFM das Member hinzuzufügen.
oder die Datei User controlled öffnen, dann kann das ganze auch innerhalb des Programmes per system oder QCMDEXEC erfolgen und das CL Gehampel ist überflüssig. Beispiele dazu gibt es auf meiner Freeware Seite in der Generatorkiste (GENFREE, GENFRAME)
mfg
Dieter Bender
Wenn neue Member erstellt werden müssen, so ist dies VOR dem Aufruf des Programmes per ADDPFM das Member hinzuzufügen.
Hallo Martin,
über Umwege kannst du das machen
zB. so
CL-Aufrufen
CPYFSRC MUSTER --> MUSTER1
ILE PGM aufrufen
F QDDSSRC
C WRITE MUSTER1 (ACHTUNG: Auf Satzaufbau einer DDS Quelle achten SRCSEQ 6,2 SRCDAT 6,0 SRCDTA 80)
CL-Zurück
CPYSRCF --> NAME
So sollte der Grobaufbau deines Programmes sein.
Ich hätte noch eine Frage zu dem Write. SRCSEQ, SRCDAT und SRCDTA setze ich vor dem write, richtig?
Kann ich damit auch eine neue Zeile anlegen?
ZB.: SRCSEQ auf 140 setzen und schreiben obwohl das Muster nur 139 Zeilen hat.