[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    27

    Datenstruktur mit Mehrfachvorkommen

    Hallo Forum,

    ich hätte eine Frage zu Datenstrukturen mit Mehrfachvorkommen.
    Ich habe eine folgendermassen in RPGIV definiert:

    D ArtSum ds dim(999)
    D Artikel 10
    D SumUms 20 3

    Besteht die Möglichkeit diese Geschichte (die Anzahl der Elemente) dynamisch zu gestalten?

    etwas zum Hintergrund am Beipiel dieser DS:
    In dieser DS wird je Artikel eine Umsatzsumme abgelegt, wobei die Artikel unsortiert reinkommen. Jetzt kann es ja durchaus vorkommen, das nicht alle 999 Elemente gefüllt werden, sondern z.Bsp. nur 123.
    Die DS wird am Ende mittels SORTA sortiert und weiterverarbeitet. Jetzt hab ich natürlich bedingt durch den SORTA, die leeren Elemente am Anfang. Aktuell suche ich per LOOKUP das erste gefüllte Element, um da mit der Weiterverarbeitung aufzusetzen. Und dies würde ich mir gern ersparen.

    Besten Dank im Voraus

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    man kann in den E-Bestimmungen Stelle 45 für das Arry eine Sequenz (desc/asc) angeben.

    Versuch doch mal ein "D" und ob der SORTA dann so greift, dass die Nullen hinten stehen...

    Nur so ne Idee...

    kuempi

  3. #3
    Registriert seit
    Jul 2002
    Beiträge
    27
    Hallo,

    die Sortierung macht er schon richtig.
    Mir gehts eigentlich um die Anzahl der Elemente. Statt statisch 999 zu hinterlegen, z.Bsp. bei 1 beginnen und die Anzahl bei Bedarf zu erhöhen. So das ich am Ende nur 123 statt 999 Elemente habe. Das hätte dann den schönen Nebeneffekt, das ich mir den LOOKUP sparen könnte.

    Und wenn ich mal mehr als 999 Elemente benötigen würde, hab ich momentan ein kleines Problem

    trotzdem Danke

  4. #4
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo,

    seit V5R3 hast Du doch die Möglichkeit den SORTA nur auf eine bestimmte Anzahl Elemente anzuwenden. Das sieht dann so aus:

    Code:
    C                   SORTA     %SUBARR(TBL_PROP:1:Z)
    Wobei Z die Anzahl der gefüllten Tabellenelemente ist. Dann wird nur bis zum Element Z sortiert und die leeren Elemente bleiben weiterhin am Ende der Tabelle.

    Gruß,
    KM

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dynamische Strukturen sind im RPG/LE leider nicht möglich.
    Etwas eingeschränkt kann man es aber doch hinbekommen:

    D BaseAdr * <= Pointer
    D ArtSum ds dim(10000) based(BaseAdr)

    Mittels %ALLOC/%REALLOC kann zur Laufzeit Speicher dem Pointer zugewiesen werden.
    In den %LOOKUP-Funktionen kann die Anzahl der Elemente beschränkt werden.

    Einzig der Sort funktioniert nicht.
    Hier hilft ggf. das Einbinden der C-Funktion qsort().
    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

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ab welchem Release gibts nun %subarr ???
    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

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau
    Ab welchem Release gibts nun %subarr ???
    Ab V5R3M0, wie oben bereits erwähnt.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. Datenstruktur
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 24-07-06, 13:25
  2. Externe Datenstruktur / Datenzuweisung
    By Schorsch in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 09-12-05, 13:58
  3. Datenstruktur Qualified
    By harkne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 19-08-05, 13:06
  4. Antworten: 5
    Letzter Beitrag: 03-08-05, 15:11
  5. Antworten: 5
    Letzter Beitrag: 06-05-04, 14:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •