[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    905

    Dataara Free Form RPG

    Manchmal mach ich mir das Leben schon schwör..

    Alte Form von *dtaara's zu definieren:
    C *dtaara define myDta myDtaFld
    C in myDtaFld

    Wie das in Free Form RPG mit einem Charakterfeld geht, weiss ich schon. Nur mit Numerischen Dataareas tu ich mich echt schwer (RNF7421, Kompatibilität). Ausserdem würd ich mich gern auf die Feldlänge der Data Area referenzieren.

    dcl-ds myDtaFld dtaara('myDta');
    *n zoned(3:0);
    end-ds;

    in myDtaFld;

    Ergibt RNF7421 bei einem Compare mit einem gepackten Feld.
    Und die DS hab ich schon mit allen möglichen numerischen Feldarten definiert.

    Weiss da jemand Bescheid? Danke.
    kf

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Referenz auf die DTAARA gibt es nicht.
    Die Variable in der DS benötigt einen Namen denn der Zugrif auf den Strukturnamen ist ein Zeichenfeld!
    Du musst also auf die Variable in der DS zugreifen.
    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
    Nov 2003
    Beiträge
    2.307
    Probier erstmal mit einem eigenständigen Feld als Datenbereich.
    Später kannst du das in eine Datenstuktur packen (eine DS drumherum und das S beim Feld weg).

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Du gibts den Namen der Data-Area in der Definition, innerhalb der Hoch-Komata in Groß/Klein-Buchstaben an.
    Das kann er nicht finden.
    M.E. müsste die Definition wie folgt lauten:
    Code:
    DCL-DS MyDtaFld DTAARA(*AUTO : *USRCTL : ’MYDTA’);
    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

  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    905
    Danke Baldur und Birgitta,

    Hab beide Varianten versucht.

    Lösung:
    dcl-ds MYDTA dtaara('MYDTA');
    myDtaFld zoned(3:0);
    end-ds;

    ergibt zumindest keinen Fehler.

    @Birgitta:
    die GrossKleinSchreibe hab ich nur hier im Forum verwendet.

    Interessanterweise funktioniert ein direkter Zugriff auf die DS, wenn Charakter angegeben sind, wie im ET beschrieben, aber mit numerischen Daten = Bauchlandung.
    kf

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das ist ja auch kein Wunder.
    Eine DS ist vom Typ her grundsätzlich Character!
    Der DS-Name ist nur für die IN/OUT relevant, der Zugriff erfolgt über den Variablennamen.
    Numerische DTAARA's lassen sich nun mal nicht unterstrukturieren.
    Eine Zeichen-DTAARA kann mittels Positionierung und Länge explizit auf bestimmte Bereiche zugreifen (z.B. *LDA), daher ist hier eine DS der bessere Weg.
    Ggf. sollte auch eine Single-Variable (DCL-S) für numerische DTAARA's funktionieren, dann klappt ggf. auch Birgittas Referenzbeispiel.
    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

  7. #7
    Registriert seit
    Jan 2007
    Beiträge
    905
    Dachte, ich informier euch noch wie's richtig funktioniert:

    dcl-s MYDTAFLD packed(3:0) dtaara('MYDTA');
    in MYDTAFLD;
    kf

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wie gesagt, es klappt auch mit einer DS und der korrekten benannten Unterdefinition.
    Schließlich nutze ich das durchaus in Triggern.
    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. UDS und *dataara
    By ILEMax in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 08-01-16, 09:23
  2. Dataara mit SQL lesen
    By dibe in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 13-10-15, 08:48
  3. RPG Free Form TR7
    By camouflage in forum IBM i Hauptforum
    Antworten: 29
    Letzter Beitrag: 19-11-13, 14:52
  4. Free-RPG
    By Gimli in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 03-03-03, 10:23
  5. NEWS/400-Magazin in digitaler Form?
    By Peter Janocha in forum NEWSboard load'n'go
    Antworten: 1
    Letzter Beitrag: 04-04-01, 18:38

Berechtigungen

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