[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    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!)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    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!)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    425
    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

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. iSeries mit mehreren virtuellen Instanzen
    By Christian.Hesse in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 25-11-06, 05:57
  2. SQL: Aus mehreren Feldern ein Datum erkennen
    By I0N in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-11-06, 12:44
  3. DS Übergabe
    By Squall in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 24-10-06, 08:44
  4. FETCH n ROws in einzelne Felder einer DS
    By pedro-zapata in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 11-09-06, 12:34
  5. externe DS als Parameter übergeben
    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
  •