[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Nov 2007
    Beiträge
    371

    Post 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.

  2. #2
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von woodstock99 Beitrag anzeigen
    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

  3. #3
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von woodstock99 Beitrag anzeigen
    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

  4. #4
    Registriert seit
    Nov 2007
    Beiträge
    371
    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ß

  5. #5
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von woodstock99 Beitrag anzeigen
    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

  6. #6
    Registriert seit
    Nov 2007
    Beiträge
    371
    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.

  7. #7
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von woodstock99 Beitrag anzeigen
    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.

  8. #8
    Registriert seit
    Nov 2007
    Beiträge
    371
    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

  9. #9
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von woodstock99 Beitrag anzeigen
    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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Nov 2007
    Beiträge
    371
    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

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Hilfe! Rollback bei Transaktionen funktioniert nicht
    By remo2010 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 23-11-06, 13:31
  3. Visual Age RPG kann Hilfe nicht laden
    By DeadlyPunch in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 23-12-05, 09:17
  4. Brauche Hilfe bei ersten Gehversuchen in RPG
    By ASY in forum NEWSboard Programmierung
    Antworten: 27
    Letzter Beitrag: 23-08-05, 18:04
  5. Brauche Hilfe bei RPG III
    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
  •