PDA

View Full Version : DDS in ILE RPG



Seiten : [1] 2 3 4 5 6 7 8 9

Squall
08-09-06, 08:44
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

ExAzubi
08-09-06, 08:56
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.

Squall
08-09-06, 09:03
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?)

martikx
08-09-06, 09:21
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

Squall
08-09-06, 09:36
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

martikx
08-09-06, 09:48
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

Squall
08-09-06, 10:07
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

Fuerchau
08-09-06, 10:13
Wenn neue Member erstellt werden müssen, so ist dies VOR dem Aufruf des Programmes per ADDPFM das Member hinzuzufügen.

BenderD
08-09-06, 10:26
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.

Squall
08-09-06, 12:49
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.