[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    6

    Zwei Subfiles, falsche RCDNBR

    Hallo zusammen,

    ich habe ein großes Problem und hoffe, dass mir jemand helfen kann:

    Ich habe ein COBOL-Programm mit zwei Subfiles geschrieben. Das PGM an sich funktioniert tadellos. Leider scheint es so, dass im unteren SFL die Satznummer nicht erkannt wird, bzw. nicht richtig gefüllt wird. Ich habe im DSPF zwei Formate (K1 ist oben, K2 ist unten) und in beiden Formaten jeweils ein Feld SFLRCDNBR angegeben. Für das K1-Format funktioniert das, nur wenn ich im K2-Format runterblättere und anschließend wieder hoch, so springt der Subfile jedesmal wieder zur zuletzt gelesenen Seite zurück. Die I-O-Feedback-Area hat das richtige Format (K2), aber die RCDNBR ist nicht richtig gefüllt. Weiß jemand, wie ich das lösen kann, bzw. habe ich mich überhaupt verständlich ausgedrückt?

    Wenn Fragen sind, einfach melden.

    Ich bin dankbar für jede Hilfe!

    Viele Grüße,

    hg2008

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die I-O-Feedback liefert natürlich nur die Daten des zuletzt gelesenen Formates.
    Das Problem ist hier ggf., welches Format du einliest.

    Andererseits könntest du das Blättern ja vom System selber vornehmen lassen, so dass dein Programm gar nicht aktiv werden muss (keine BZ bei ROLLUP/DOWN).
    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
    Jan 2008
    Beiträge
    6
    Hallo fuerchau,

    danke für die Antwort.

    Ich lese das richtige Format, bzw. sollte es so sein, denn in der FB-Area steht ja auch das richtige Format drin. Oder wie meintest Du das?

    Und ich habe gar keine BZ gesetzt für Rollup/Rolldown.

    Hast Du vielleicht noch andere Ideen?

    Danke schonmal!

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Für 2 Subfiles hast du doch 2 aktive Formate auf dem Display.

    Beim Read kannst du jedoch nur 1 Format angeben.
    Besser wäre es hier, beim Read kein Format anzugeben, so dass der IO-Feedback sowohl das Format in dem der Cursor gerade steht als auch die dazugehörenden Info's liefert.

    Bei der Ausgabe darfst du allerdings nur das Format ausgeben, dass du auch gelesen hast.
    Da dir über das andere Format keine aktuellen Info's hast, kannst du dieses auch nicht refreshen.
    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
    Jan 2008
    Beiträge
    6
    Hm, also ich lese immer den gesamten Bildschirm ohne Formatangabe.

    Allerdings schreibe ich auch immer beide Formate, da sonst das eine nicht mit ausgegeben wird, bzw. überlagert wird.

    Ich mache das folgendermaßen: befinde ich mich im unteren SFL, schreibe ich zuerst das obere Format und anschließend das untere, dann folgt der read über den kompletten Bildschirm. Befinde ich mich oben, schreibe ich zuerst das untere Format und dann das obere und der read wieder im Anschluss.

    Könnte es also daran liegen? Aber wie lasse ich dann quasi immer beide Formate angezeigt, also dass keines überlagert wird?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Gib beide Formate nur beim 1. Mal überhaupt aus.
    Ansonsten nur das jeweilige aktive Format, das andere bleibt ja stehen (durch OVERLAY).
    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 2008
    Beiträge
    6
    Ja, also das würde theoretisch funktionieren, aber trotz OVERLAY und ASSUME wird immer das gerade nicht aktive Format überschrieben.

    Hier sind die Keywords, die ich im K1-Format stehen habe:

    A R KK110K1 SFLCTL(KK110S1)
    A*%%TS SD 20071212 102838 REL-V5R4M0 5722-WDS
    A SFLSIZ(0005)
    A SFLPAG(0004)
    A ROLLUP
    A KEEP
    A RTNCSRLOC(&FK1XRCD &FK1XFLD)
    A CSRLOC(FK1HZEILE FK1HPOS)
    A ASSUME
    A OVERLAY
    A PUTOVR
    A PROTECT
    A 05 SFLDSP
    A 05 SFLDSPCTL
    A 07 SFLEND
    A FK1RELNR 4S 0H SFLRCDNBR


    Und hier das K2-Format:

    A R KK110K2 SFLCTL(KK110S2)
    A*%%TS SD 20071211 150525 REL-V5R4M0 5722-WDS
    A SFLSIZ(0005)
    A SFLPAG(0004)
    A ROLLUP
    A KEEP
    A RTNCSRLOC(&FK2XRCD &FK2XFLD)
    A CSRLOC(FK2HZEILE FK2HPOS)
    A ASSUME
    A OVERLAY
    A PUTOVR
    A PROTECT
    A 05 SFLDSP
    A 05 SFLDSPCTL
    A 07 SFLEND
    A FK2RELNR 4S 0H SFLRCDNBR



    Vielleicht habe ich hier ja auch einen Fehler drin?

    Danke nochmal für Deine Hilfe!

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    ASSUME und PUTOVR sind unnötig.

    Wichtig ist, dass sich die Formate garantiert nicht überlappen, auch nicht mit Zeilenüberlauf (Feld bis letzte Spalte, dadurch Ende-Attribut in Folgezeile).
    ROLLUP ist unnötig, wenn du die SFL's immer komplett füllst.

    CSRLOC würde ich auch nicht verwenden (zu statisch), für die Subfile-Sätze kannst du eine Variable mit SFLRCDNBR(CURSOR) definieren, die genau auf die Zeile positioniert.

    PROTECT darf nicht verwendet werden, da alle Eingabefelder, die nicht zum ausgegebenen Format gehören, automatisch gesperrt werden.
    PROTECT (Protect) keyword for display files
    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
    Jan 2008
    Beiträge
    6
    Tja, also jetzt bleiben beide Formate stehen, wenn ich blättere, aber wenn ich dann Enter drücke (ohne was ausgewählt zu haben), dann wird auch wieder das jeweils andere Format ausgeblendet. Drücke ich F5, so positioniert das SFL wieder ganz oben. Es ist zum Verrücktwerden!

  10. #10
    Registriert seit
    Jan 2008
    Beiträge
    6
    Also - ich wollte mich nochmal kurz zurückmelden: Du hast mir mit Deinen Tipps wirklich sehr geholfen. Ich habe jetzt beide SFLs aktiv, d.h. ich kann in beiden etwas eingeben, das konnte ich vorher nicht (gleichzeitig).

    Das mit dem Positionieren habe ich vorerst so gelöst, dass ich nach jeder Aktion einfach wieder am Anfang aufsetze - das ist zumindest einheitlich. Irgendwie klappt das nämlich immer noch nicht.

    Auf jeden Fall erstmal ein großes Dankeschön an Dich!

Similar Threads

  1. Falsche Daten nach Import in Excel (HEX-Werte)
    By ManfredF in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 02-11-05, 09:08
  2. Subfiles mit verschiedener Zeilenanzahl
    By grihe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 25-10-05, 14:35
  3. zwei subfiles gleichzeitig aktiv halten
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 23-06-05, 17:35
  4. Falsche Dateierstellungszeit beim CPYTOPCD
    By Der Gute in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-07-02, 12:47
  5. data propagator läuft nicht auf R5V1 falsche CCSID
    By rebe in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 04-04-02, 08:36

Berechtigungen

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