-
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
-
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
-
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
-
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
-
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().
-
Ab welchem Release gibts nun %subarr ???
-
 Zitat von Fuerchau
Ab welchem Release gibts nun %subarr ???
Ab V5R3M0, wie oben bereits erwähnt.
Birgitta
Similar Threads
-
By Bratmaxxe in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 24-07-06, 13:25
-
By Schorsch in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 09-12-05, 13:58
-
By harkne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 19-08-05, 13:06
-
By Staneke in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 03-08-05, 15:11
-
By coolie in forum NEWSboard Programmierung
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
-
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