View Full Version : gleiche Felder innerhalb zweier Datenstukturen kopieren
Ich möchte gleiche Felder, mit gleichen Namen und Feldgrößen von einer Datenstruktur auf eine ander übertragen. Dies soll aber nicht einzeln sondern mit einem Rutsch geschehen, da es sich um sehr viele Felder handelt. Die Datenstruktur in die ich kopieren will hat aber mehr Felder so das ich das Ganze nicht per MOVEA machen kann.
Geht das irgendwie?
Wenn die Datenstruktur-Unterfelder gleich heißen und mindestens eine der beiden Datenstrukturen qualifiziert ist (anders erhält man eh' keine doppelten Unterfelder) und Du mindestens auf Release V5R4 bist, kannst Du in RPG den OPcode EVAL-CORR verwenden.
Felder mit gleichem Namen werden übertragen, alle ungleichen Felder bleiben unverändert:
/Free
Eval-Corr DS2 = DS1;
/End-Free
Birgitta
Gibt es eigentlich eine Möglichkeit, eine Feldgruppe direkt aus einem Satzformat heraus zu füllen ? Ich habe ein Format mit mehreren unterschiedlichen Feldern und dann 53 Felder mit Wochenumsätzen. Diese 53 Felder möchte ich in einen Array einlesen. habs mit likeds, likerec und overlay versucht, der Compiler lässt mich aber nicht, da wohl das Satzformat nicht überlagert werden darf. Muss dann wohl doch eine neue DS mit den 53 Feldern definieren und dann mit einem Array überlagern. Oder wisst Ihr eine Lösung ???
Gruß
Roger
Hilft wohl nur überlagerte Datenstruktur oder mit Pointer Handling zu arbeiten, wobei ich allerdings die 1. Variante vorziehen würde.
D MyDS DS
D MyFileFld1
D MyFileFld2
D MyFileFld3
....
D MyFileFld53
D MyArr Dim(53) Like(MyFileFld1)
D Overlay(MyDS)
/Free
Chain (MyKey1: MyKey2: ... MyKeyN) MyFile;
If %Found;
For Index = 1 to 53;
Dsply MyArr(Index);
EndFor;
EndIf;
/End-Free
Birgitta
Und wem der Schreibaufwand zu groß ist, der kann eine DS mit externer Beschreibung definieren und nur den Array-Part anhängen.
So habe ich das schon in OPMRPG gemacht.