Anmelden

View Full Version : Datenstruktur aus Cobol in RPG nachbilden



chera
12-03-10, 08:18
hallo zusammen,

habe hier ein kleines problem mit einer ds aus einem cobol pgm. ich würde diese gerne in einem rpg nachbilden aber irgendwie schaff ich es nicht. wer kann mir da weiterhelfen.

cobol:
01 XT-DVXXXX.
05 BELEGART01 PIC X(02).
05 TEXTSCHL01 PIC X(05).
05 TEXTSCHL02 PIC X(05).
05 TEXTSCHL03 PIC X(05).
05 TEXTSCHL04 PIC X(05).
05 BELEGART02 PIC X(02).
05 TEXTSCHL05 PIC X(05).
05 TEXTSCHL06 PIC X(05).
05 TEXTSCHL07 PIC X(05).
05 TEXTSCHL08 PIC X(05).

... bis 10x Belegart und 10 x 4 Textschlüssel

Und jetzt kommt der Teil, wo ich mich in RPG etwas schwer tue.

01 XT-DVXXXX-R REDEFINES XT-DVXXXX.
05 XT-DVXXXX-R1 OCCURS 10.
10 BELEGART00 PIC X(02).
10 TEXTSCHL00 PIC X(05) OCCURS 4.

Wie würde das in RPG aussehen? Vielen Dank für euere Info's.

lg, chera

Fuerchau
12-03-10, 09:57
Das funktioniert nur in ILERPG relativ einfach:

D MYDS DS DIM(10) QUALIFIED
D FELD1 2
D FELD2 5 DIM(10)

Referenziert dann per
MYDS(I1).FELD2(I2)

chera
12-03-10, 11:46
hallo fuerchau,

danke für die antwort. soweit bin ich auch schon, aber wie bekomme ich das hin, dass diese ds die erste ds überlagert (sowie in meinem cobol beispiel). dort liegt die zweite über der ersten ds und auf basis der einzelnen felder ist die zweite ds gefüllt.

geht das auch in ilerpg?

Fuerchau
12-03-10, 12:24
Im Prinzip ja:

D MYDS2 DS QUALIFIED
D FELD1 2
D FELD2 5 DIM(4)

D MYDS1 DS QUALIFIED
D MYSTRU 42
D MYF1 2 overlay(MYSTRU:1)
D MYF2 5 overlay(MYSTRU:3)
D MYF3 5 overlay(MYSTRU:8)
:
:
D MYR2 likeds(MYDS2) dim(10) overlay(MYSTRU)

So ungefähr müsste es gehen.

chera
12-03-10, 13:16
leider nicht, da schlüsselwort dim nicht auch schlüsselwort likeds folgen darf.

da muss ich mir was anderes einfallen lassen.

Fuerchau
12-03-10, 13:53
Auf die Schnelle:

d myds ds qualified
d f1 2
d f2 10 dim(4)
d myds2 ds qualified
d myst 420
d fx likeds(myds) dim(10)
d overlay(myst)

wird bei mir problemlos umgewandelt (V5R4).

chera
12-03-10, 14:01
ja, daran wird es wohl liegen. muss mich hier noch mir V5R1 herum quählen.

aber zur info, hab die felder einfach umsortiert. da hätte ich auch gleich drauf kommen können. trotzdem vielen dank für die antworten