[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2008
    Beiträge
    10

    %subst auf Feldebene bei Logischer Datei

    Hallo!


    Ist es möglich eine logische Datei so zu definieren, dass nur Sätze angeziegt werden, bei welchen im FELD1 die Zeichen 5-7 je im Bereich zwichen 0-9 liegen.

    Also in etwa so %subst(FELD1:5:3) RANGE (0 9)

    Vielen Dank für jeden Tipp!

    lg

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    SST (Substring) keyword—logical files only

    Du kannst so neue Felder definieren und auch in der Auswahl und sogar in den Schlüsseln angeben.

    Wichtig:
    Berechnete Felder sind als I-Felder zu definieren, diese LF kann dann nur als Input verwendet 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

  3. #3
    Registriert seit
    Jul 2008
    Beiträge
    10
    Super, danke! Ist genau was ich suche,
    aber was mache ich falsch, hab meinen Datei wie folgt definiert:

    A UNIQUE
    A R LF08 PFILE(VF8)
    A NR R
    A AKTK R
    A TXT R
    A TXT2 I SST(TXT 5 3) RANGE('000' '999')
    A**------------------------------------------------------------------------
    A K TXT
    A K NR


    Beim Umwandeln bekomme ich folgenden Fehler:

    "Schlüsselwort oder Wert für Feldart oder Konstantenfeld nijcht gültig. Zeichen im angegbenen Feld nicht zulässig. Feld nicht gefunden"

    Sollte doch so funktionieren?

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie ist denn die dazugehörige physische Datei definiert?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    A TXT2 I SST(TXT 5 3)
    A**------------------------------------------------------------------------
    A K TXT
    A K NR
    A S TXT2 RANGE('000' '999')
    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

  6. #6
    Registriert seit
    Jul 2008
    Beiträge
    10
    Hab mir jetzt noch einen neue Datei erzeugt, aber offenbar passt ihm das SST nicht.
    Nehmen ich die Zeile mit SST weg (somit natürlich auch die mit Range) funktioniert es, mit der SST Zeile nicht.
    Hab ich das richtg verstanden, das Feld F8AABN muss es auf der PF nicht geben?

    Meine PF ist wie folgt definiert:


    AUNIQUE
    AREF()
    ARF8PF01
    AF8ABNR RREFFLD(ABNR)
    AF8AKTK RREFFLD(AKTK)
    AF8ETXT RREFFLD(ETXT)
    AF8EVBY RREFFLD(EVBY)
    AF8EVCD RREFFLD(EVCD)
    AF8EVEY RREFFLD(EVEY)
    AF8USRQ RREFFLD(USRQ)
    AF8USRZ RREFFLD(USRZ)
    AF8VKVS RREFFLD(VKVS)
    A**------------------------------------------------------------------------
    AKF8ABNR
    AKF8EVCD
    AKF8EVBY



    logische wiefolgt:

    AUNIQUE
    ARF8LF08 PFILE(WVF8)
    AF8ABNR R
    AF8AKTK R
    AF8ETXT R
    AF8AABN ISST(F8ETXT 5 3)
    AF8EVBY R
    AF8EVCD R
    AF8EVEY R
    AF8USRQ R
    AF8USRZ R
    AF8VKVS R
    A**------------------------------------------------------------------------
    AKF8ETXT
    AKF8ABNR
    AKF8EVCD
    AKF8EVBY
    ASF8EVCD CMP(EQ 'ABN')
    ASF8EVCD CMP(EQ 'KOM')
    ASF8AABN RANGE('000' '999')

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    In welcher Spalte bzw. wo in der Bedienerführung sind denn diese Rs und das I in der logischen Datei angegeben? Kannst du die Definitionen hier im Forum vielleicht besser als CODE (mittels [CODE]Quelltextzeilen[/CODE])schreiben?

  8. #8
    Registriert seit
    Jan 2003
    Beiträge
    759
    es braucht nur einmal "S" (and):

    ASF8EVCD VALUES('ABN' 'KOM')
    A_F8AABN RANGE('000' '999')

  9. #9
    Registriert seit
    Jul 2008
    Beiträge
    10
    Hallo!

    Sorry, das mit den Abständen lässt sich nicht richtig darstellen. (auch mit CODE verschwinden die Leerstellen )

    Die Positionen sollten stimmen, ohne der Zeile mit SST kann die Datei ja umgewandelt werden und funktioniert.
    Das I steht unter den R. Zwischen R und Feldbezeichnung liegen 4 Leerzeichen. Das R links von der Feldbezeichnung ist ein Leerzeichen entfernt. Das SSI sowie das CMP u. RANGE im LF kommt 15 Leerzeichen nach dem I. Die S u. K liegen untereinander und sind ein Leerzeichen vom Namen entfernt.

    Wenn ich die Datei umwandeln möchte bekomme ich in der Zeile, in der das Berechnete Feld definiert ist (F8AABN I SST(F8ETXT 5 3)
    ) folgenden Fehlermeldungen:

    CPD7552: Schlüsselwort oder Wert für Feldart oder Konstantenfeld nicht gültig.
    CPD7410: Zeichen im angegebenen Feld nicht zulässig.
    CPD7926: Feld nicht gefunden.

    Die Meldungen würden für mich bedeuten, dass es das angegeben Feld in der PF nicht gibt. Das ist ja auch so, da das Feld ja nur in der Lf berechnet wird.
    Muss ich da noch irgendwo etwas angeben?

    Danke!

    lg

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Die Beschreibung ist super, jetzt kann ich die Fehler hier reproduzieren!

    Am besten nimmst du die ganzen einzelstehenden R (in Position 29) aus der logischen Datei raus. Und das I muß weiter nach rechts (in Position 38), mit 6 Leerzeichen Abstand zum SST (in der Bedienerführung steht das dann unter "Verwendung"). Dann sollte sich die logische Datei wandeln lassen.

    Beispiel (nach Eingabe des Zeilenbefehls (F=Formatzeile anzeigen) in der Zeile mit dem berechneten Feld):
    Code:
         A          R FORMAT                    PFILE(FELDP)      
         A            BEZ                                         
    .....A..........A.Name++++++.LängeDDsF......Funktionen++++++++
         A            BEZ2               I      SST(BEZ 1 4)      
         A          K BEZ                                         
         A          S BEZ                       RANGE('000' '999')

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Beispiel einer funktionierenden LF mit SST, Key und Select:


    Code:
    R LGSTB                     PFILE(LGST)      
      CBFIRM                    RENAME(CLFIRM)   
      CBWKNR                    RENAME(CLWKNR)   
      CBLANR                    RENAME(CLLANR)   
      CBLONR                    RENAME(CLLONR)   
      CBLONU                    RENAME(CLLONU)   
      CBFR02                    RENAME(CLFR02)   
      CBBLCK             I      SST(CBFR02 1 4)  
      CBTRAV             I      SST(CBFR02 5 2)  
      CBBLGW             I      SST(CBFR02 7 2)  
      CBTVGW             I      SST(CBFR02 9 2)  
                                                 
    K CBFIRM                                     
    K CBWKNR                                     
    K CBLANR                                     
    K CBBLCK                                                                             
    S CBBLCK                    COMP(NE ' ')
    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. SQL zugriff zweimal auf selbe datei
    By steven_r in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 17-09-07, 20:51
  2. kein Konstantes Ergebnis bei CRTDUPOBJ und Datei m.RI
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 19-10-06, 13:55
  3. Berechnungen in logischer Datei
    By itec01 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 27-04-06, 11:29
  4. IFS Datei berechtigungen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 15-06-05, 15:37
  5. Datei binär auf PC übertragen
    By sannefinger in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-05-04, 15:19

Berechtigungen

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