-
RPG Anfänger braucht hilfe bei Datenstrukturen
Hallo zusammen,
ich habe 2 Datenstrukturen z.B.
D Ds
DSchlüssel 1 7
DWERK 1 2
DFORM 3 7
D Ds
DLesen 1 7
DWERK 1 2
DGlasur 3 7
Wenn ich es jetzt so umwandle kommt die Fehlermeldung das Werk bereits definiert wurde.
Kann man das gleiche Feld nicht in mehreren Datenstukturen verwenden?Wenn doch wie???
Vielen Dank im vorraus.
-
Zitat von woodstock99
Hallo zusammen,
ich habe 2 Datenstrukturen z.B.
D Ds
DSchlüssel 1 7
DWERK 1 2
DFORM 3 7
D Ds
DLesen 1 7
DWERK 1 2
DGlasur 3 7
Wenn ich es jetzt so umwandle kommt die Fehlermeldung das Werk bereits definiert wurde.
Kann man das gleiche Feld nicht in mehreren Datenstukturen verwenden?Wenn doch wie???
Vielen Dank im vorraus.
Du kannst für Werk einen Schlüßel verwenden, wie folgt:
Schlüssel [DWRK Lesen]
*LIKE DEFINE DWRKL kyDWRKL
kyDWRKL KLIST
KFLD kyDWRKL
Schlüssel [DWRK Schreiben]
*LIKE DEFINE DWRKS kyDWRKS
kyDWRKS KLIST
KFLD kyDWRKS
dazu gehört noch eine referenzierung wie folgt:
A R ##REFREC
A ##DWERK
A #DWRKL R REFFLD(##DWERK)
A #DWRKS R REFFLD(##DWERK)
Aufgrund eines Fehlers meinerseits habe ich 2 Antworten produziert.
Bitte die Komplettere Spätere Antwort lesen, danke
Gruß As400.lehrling
-
Zitat von woodstock99
Hallo zusammen,
ich habe 2 Datenstrukturen z.B.
D Ds
DSchlüssel 1 7
DWERK 1 2
DFORM 3 7
D Ds
DLesen 1 7
DWERK 1 2
DGlasur 3 7
Wenn ich es jetzt so umwandle kommt die Fehlermeldung das Werk bereits definiert wurde.
Kann man das gleiche Feld nicht in mehreren Datenstukturen verwenden?Wenn doch wie???
Vielen Dank im vorraus.
Du kannst für Werk einen Schlüßel verwenden, wie folgt:
Schlüssel [DWRK Lesen]
*LIKE DEFINE DWRKL kyDWRKL
kyDWRKL KLIST
KFLD kyDWRKL
Schlüssel [DWRK Schreiben]
*LIKE DEFINE DWRKS kyDWRKS
kyDWRKS KLIST
KFLD kyDWRKS
dazu gehört noch eine referenzierung wie folgt:
A R ##REFREC
A ##DWERK
A #DWRKL R REFFLD(##DWERK)
A #DWRKS R REFFLD(##DWERK)
Dan müßen die Schlüßel noch mit der referenzdatei zusammen gebracht werden :
Nr 1
A REF(Name der referenzdatei)
A UNIQUE
A R DWRKL
* SCHLÜSSEL
A K DWRKL
Nr 2
A REF(Name der referenzdatei)
A UNIQUE
A R DWRKS
* SCHLÜSSEL
A K DWRKS
Nr 1+2 müßen separate dateien sein.
Ist nicht schönn, fehlerfreiheit wird auch nicht garantiert aber es sollte zur Funktion führen
Die Namen für die referenzdatei und die definitionsdateien mußt du dir deiner creativität anpassen
Ansonsten kannst du hier -=* Rechenzentrum Kreuznach *=- auch gegen einen geringen Obolus ein gutes Grundlagen nachschlagewerk erhalten.
Gruß As400.lehrling
-
Danke für deine Antwort aber ich glaub die hilft mir nicht weiter. Das waren ja nur zwei beispiele einer Ds. Das eigentliche Problem ist das ich ein Feld nicht in 2 oder 3 usw. Datenstrukturen angeben kann weil mir der Compiler beim umwandeln sagt das dass Feld schon definiert ist. Im obrigen Beispiel möchte ich das Feld Werk in 2 verschiedenen Datenstrukturen unterbringen damit ich es nur einmal füllen muß und nicht werk und z.B. werk1 daraus machen muß
-
Zitat von woodstock99
Danke für deine Antwort aber ich glaub die hilft mir nicht weiter. Das waren ja nur zwei beispiele einer Ds. Das eigentliche Problem ist das ich ein Feld nicht in 2 oder 3 usw. Datenstrukturen angeben kann weil mir der Compiler beim umwandeln sagt das dass Feld schon definiert ist. Im obrigen Beispiel möchte ich das Feld Werk in 2 verschiedenen Datenstrukturen unterbringen damit ich es nur einmal füllen muß und nicht werk und z.B. werk1 daraus machen muß
Genau darum geht es bei der Referenzierung: Einfache mehrfach benutzung von Feldern.
Im Ersten Schritt wird die zugrunde liegende Feld DWERK definiert.
In den weiteren Zeilen schaffe ich mir 2 Unterschiedliche Felder die als Referenzgrundlage das bereits definierte Feld DWERK benutzen, da kann man dan auch noch die Feldlängen verändern.
Durch die Schlüßel werden klare zugriffswege definiert die durch zugabe von unique einmalig sind.
Die datenstruktur DWERK kann nun mehrfach benutzt werden.
Irrtümer und Fehler vorbehalten
AS400.lehrling
-
Dann würde ja deine Datenstruktur so aussehen oder??
D Ds
DSchlüssel 1 7
Dwrkl 1 2
DFORM 3 7
D Ds
DLesen 1 7
Dwrks 1 2
DGlasur 3 7
und genau das will ich nicht ich das sie so aussieht
D Ds
DTest 1 7
Dwerk 1 2
DFORM 3 7
D Ds
Dtest1 1 7
Dwerk 1 2
DGlasur 3 7
Das muss doch irgendwie mit Zeiger gehen die man in in Definitionsbestimmungen angeben kann.
-
Zitat von woodstock99
Dann würde ja deine Datenstruktur so aussehen oder??
D Ds
DSchlüssel 1 7
Dwrkl 1 2
DFORM 3 7
D Ds
DLesen 1 7
Dwrks 1 2
DGlasur 3 7
und genau das will ich nicht ich das sie so aussieht
D Ds
DTest 1 7
Dwerk 1 2
DFORM 3 7
D Ds
Dtest1 1 7
Dwerk 1 2
DGlasur 3 7
Das muss doch irgendwie mit Zeiger gehen die man in in Definitionsbestimmungen angeben kann.
Begebe dich mal hierher -=* Rechenzentrum Kreuznach *=- und lade dir das kostenlose Grundbuch herunter, das könnte dir schonn helfen.
-
nein das glaub ich nicht. ich glaub wir reden aneinander vorbei. das problem haben wir in der arbeit und das hat gar nix mit dateien usw zu tun.aber trotzdem danke
-
Zitat von woodstock99
nein das glaub ich nicht. ich glaub wir reden aneinander vorbei. das problem haben wir in der arbeit und das hat gar nix mit dateien usw zu tun.aber trotzdem danke
Nur am Rande gefragt:
Haben die Datenstrukturen keine Namen? Und hat das Feld "Schlüssel" wirklich einen Umlaut im Namen? ;-)
-h
-
Benenne die Datenstrukturen und gib das Schlüsselwort Qualified an. Die Datenstruktur-Unterfelder müssen dann qualifiziert angegeben werden, d.h. DS.Unterfeld.
Bei unqualifizierten Datenstrukturen müssen die Unterfelder eindeutig sein.
PHP-Code:
D MyDS1 DS Qualified
D Fld1 10A
D Fld2 5P 0
D MyDS2 DS Qualified
D Fld1 15A
D Fld3 10I 0
D MyDS3 DS Qualified
D Fld2 15P 5
D Fld3 20A Varying
/Free
MyDS1.Fld1 = 'ABC';
/End-Free
Birgitta
-
Verwirrung ?
Im RPG und auch RPGLE kann jedes verwendete Feld nur genau 1 Mal vorkommen.
Ist das Feld also einer Struktur bereits zugeordnet, kann man es keiner 2. Struktur zuordnen.
Dies lehnt der Compiler schon mal ab.
Auch "Qualified" umgeht das Problem nicht sondern definiert das Feld eben ein 2. oder 3. oder n. Mal, da der Name nun immer qualifiziert angegeben werden muss und die Struktur nun auch einen Namen benötigt:
Ds1.Feld
Ds2.Feld
Ds3.Feld
:
Die Aufgabenstellung, nur 1 Move/Eval und alle Vorkommen der Felder sind gefüllt, kann nie realisiert werden.
-
Vielen Dank für die Antworten.
@ HolgerScherer. Natürlich haben die Felder Umlaute. Wenn man genau hinsieht sogar 2 . Sorry Mein Fehler !!!
Nein Sorry war ne blöde Angabe und das ich es evtl so umständlich formuliert habe aber Herr Fuerchau hat die Problematik genau erfasst.Einmal einen Eval oder Move absetzen und das Feld in den unterschiedlichen Datenstrukturen ist gefüllt. Schade das es nicht funktioniert. Hätte mir eine Menge definitions und hin und her gemove erspart . Gruß
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By remo2010 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-11-06, 13:31
-
By DeadlyPunch in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 23-12-05, 09:17
-
By ASY in forum NEWSboard Programmierung
Antworten: 27
Letzter Beitrag: 23-08-05, 18:04
-
By Micha23 in forum IBM i Hauptforum
Antworten: 30
Letzter Beitrag: 17-12-04, 07:41
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