-
Hatte mal ein ähnliches Problem, nur das da die Felder in der Datei nicht zusammen standen. Ungefähr so: (Feldgruppe auf TBxx)
Code:
A TB01 3S 0
A Felda 10
A Feldb 11
A Feldc 12
A TB02 3S 0
A Feld ...
A ...
A TB03 3S 0
A ...
Da habe ich mich entschieden die E DS zu entfernen und
deine erste Methode genommen.
Zum Glück war die E DS 'nur so' an dem Pgm, einen Grund wie z.B. clear Satzformat gab es nicht.
Ich hätte sonst weder Pointer noch Qualified verwenden können.
Oder???
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Auch dann wäre es gegangen, auf welcher Ebene du den Dim angibst ist doch egal:
d MyDsPtr S * inz(%addr(abtb01))
d MyDs ds based(MyDsPtr) dim(5) qualified
d tbx like(tb01)
d feld like(felda) dim(3)
MyDs(n).tbx verweist auf TB01 - TBnn
MyDs(n).feld(1) verweist auf Felda-Feldx
-
puuu
den muß ich erst mal begreifen ...
Die DS als Feldgruppe
und die Felder FELD1, Feld2 und Feld3 (sofern sie gleich sind)
auch als Feldgruppe oder eben einzelnd.
und
MyDs(n).tbx verweist auf TB01 - TBnn
Ok,
echt mal was dazugelernt ...
Danke
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Nun ja, ILERPG kommt nun damit in Bereiche die COBOL schon lange kann (Stichworte: Redefines, Name of Structure, move corresponding, geschachtelte Tabellen mit Occurs).
Man muss nur in COBOL denken um das in D-Spezifikationen umzusetzen.
-
Kann mir bitte nochmal jemand auf die Sprünge helfen ...
Ich habe in einer Datei
5 Kunden
und zu jedem Kunden 5 Artikel
Code:
D K1 5s 0
D K2 5S 0
D K3 5S 0
D K4 5S 0
D K5 5S 0
*
D A11 8A (1. Art. f 1. Kunde)
D A12 8A (1. Art. f. 2.Kunde)
D A13 8A ...
...
D A54 8A (5. Art. f.4. Kunde)
D A53 8A (5. Art. f. 5. Kunde)
Am Dateiaufbau kann ich nix machen
kann ich mit qualifies und einem Pointer eine DS so definieren, das ich mit
Code:
x = 4 und y = 3
und
kunde(x).Artikel(y)
an den 4. Kunden mit dem 3. Artikel ran komme?
Der (neugierige) ILEmax
-
Hallo,
deine Frage wegen Pointer habe ich nicht verstanden. Eine Matrix als Datenstruktur müsste meiner Ansicht nach so aussehen:
D kunde DS qualified dim(5)
D Artikel 20A dim(5)
*
/free
clear kunde;
kunde(1).Artikel(1) = 'Apfel von Kunde 1';
kunde(1).Artikel(2) = 'Birne von Kunde 1';
kunde(2).Artikel(1) = 'Apfel von Kunde 2';
kunde(2).Artikel(2) = 'Birne von Kunde 2';
/end-free
Dieter
-
Da die Kunden und Artikel nicht im Zusammenhang definiert sind, hast du (durch Pointer) 5 Kunden und 25 Artikel:
d MyDs DS based(MyPtr) <= siehe Oben
d MyKd like k1 dim(5)
d myart like a11 dim(25)
x=3; y=1;
=> MyKd(x)
=> MyArt((x-1)*5+y)
Sollten in deiner Struktur Kunden und Artikel nicht direkt hintereinander stehen, so mach halt 2 DS'n mit 2 Pointern, 1x Kunde, 1xArtikel.
Similar Threads
-
By Christian.Hesse in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 25-11-06, 05:57
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By Squall in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 24-10-06, 08:44
-
By pedro-zapata in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 11-09-06, 12:34
-
By psd-400 in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 07-10-04, 12:06
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks