[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2015
    Beiträge
    80

    refresh subfile

    Hallo zusammen,

    Ich habe ein kleines Problem mit einem Programm was mit einem subfile arbeitet
    Wenn ich die Auswahl L treffe wird der aktuelle Satz gelöscht und das Programm beendet.

    Ich hätte jedoch gerne dass das Programm weiterhin läuft, den Satz aus der Physischen Datei löscht und anschließend das Subfile neu befüllt.

    Bei meinem Versuch bekomme ich die Meldung das versucht wird ein doppelten Satz zu schreiben. --> Nehme stark an er meint die RRN.
    ..Obwohl ich vorher ein clear auf das SFL und den SFLCTL mache scheint er die irgendwo noch stehen zu haben.

    Hätte jemand eine Idee?

    Grüße

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Aus dieser klaren Beschreibung heraus kann ich halt nur Vermutungen anstellen.
    Eine Subfile neu aufzubauen geht natürlich ganz einfach.
    Man setze die Bezugszahl des SFLCLR und schreibe das CTL-Format.
    Anschließend füllt man die SFL so wie beim 1. Mal auch, also mit dem Feld aus SFLRNR (RPG) bei 1 beginnend.
    Wo dein Fehler nun tatsächlich ist, kann ich mangels Code leider nicht feststellen.
    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 2015
    Beiträge
    80
    Habe leider grade kein Zugriff auf den Code.
    Ich denke aber ich habe einen Fehler in der Logik, da ich noch nicht genau weiss wie sich das alles verhält.

    Das Programm macht folgendes:
    #####
    SFL: MZEILE
    SFLCTL: MKSATZ

    Ich lese die physische in einer Schleife bis kein Satz mehr gefunden wird.
    Schleifenbeginn
    In jedem Lauf der Schleife wird die RRN +1 gesetzt, die Werte initialisiert und am Ende geschieht ein write MZEILE
    Schleifenende

    Dann:
    write Kopf vom dspf
    write Fuß vom dspf
    EXFMT MKSATZ

    Nächste Schleife
    READC MZEILE (bis keine Sätze mehr oder die Eingabe geschah)
    Wenn Auswahl L --> Chain auf Physische und löschen.
    Schleifen ende
    ######
    Bis hier funktioniert das. Mein Problem ist jetzt gebe ich L ein und drücke Enter bleibt das Bild so wie es ist; Sprich der gelöschte Satz wird weiter angezeigt. Auch mit dem L in der Auswahl.
    Somit habe ich das Programm weiter geschrieben: Folgender Lösungsansatz:
    #####
    Wenn L seton 53 (SFLCLR)
    clear MKSATZ
    clear Fuß
    clear Kopf
    setoff 53

    RRN = 0

    Geh zu Schleife 1

    Und dann kommt eben beim Schreiben in die MZEILE der Fehler doppelter Satz. Als wie die Sätze wurden nicht gelöscht.

    Die Frage ist stimmt überhaupt die Logik des Ansatz.

    SORRY für das Chaos, war jetzt aus dem Kopf geschrieben

    Grüße

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Es reicht nicht, die Bezugszahl SFLCLR anzuschalten. Du musst danach auch einen write auf den Control-Satz machen. Sonst wirkt die Bezugszahl nicht.
    Ich weiß nicht, ob das write in deinen Unterroutinen drinsteht.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das Problem ist die Reihenfolge der Anweisungen:
    Wenn L seton 53 (SFLCLR)
    clear MKSATZ

    Da nun IN53 in MKSATZ definiert ist, setzt der "Clear MKSATZ" ebenso IN53 wieder auf OFF, so dass der Write MKSATZ dann eben kein SFLCLR ausführt.
    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
    Nov 2015
    Beiträge
    80
    Konnte es eben testen.

    klappt wie gewünscht..wieder etwas mehr Verständnis erlangt, danke :-)

    Gute Restwoche noch!

Similar Threads

  1. RPG nach Technoloy Refresh 10
    By hteufl in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 26-06-15, 07:06
  2. Antworten: 2
    Letzter Beitrag: 19-05-15, 10:21
  3. TECHNOLOGY REFRESH Level 8 - Ist IPL nötig zum Anlegen
    By coolie in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-10-14, 09:06
  4. SNGCHCFLD - Subfile
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-07-14, 15:04
  5. Subfile
    By brittner in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 18-11-13, 15:24

Berechtigungen

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