PDA

View Full Version : Tabellen in RPG IV



Gimli
31-03-03, 07:36
Hallo an Alle,

ich möchte die built-in function %tlookup verwenden. Dafür habe ich in der RPG-Quelle eine Tabelle folgendermassen definiert:

D ILN S 13 0 DIM(5) PERRCD(1) CTDATA

** CTDATA ILN
4004840000004
4002593000005
4004849000005
4001645000000
4007104000000

Wenn ich das Programm umwandele, erhalte ich die Fehlermeldung:
Es werden zu viele Feldgruppenindexe übergangen.
Daher meine Frage, wenn das oben, eine Definition für eine Feldgruppe ist, wie definiere ich dann eine Tabelle ?
Ich brauche bitte keine Tipps, wie ich die Funktion anderweitig ersetzen kann (z.B. durch %lookup), ich muss eine Tabelle definieren und %tlookup verwenden.
(Wir verwenden OS/400 V5R2M0).

Vielen Dank im voraus für Eure Hilfe, Marc.

malzusrex
31-03-03, 08:34
moin moin,

versuche es mal mit


d iln s 13s 0 dim(5) perrcd(1) ctdata


gruß ronald

Gimli
31-03-03, 08:51
Hallo Ronald, leider hat das nicht den gewünschten Erfolg gebracht, ich bekomme immer noch die gleiche Fehlermeldung:
RNF0597 20 2 Der zweite Parameter für %TLOOKUPxx ist ungültig.
RNF5343 30 2 Feldgruppe hat zu viele übergangene Indizes;

Hat noch jemand Ideen ?

malzusrex
31-03-03, 09:09
also wenn es darum geht zu prüfen ob der wert in der tabelle ist, dann versuche es mit


d iln s 13s 0 dim(5) perrcd(1) ctdata
d test s 10a
d index s 5s 0

c clear index
c eval index = %lookup(4004849000005:iln)
c if index > *zeros
c eval test = 'Hallo'
c endif
c
c eval *inlr = *on
**
4004840000004
4002593000005
4004849000005
4001645000000
4007104000000


wenn index > 0 ist, dann hat dann ist der wert in der tabelle. und bei 0 halt nicht

gruß ronald

[Dieser Beitrag wurde von malzusrex am 31. März 2003 editiert.]

Gimli
31-03-03, 09:20
Hallo Ronald,

danke für Deinen Tipp, aber wie ich schon geschrieben habe, soll ich mit der Funktion %tlookup arbeiten und dafür muss ich leider eine Tabelle definieren und kann nicht mit einer Feldgruppe arbeiten. Ich weiss ja nur nicht, wie man eine Tabelle definiert!

Gruß, Marc

[Dieser Beitrag wurde von Gimli am 31. März 2003 editiert.]

malzusrex
31-03-03, 09:38
hallo marc,

das geheimnis liegt im namen. eine tabelle muß mit TAB anfagen.


d tabiln s 13s 0 dim(5) perrcd(1) ctdata
d test s 10a

c if %tlookup(4004849000005:tabiln)
c eval test = 'Hallo'
c endif
c eval *inlr = *on
**
4004840000004
4002593000005
4004849000005
4001645000000
4007104000000

gruß ronald

Gimli
31-03-03, 10:10
D A N K E !!
Das hat geholfen :-)