-
Danke euch Beiden,
ja, die Definition ist durch die E DS schon da.
RPG erlaubt eben eindeutige Namen nur 1 x über alle Grenzen.
Das ist (meiner Meinung nach) Mist
Man braucht doch immer wieder ein und das selbe Feld in zig zusammenhängen.
Also werd ich nochmal nach der Erlaubnis für Pointer fragen und dann das ganze mit 5 eval's lösen..
Das Leben könnte so schön sein ...
Der ILEMax
-
 Zitat von ILEMax
ja, die Definition ist durch die E DS schon da.
Das ist (meiner Meinung nach) Mist
Man braucht doch immer wieder ein und das selbe Feld in zig zusammenhängen.
Das ist schon richtig so, sonst würde ja keiner wissen ob du das Feld von der externen Definition meinst oder irgendein anderes.
Du kannst ja mit Qualified arbeiten. Dann kann es das Feld öfters geben.
(Natürlich immer nur mit einer DS mit Qualified)
lg Andreas
-
Auch wenn das deiner Meinung nach Mist ist, das war bei RPG schon immer so.
Wenn du dir die Auflösung deiner externen DS im Spool anschaust, kannst du doch locker eigene D-Zeilen hinter die DS stellen, die Redefinitionen vornimmt!
Schließlich generiert der Compiler die D-Zeilen der Struktur auf die man dann Bezug nehmen kann.
Warum ist das so schwer?
-
das war bei RPG schon immer so.
Das macht es nicht besser! 
kannst du doch locker eigene D-Zeilen hinter die DS stellen, die Redefinitionen vornimmt!
Schließlich generiert der Compiler die D-Zeilen der Struktur auf die man dann Bezug nehmen kann.
Warum ist das so schwer?
Oh man, ich steh auf'm Schlauch!
Ich verstehe überhaubt nicht, was du meinst.
Doch sicher NICHT das ich mit FESTEN Positionsangaben die DateiDS überlagere?
(geht hier gar nicht, da sich alle paar Tage die Dateistrukturen 'wild' ändern, aber nur Pgmme angefasst werden, die die neuen Felder auch brauchen. Der Rest wird bei Projektaktivierung nur umgewandelt )
Det ILEMax
-
Aber genau das meine ich.
Wenn sich die Dateistrukturen laufend ändern und dann nicht alle Programme gewandelt werden müsst ihr ja mit Levelcheck *NO arbeiten, sonst knallts ja fürchterlich.
Damit aber bestehende Programme weiter arbeiten können, können neue Felder ja nur am Ende dazukommen.
Somit bleiben die absoluten Positionen der Felder immer gleich.
Was spricht also dagegen?
-
Nunja, mit Pointern ist das auch sehr einfach (ohne eval's):
d MyDsPtr S * inz(%addr(abtb01))
d MyDs ds based(MyDsPtr)
d abtb like(abtb01) dim(5)
-
ne ne, levelcheck *yes ist an.
und gewandelt wird 'alles' bei aktivierung in der Echtumgebung.
Nur werden leider die Felder da zwischen geschoben, wo es der Chef haben will. Und das ist NIE am Ende.
leider
also fixe Pos. Angaben geht auf keine Fall
also muß der alte Ewald ran..
-
 Zitat von ILEMax
ne ne, levelcheck *yes ist an.
und gewandelt wird 'alles' bei aktivierung in der Echtumgebung.
Nur werden leider die Felder da zwischen geschoben, wo es der Chef haben will. Und das ist NIE am Ende.
leider
also fixe Pos. Angaben geht auf keine Fall
also muß der alte Ewald ran..
Würdest Du mit qualifizierten Datenstrukturen arbeiten, dann könntest Du mit EVAL-CORR arbeiten und die Unterfelder mit gleichem Namen auf einen Rutsch hin- und herschieben.
Birgitta
-
Danke Birgitta
aber, wie schon in einem anderen Thread geschrieben stehe ich mit dem qualified Kram noch auf Kriegsfuß.
hört sich gut an ...
aber z.Zt. fehlt die Zeit das zu inhalieren.
Hast du vielleicht einen Link, in dem das etwas erklährt wird. ?
Vielleicht tu ich mir das am WE mal rein ...
der ILEMax
-
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!)
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