[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2021
    Beiträge
    11

    LF mit 2 Formaten

    Hallo liebes Forum,

    ich habe eine Frage zu einem LF mit 2 Formaten.
    Lt. Programm sollte es die Kilometer ermitteln.

    Code:
    FRELATDL1  IF   E           K DISK
    
    C     RELKEY        KLIST                            
    C                   KFLD                    AORT   (=WIEN)
    C                   KFLD                    EORT   (=SALZBURG)
    Code:
    SELECT * FROM relatdp            
     WHERE REBLO = 'SALZBURG'     
       and REELO = 'WIEN'     
         Beladeort        ENTLADEORT       km  
    1    SALZBURG         WIEN             296
    2    WIEN             SALZBURG         296
    Obwohl es den Datensatz WIEN-Salzburg gibt findet er das im Chain nicht.

    Code:
    relkey        chain     relatdl1       
                  if        %found         
                  eval      milage = rekma   
                  endif
    Kann das so eigentlich funktionieren mit diesen 2 Formaten in den logischen Datei?
    Müssten da alle Keys angegeben werden?

    In Faktor 2 den Format angeben hat auch nicht funktioniert da ich dann den Key nicht angeben kann.


    PF: RELATDP
    Code:
    A                                      UNIQUE
         A          R RELATD                    TEXT('RELATIONSDATEI')
          *
         A            REBLO     R               TEXT('BELADEORT             ')
         A            REELO     R               TEXT('ENTLADEORT            ')
         A            REKMI     R
         A            REBPLZ         9          TEXT('PLZ Beladeort         ')
         A            REEPLZ         9          TEXT('PLZ Entladeort        ')
         A            REKMA     R
         A            REKMI1    R               REFFLD(REKMI)
         A            REKMA1    R               REFFLD(REKMA)
         A            REKMI2    R               REFFLD(REKMI)
         A            REKMA2    R               REFFLD(REKMA)
         A            REBLSL         3          TEXT('Landschl. Beladeort   ')
         A            REELSL         3          TEXT('Landschl. Entladeort  ')
         A*
         A*
         A          K REBLO
         A          K REELO
         A          K REBLSL
         A          K REELSL
         A          K REBPLZ
         A          K REEPLZ
    Logische: RELATDL1
    Code:
         A          R RELATDF1                  PFILE(*LIBL/RELATDP)
         A*
         A            REBLO     R
         A            REELO     R
         A            REROU     R
         A            REKMI     R
         A            REKMA     R
         A*           :
         A            REBLSL    R
         A            REELSL    R
         A*           :
         A            REBPLZ    R
         A            REEPLZ    R
         A            REKMMG    R
         A*
         A*
         A          K REBLO
         A          K REELO
         A          K REBLSL
         A          K REELSL
         A          K REBPLZ
         A          K REEPLZ
         A*
         A          R RELATDF2                  PFILE(*LIBL/RELATDP)
         A*
         A            REBLO     R
         A            REELO     R
         A            REROU     R
         A            REKMI     R
         A            REKMA     R
         A*           :
         A            REBLSL    R
         A            REELSL    R
          *           :
         A            REBPLZ    R
         A            REEPLZ    R
         A*
         A          K REELO
         A          K REBLO
         A          K REELSL
         A          K REBLSL
         A          K REEPLZ
         A          K REBPLZ
    Dank im Voraus

    Kaya

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    746
    Wozu eigentlich die LF, es verweisen doch beide Satzformate auf die gleiche PF? Alternative wäre ein Zugriff per SQL statt Chain, auf eine View RELATDV1 mit den beiden "Satzformaten" via UNION und entsprechend getauschten Feldern im jeweiligen Select).

  3. #3
    Registriert seit
    Aug 2021
    Beiträge
    11
    Ein Ex-Kollege hat mir den Rat gegeben mit auf den Satzformatnamen zu chainen:
    chain relkey RELATDF1;

    Ich verstehe nur nicht den Sinn von 2 Satzformaten in einer Logischen.
    Das meiste mache ich mit Sql aber es gibt halt noch viele Pgm die noch umgestellt gehören...

  4. #4
    Registriert seit
    Jan 2003
    Beiträge
    746
    Hallo GUK, der Trick mit den zwei Satzformaten ist (war seinerzeit) gar nicht mal so schlecht, hat man doch die beiden Felder Von und Nach jeweils getauscht "untereinander" ;-)

    Und, gerade sehe ich, dass es Chain(E) heißen sollte damit if %found ein Ergebnis liefert...

  5. #5
    Registriert seit
    Aug 2021
    Beiträge
    11
    Ich dachte mir schon das ein cooler Trick dabei ist, aber ich bin nicht drauf gekommen und habe es auch nicht googlen können.
    Und das wollte ich niemanden zu nahe treten und sauge das Wissen gerne auf.

    Mit Chain(E) liest er dann den nächstes Satzformat bei einem Error?
    Weil jetzt funktioniert es auch ohne (E).

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    SQL unterstützt keine Multiformat-LF's, da wird nur die 1. PF der LF verwendet.
    Per "Chain Dateiname" wird jedes Format gefunden. Die INFDS sagt dir dann, welches Format ggf. gelesen wurde.
    Per "Chain Formatname" wird nur die gewünschte PF gelsen.

    Für SQL kannst du das nur als Union-View erstellen um es mit SQL zu lesen.
    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. Drucker mit A5 Formaten........
    By vorderhaus in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 11-07-02, 08:04
  2. Drucker mit A5 Formaten........
    By vorderhaus in forum NEWSboard Drucker
    Antworten: 0
    Letzter Beitrag: 10-07-02, 19:01

Berechtigungen

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