-
Externe Dateifelder indexierbar machen in Free
Hallo zusammen,
es ist eine bestehende Logik (altes RPG) in Free umsetzen.
Dabei ist folgende Situation gegeben:
In einer DDS gibt es 53 Felder die Werte (für jede Kalenderwoche) enthalten
Diese Felder sind natürlich alle in der DDS definiert
KW01
KW02
…
KW53
Alle Felder sind gleich definiert 11.2 über ein Referenzfeld
Also so in der DDS:
A KW01 R REFFLD(KW)
A KW02 R REFFLD(KW)
...
Es sind aber nicht die einzigen Felder in der Datei (sonst könnte man ja mit der Datenstruktur einfach arbeiten) Die Datei hat dutzende andere Felder (auch mehrere dieser 1-53 Felder)
Im Programm werden jetzt die Werte aufaddiert (oder auch andere Rechenoperationen damit gemacht.)
Um nicht immer alle Felder mit dem echten Namen anzusprechen gibt es ein Array
D KW S 11 2 DIM(53)
Dass kann ich natürlich in Free auch einfach abbilden
z. B. so:
DCL-S KW packed(11:2) DIM(53);
Jetzt kommt aber der Teil, wo die Originalfelder indexierbar werden.
Auch das geht im alten RPG mit einer einfachen I-Bestimmung
Das Externe Feld KW01 wird zum internen Feld KW mit dem Index 01
I-Bestimmung, dann Externer Feldnahme = KW01 und Feldname = KW(01) – fertig.
IDateiS1
I KW01 KW(01)
I KW02 KW(02)
I KW03 KW(03)
…
Jetzt kann man im Programm wunderbar sagen.
for §A = 1 to 53;
KW(§A) = ….…..
Endfor;
Wie bekomme ich es in free hin die Arrays zu definieren?
Ich habe es mit like ExtFld versucht
Das geht auch
dcl-ds DateiS1 qualified inz;
KW01 like ExtFld('KW01');
END-DS;
Nur halt dann auch wieder mit festen Namen KW01 und nicht das Array mit den 53 Werten.
Dann habe ich es auch so versucht
dcl-ds DateiS1 qualified inz;
KW:01 like ExtFld('KW01');
END-DS;
Ich kann KW nicht indexieren beim umbenennen des Externen Feldes aus der Datei weder mit
KW:01 like ExtFld('KW01');
KW,01 like ExtFld('KW01');
KW(01) like ExtFld('KW01');
Ich möchte auch ungerne ganz andere Lösungsansätze, da ich den logischen Teil (also die alte RPG-Source) schon in Free übernommen habe und die Programmlogik seit Jahren läuft und der Testaufwand für was Neues hoch wäre.
Somit wäre es schön und sinnvoll, wenn ich die Felder auch mit KW(01) oder KW(§A) oder wie auch immer die Zähler in den Schleifen heißen (gibt davon mehrere und es handelt sich um knapp 300 Felder und etliche Schleifen, wäre also echter Aufwand) ansprechen könnte.
Wer kann mir da auf die Sprünge helfen ?
Vielen Dank im Voraus
Peter
Similar Threads
-
By Chris.jan in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-07-18, 11:13
-
By itec01 in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 21-06-17, 21:39
-
By Duriel in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-07-15, 08:56
-
By harkne in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 19-11-13, 10:02
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 10-05-02, 10:03
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