[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2004
    Beiträge
    5

    Question LIKEDS / QUALIFIED -> Werte von Datei in Struktur

    Ich habe folgendes Problem.

    In einem alten Programm sind Felder von verschieden Dateien zu einer Struktur zusammen gefasst. nur bei einer Änderung der Struktur werden die entsprechenden Werte in den Dateien geupdatet. Jetzt sollen neue Felder aus den Dateien hinzukommen. Diese müssen aber logisch zusammen gefasst hinzugefügt werden.

    Beispiel:

    Alte Struktur:
    VARI001 100 100
    VARI002 101 101
    VARI006 102 102
    VARI.....
    VARI999 199 199
    VAR 100 199 DIM(999)
    NAMEXXX 200 219
    PLZ 220 226
    ......
    FELDER 200 459

    Neue Struktur:
    VARI001 100 100
    VARI002 101 101
    VARI003 102 102 Neu
    VARI006 103 103
    VARI.....
    VARI999 199 199
    VAR 100 199 DIM(999)
    NAMEXXX 200 219
    PLZ 220 226
    .......
    FELDER 200 459


    Ich möchte jetzt die logisch zusammen gehörigen Bereiche der großen Datenstruktur in kleine Datenstrukturen unterbringen und dann diese durch QUALIFIED und LIKEDS zusammenführen. Dies klappt soweit dass ich die Strukturen verbinden kann. Die Gesamtstruktur weist aber keine Werte aus der Datei auf.


    Mache ich etwas falsch?
    Gibt es eine bessere Methode?

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928

    Qualified

    Hallo,

    ich bin nicht ganz sicher, ob ich Dein Problem richtig verstanden habe.

    Aber in dem Moment, in dem Du mit qualified arbeitest, ist der Name nicht mehr FELD1 sondern DATENSTRUKTUR.FELD1.

    Was hälst Du davon eine Datenstruktur über diese kleinen Datenstrukturen zu legen?

    PHP-Code:
    D Adresse         DS                  Qualified based(DummyPtr)   
    D  Vorname                      20A                               
    D  Name                         20A                               
    D  Strasse                      20A                               
    D  PLZ                           6P 0                             
    D  Ort                          20A                               
                                                                      
    D KundenInfo      DS                  qualified                   
    D KundenNr                      10A                               
    D LieferAdresse                       likeDS
    (Adresse)             
    D RechnungsEmpf                       likeDS(Adresse)             
    D Hauptverwalt                        likeDS(Adresse)             
                                                                      
    D LieferantInfo   DS                  likeDS(KundenInfo)          
     *---------------------------------------------------------
     /
    Free                                           
       KundenInfo
    .LieferAdresse.Ort 'FRANKFURT';   
       
    LieferantInfo.LieferAdresse.Ort 'MUENCHEN';   
     /
    End-Free 
    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Oct 2004
    Beiträge
    5
    Das ist nicht das Problem.
    Ich möchte das die Daten durch die Werte aus der Datei gefüllt werden. In den einzelnen Strukturen sind diese Daten auch vorhanden. Um aber einen Vergleich von Daten einem Update vom Benutzer und Daten nach der Veränderung durchführen zukönnen möchte ich die verschiedenen Strukturen zu einer Struktur zusammenfassen. Das gelingt auch. Wenn ich aber die gesammte "große" Datenstruktur anspreche enthält dies nicht die Werte aus der Datei. Ziel des ganzen ist es das ich eine Struktur habe die die ursprünglichen Werte beinhaltet und eine Struktur mit den geänderten Werten. Diese sollen dann verglichen werden. hat sich dann an den Werten etwas geändert soll der Satz in der Datei geupdatet werden.

    D Adresse DS Qualified based(DummyPtr)
    D Vorname 20A
    D Name 20A
    D Strasse 20A
    D PLZ 6P 0
    D Ort 20A

    D VAR DS Qualified based(DummyPtr)
    D VAR001 20A
    D VAR002 20A
    D VAR003 20A


    D VORHER
    DS qualified
    D LieferAdresse likeDS
    (Adresse
    )
    D Varianten likeDS(VAR
    )

    C* Struktur NACHHER wie VORHER aufgebaut
    C LIKE VORHER NACHHER


    C VORHER IFEQ NACHHER
    C MOVEL(P) NACHHER VORHER
    C UPDATE DATEI
    C ENDIF

    Datenstruktur VORHER wird durch Werte aus Datei gefüllt.


  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dateifelder sind Einzelfelder, die NICHT per Qualified angesprochen werden. D.h., der Feldname der Datei ist nicht mehr identisch zum Feldnamen der Struktur !

    Beispiel siehe Birgitta:

    FELD1 <= Deteifeld
    Struktur.FELD1 <= eigenes Feld der Struktur
    Struktur2.FELD1 <= anderes Feld, da andere Struktur

    Dein Problem kannst du nur mit Einzel-Move's lösen !
    Oder du definierst eben 2 Strukturen:

    d DS1 ds extfile(myfile)
    d DS2 ds exfile(myfile) prefix(d2)

    Durch den Read wird DS1 gefüllt, durch "eval DS2 = DS1" kannst du diese retten und anschließend die Einzelfelder vergleichen.

    Qualified geht nicht für Dateien, da diese nicht in Strukturen verarbeitet werden. Erst durch eine Struktur mit identischen Feldnamen erreicht man die Verarbeitung als Struktur.
    Macht man dies nicht, sind die Felder ja trotzdem ansprechbar und zwar so als ob man sie als Single-Felder definiert hätte:

    D FELD1 S ...
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nachtrag:

    Da in RPG ein Feld immer nur einmal vorkommt, kannst du das, was du vorbereitet hast doch verwenden:

    D Adresse DS
    D Feld1 30
    D Feld2 30
    :
    :

    D SVAdresse ds likeds(Adresse) qualified

    In die Struktur Adresse werden die Daten beim Lesen übertragen.
    Per EVAL kannst du nun die Strukturen sichern (eben nicht jedes Feld einzeln) und so anschließend die Strukturen vergleichen.

    Es gibt nun das Feld "Feld1" als auch das Feld "SVAdresse.Feld1".
    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

Similar Threads

  1. Konvertierung nach Graphic --> CCSID Problem
    By codierknecht in forum NEWSboard SAP
    Antworten: 32
    Letzter Beitrag: 09-02-18, 13:00
  2. QueryManager / Query ---> Aufruf mit Variablen
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 29-11-06, 18:07
  3. Datei aus IFS holen
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-05-06, 13:47
  4. SQL -> CREATE VIEW
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 11-05-06, 14:57
  5. IFS Datei berechtigungen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 15-06-05, 15:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •