[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    79

    Wie erhalte ich Subfelder einer qualifizierten externen Datenstruktur in RPGLE?

    Hallo Forum!

    Ich nutze die Möglichkeiten des Datei-Prefixings zusammen mit den Möglichkeiten der Qualifizierung einer (externen) Datenstruktur, um die Felder im RPG-Programm wie folgt ansprechen zu können:


    F Datei if e disk prefix('AB.')
    D AB e ds extname(Datei) qualified

    AB.Datum = 1234567


    Welche D-Anweisung ermöglicht es mir, auf die Stellen 2-7 des Feldes Datum (7,0 num.) zugreifen zu können?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Am besten mit der BuiltIn-Funktion %subst:

    %subst(feld: pos:len) = "neuer wert";
    Varxyz = %subst(feld: pos:len);
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Overlay

    Hallo Collie,

    externe Datenstrukturen können wie alle anderen Datenstruktruen überlagert werden.
    Wichtig ist nur, dass das zu überlagernde Feld mit dem Original-Namen angegeben wird.
    Ich persönlich würde jedoch lieber mit Substring arbeiten.

    Beispiel:
    FldAlpha ist 15A auf Position 486 des Datensatzes
    FldNum ist 7P 0 auf Position 375 des Datensatzes.
    Code:
    D MainDSIn      E DS                  EXTNAME(LLDSIN) qualified  
    D   NewFld1                      4    overlay(FldAlpha: 3)           
    D   NewFld2                      5P 0 overlay(FldNum: 2)
     /Free                            
       MainDSIn.FldAlpha = 'ABCDEFGHIJ';  
       dsply MainDSIn.NewFld1;        
                                      
       MainDSIn.FldNum = 1234567;       
       dsply MainDSIn.NewFld2;        
                                      
       *InLR = *On;                   
     /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

  4. #4
    Registriert seit
    Apr 2004
    Beiträge
    79
    Vielen Dank für die prompte Beantwortung.

    Grüße
    coolie

  5. #5
    Registriert seit
    Apr 2004
    Beiträge
    79
    Hallo Birgitta,

    zuerst mal ein dickes "Danke schön" für die letzten Hilfen.

    Der Hinweis mit dem overlay wäre mir ja die liebste Lösung, aber funktioniert leider nicht so wie's sollte.

    Nochmals in Kürze:

    Datei BUCHUNGEN enthält ein Feld FLDNUM in Länge 7P 0, welches ein Datum im Format CYYMMDD enthält.

    Für diese Datei existiert im Programm eine qualifizierte externe Datenstruktur.

    Ich möchte vom Feld FLDNUM die rechten 6 Stellen erhalten, also YYMMDD.

    Die vorgeschlagene Overlay-Definition (NEWFLD2 5P 0 overlay(FLDNUM: 2) wird zwar vom Compiler umgewandelt, ergibt aber als Ergebnis den falschen Feldinhalt "YMMDD".

    Definiere ich aber

    d BU e ds extname(Buchungen) qualified
    d NewFld2 6p 0 overlay(FldNum : 2)

    so erhalte ich die Fehlermeldung:

    *RNF7303 Mit dem Schlüsselwort OVERLAY definiertes Unterfeld NEWFLD2 ist zu groß; die Bestimmung wird ignoriert.

    Was mache ich denn da falsch??

    Grüße
    coolie

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Einfach rechnen !
    6p 0 beginnt an der Stelle 1, nur die linke Tetrade wird ignoriert. Ob zur Laufzeit aber das richtige Ergebnis kommt, kann ich nicht sagen.
    Vorsichtig dann bei Zuweisungen. Die linke Tetrade wird dann immer auf 0 gesetzt !
    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. Datumfeld in RPGLE löschen
    By Mr.iSeries in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 17-01-07, 10:57
  2. Cobol <> RPGLE
    By Xanas in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 13-12-06, 13:38
  3. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  4. Datenstruktur
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 24-07-06, 13:25
  5. Antworten: 5
    Letzter Beitrag: 03-08-05, 15:11

Berechtigungen

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