[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2005
    Beiträge
    34

    LikeRec oder Overlay oder ganz was anderes ?

    Hallo,

    ich habe mal wieder ein kleines Problem:

    Am besten poste ich mal den Source zu meinem Problem:

    Code:
    D ind1            S              3I 0 Inz(1)
     *
    D VarField        S             30    Dim(20)
    /Free
        Read DBDatei;
        DoW Not %Eof(DBDatei) and ind1 <= 20;
           VarField(ind1) = DBFeldName;
           Read DBDatei;
           ind1 = ind1 + 1;
        EndDo;
        D_Feld01 = VarField(1);
        D_Feld02 = VarField(2);
        D_Feld03 = VarField(3);
           .     .     .
           .     .     .
           .     .     .
        D_Feld20 = VarField(20);
        ExFmt TabelleS1;
         *InLR = *On;
         Return;
    /End-Free
    Die Felder D_Feld01 - D_Feld20 sind OUTPUT-Felder einer DSPF-Datei. Diese Felder werden hier aus einer DBDatei vor Aufruf der Maske gefüllt.

    So, nun zu meiner Frage : Wie kann ich die 20 Zuweisungen umgehen ?

    Ich habe mit LikeRec und mit Overlay experimentiert, im Forum gelesen, IBM-Literatur gelesen - nichts hat geholfen (oder ich habs halt noch nicht verstanden)

    Kann mir da jemand helfen ?
    Vielen Dank.

    Gruß

    KaFi

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    D MyDs DS
    D MyFields 600
    D Field 30 dim(20) overlay(MyFields)
    D DS01 30 overlay(MyFields:1)
    D DS02 30 overlay(MyFields:31)
    :
    D DS20 30 overlay(MyFields:571)
    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
    May 2005
    Beiträge
    34
    Danke, für die Antwort.

    Ich habe deinen Vorschlag übernommen - Das wird auch Fehlerfrei übersetzt ...

    aber wie bekomme ich die "Verknüpfung" zu den Feldern in der DSPF-Datei hin ?
    In den Feldern D_Feld01 - D_Feld20 steht nach wie vor nichts

    Gruß

    KaFi

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Durch die Namensgleichheit!
    Ein Feld in einer DS muss nur genauso heißen wie in einer Datei. Das darf aber nur einmal gemacht werden, da ein Name nur 1x pro DS (ausser bei Qualiefied, was mit Datei nur in ILE geht) definiert werden kann.

    Du kannst dir ggf. die Tipparbeit sparen, wenn du dir die DS per LikeRec(DSPF-Satz) definierst, dir die Anfangsposition merkst und dann per

    D MyFields AnfPos EndPos 30 dim(20)

    in die selbe DS packst.
    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
    Aug 2001
    Beiträge
    2.875
    Angenommen die 20 Felder aus der Datenbank Datei heißen xxFld1 - xxFld20 und die Felder in der Display File heißen DspfFld01 - DspFFld20 kann wie folgt vorgegangen werden:
    Die Datei-Felder werden in einer Datenstruktur hinterlegt und mit einer Feldgruppe überlagert.
    Dabei ist keinerlei Länge-Angaben notwendig!!! Überlagerte Felder sind allein durch die Überlagerung definiert und Felder, die in einer Datei in den F-Bestimmungen definiert wurden sind ebenfalls definiert. Werden unqualifizierte Datenstrukturen verwendet, werden die Felder automatisch beim Lesen gefüllt und beim Schreiben fortgeschrieben.

    PHP-Code:
    D DSDspf          DS                                              
    D   DspfFld01                                                     
    D   DspfFld02                                                     
    D   DspfFld03                                                     
    D                                                                 
    D   DspfFld19                                                     
    D   DspfFld20                                                     
    D   FgDspF                            Like
    (DspfFld01Dim(20)     
    D                                     overlay(DSDspf)             
                                                                      
    D DSDBFile        DS                                              
    D   XXFld1                                                       
    D   XXFld2                                                       
    D   XXFld3                                                       
    D                                                                 
    D   XXFld19                                                       
    D   XXFld20                                                       
    D   FGDBFile                          Like
    (XXFld1Dim(20)       
    D                                     overlay(DSDBFile)           
                                                                      
     /
    Free      
         Read DBFile
    ;                                                      
         
    FgDspF FgDBFile;
         
    Exfmt DSPF;
         
    //Eingabe-Prüfung
         
    FgDBFile FgDSPF;
         
    Update DBFile;  
     /
    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich staune immer wieder wieviel Gehirnschmalz manche Leute verbraten um unleserliche Programme zu schreiben.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Manchmal würde es aber auch nichts schaden, wenn manche Leute sich (mehr) Gedanken darüber machen würden, wie man den Code so schreiben kann, dass er auch in einem halben Jahr noch/wieder lesbar ist.

    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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Und noch ne Variante:
    In den I-Bestimmungen der Datenbank-Datei die Felder einfach passend zur DSPF umbenennen.

    Das ganze funktioniert allerdings nur, wenn die Definition identisch ist.
    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

  9. #9
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Manchmal würde es aber auch nichts schaden, wenn manche Leute sich (mehr) Gedanken darüber machen würden, wie man den Code so schreiben kann, dass er auch in einem halben Jahr noch/wieder lesbar ist.

    Birgitta
    Dafür gibts doch Programmgeneratoren (mit lesbarem Meta-Code), die dann ruhig unleserliches RPG produzieren können ;-)

    -h

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Jepp, das hatte ich früher mal mit Signon, nach Analyse der generierten Quellen entschieden wir uns damals doch für native Programmierung.
    Die Programm waren dann erheblich leichter zu warten (vom Ressourcen- und Laufzeit-Bedarf der generierten Objekte mal ganz abgesehen).
    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

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    - das Ding hieß SYNON
    - die Entscheidung war richtig
    - die Begründung der Entscheidung falsch

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Jepp, das hatte ich früher mal mit Signon, nach Analyse der generierten Quellen entschieden wir uns damals doch für native Programmierung.
    Die Programm waren dann erheblich leichter zu warten (vom Ressourcen- und Laufzeit-Bedarf der generierten Objekte mal ganz abgesehen).
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Stimmt, aber die Begründung war genau diese (nach eingehender Analyse).
    Die Planung damals sah 70 AS/400-System Modell F02 mit 4MB Hauptspeicher und 988MB Platte vor.
    Hätten wir SYNON behalten, wären die Systeme nicht ausreichend gewesen.
    Bei den damaligen Hardwarepreise wären statt 4,5MIO DM ca. 25MIO DM nötig gewesen.

    Heute kostet die Hardware ja vergleichbar wenig.

    Ansonsten gehört das ja wohl gar nicht mehr zum Thema.
    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. Overlay aus Druckerpuffer löschen
    By helsing in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 04-10-06, 11:54
  2. Subfile + Overlay und letzter Datensatz
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-06, 08:47
  3. overlay funktioniert nicht
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-05-06, 07:59
  4. Overlay Erstellung
    By sommert in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 16-02-06, 09:55
  5. Problem mit AFP Overlay
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 30-09-05, 13:55

Berechtigungen

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