PDA

View Full Version : Datenstruktur Qualified



harkne
19-08-05, 12:51
Ich habe bei einer anderen Frage hier mal das qualified bei Datenstrukturen aufgenschappt und probiert.

Ich habe jetzt in meinem Programm eine Datenstruktur namens Stellplatz und dort qualified angegeben und die Unterfelder Art und Anzahl.

Also:



d AryStellPlatz ds dim(999) qualified
d Art 4
d Anzahl 6 0


Da die Anzahl eine Summe aus mehreren Datensätz ist wollte ich einen %lookup machen um zu sehen ob die Art bereits vorhanden ist. Wenn ja Anzahl im entsprechenden Element hinzuzählen. Wenn nein MaxIdx um 1 erhöhen und Art und Anzahl in nächstes freies Element reinstellen. Ich hoffe es ist klar.

Jetzt endlich meine Frage ?
Der %lookup auf AryStellPlatz.Art funktioniert aber nicht. Fehler bei der Umwandlung
Wie kann ich die Arten durchsuchen ? Muss ich die wirklich nacheinander durchlesen ?

Fuerchau
19-08-05, 12:54
Kleiner Nachteil der Lookup-Funktionen !
Diese können nur tatsächliche Tabellen durchsuchen, "Art" ist aber keine Tabelle.
Also:
d AryStellPlatz ds qualified
d Art 4 dim(999)
d Anzahl 6 0 dim(999)

B.Hauser
19-08-05, 13:02
Ich habe bei einer anderen Frage hier mal das qualified bei Datenstrukturen aufgenschappt und probiert.

Ich habe jetzt in meinem Programm eine Datenstruktur namens Stellplatz und dort qualified angegeben und die Unterfelder Art und Anzahl.

Also:



d AryStellPlatz ds dim(999) qualified
d Art 4
d Anzahl 6 0


Da die Anzahl eine Summe aus mehreren Datensätz ist wollte ich einen %lookup machen um zu sehen ob die Art bereits vorhanden ist. Wenn ja Anzahl im entsprechenden Element hinzuzählen. Wenn nein MaxIdx um 1 erhöhen und Art und Anzahl in nächstes freies Element reinstellen. Ich hoffe es ist klar.

Jetzt endlich meine Frage ?
Der %lookup auf AryStellPlatz.Art funktioniert aber nicht. Fehler bei der Umwandlung
Wie kann ich die Arten durchsuchen ? Muss ich die wirklich nacheinander durchlesen ?

Dazu musst Du die Feldgruppe als Datenstruktur-Unterfeld definieren und durch die Unterfelder Art und Anzahl überlagern. Durch die Überlagerung werden diese Unterfelder automatisch als Feldgruppen definiert.:


D MyDS DS Qualified
D AryStellPlatz Dim(999)
D Art 10A overlay(AryStellPlatz)
D Anzahl 6 0 overlay(AryStellPlatz: *Next)
*-------------------------------------------------------
/Free
MyDS.Art(1) = 'ABC';
MyDS.Anzahl(1) = 123;
Dsply MyDS.AryStellPlatz(1);

Pos = %LookUp(*Blanks: MyDS.Art);
Dsply Pos;
*InLR = *On;
/End-Free


Birgitta

harkne
19-08-05, 13:03
OK, werde ich versuchen. Danke.

Immer diese Einschränkungen. Kann da mal nix einfach so funktionieren :confused:

harkne
19-08-05, 13:06
OK, gefällt mir fast noch besser. Ist zwar im Grunde das Gleiche wie bei Fuerchau aber wenn ich mehr als 2 Felder habe gefällt es mir bessern den dim nur einmal angeben zu müssen. Ist aber denke ich Geschmacksache.

Vielen Dank an Euch