[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2005
    Beiträge
    90

    Eingabe prüfen

    Da bin ich mal wieder!
    Also:
    Ich habe eine Subfile da wird eine Kundennummer erfasst.
    Und auch eine Werksnummer.
    Nach der Eingabe soll geprüft werden, ob die eingegebenen Daten einen treffen in der Physischen Daten ergeben!
    Wenn ja soll die Verarbeitung mit den Unterprogrammen beginnen!(vorher nicht)
    1. unterprogramm füllt Subfile mit 10 Sätzen.
    Ist das geschehen soll bei Druck der Taste Bild ab wieder mit hilfe der Bezzahl 50 10 weitere Sätze eingeblättert werden.

    Das Probleme liegt darin, das wenn ich die Prüfung mache schmiert der mir bei dem Blättern ab und sagt Satz bereits vorhanden doppelter schlüssel...!
    Durch Debuggen hab ich heraus gefunden das die Relativesatznummer nach dem lesen der ersten 10 Sätze wieder von vorne beginnt ohne das ein Z-add oder sonstiges gemacht wird!

    Hat einer nen Rat/Lösung für mein Problem?
    Oder kann ich evtl auch anders die Eingabe prüfen?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    In den F-Bestimmungen hast du ja einen Bezug zwischen der SFL und dem Satznummernfeld hergestellt.
    Beim Write/Chain musst du die Satznummer vorgeben, beim Read/Readc wird sie dir übergeben.
    Um also nach einem Read/Readc Sätze hinzuzufügen musst du dir also in einer weiteren Variablen die Anzahl der bereits geschriebenen Sätze merken und mit +1 eben hintendran schreiben.
    Auf das SFLRNR-Feld kannst du dich diesbezüglich nicht verlassen (s.o.).
    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 2005
    Beiträge
    90
    Und warum beginnt die RSN von vorne??
    Ich dachte durch den Chain wird kein Bezug auf irgendwas genommen sonder nur geprüft!
    Ist dem nicht so?
    Kann man nicht irgendwie auf die logische wieder aufesetzen als wenn man mit ihr noch nicht gearbeitet hat?

    Ich habe jetzt 4 variablen zum zählen!
    1. Variable: RSN zählen der ersten 10 Sätze in sub20
    2. Variable: Zaehle zählen der hinzugeblätterten Sätze sub30
    3. Variable: SSN1 das ist meine relative Satznummer im Satzformat(als hiddenfeld)
    4. Variable: C1pos umd die aktuelle Position des Cursor zu ermitteln um nach Aktionscodes zu prüfen u.ä...

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Jede geöffnete Datei hat genau einen Lese-Satzzeiger, der mit jeder Operation verändert wird.
    Ein CHAIN/READ/READC/SETLL/SETGT verändert immer den Satzzeiger für die nächste Leseoperation.
    Subfiles sind noch insoweit was besonderes, als das sie wie sequentielle Dateien betrachtet werden und die Satz-Nr IMMER im SFLRNR-Feld der F-Bestimmung steht.

    Um Nach Aktionscodes zu prüfen, solltestes du mit dem DDS-Schlüsselwort SFLNXTCHG mit Bezugszahl arbeiten, dann kannst du den READC verwenden.

    Ich kann dir hier leider keinen Programmierkurs geben.
    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 2005
    Beiträge
    90
    Also müsste doch wenn ich ein SETLL mit nem Key mache und den Key vorher mit den Eingaben definiere

    z.b. z-add 1.Eingabe feld1
    z-add 2.Eingabe feld2
    keyakc setll logischedatei

    do 10 RSN
    keyakr reade logischedatei
    ....
    müsste das doch gehen!

  6. #6
    Registriert seit
    Sep 2001
    Beiträge
    156
    Dein Problem betrifft die Subfile und nicht ein physisches oder logisches File.
    Wie Baldur bereits beschrieben hat, wird beim Lesen der Subfile die RSN mit der Satz-Nummer des gelesenen Satzes gefüllt.
    Also nach dem 1.Füllen der SFL ist die RSN z.Bsp. 10.
    Nach dem Lesen des 1.Satzes, ist RSN = 1 (Satz 1 wurde gelesen).
    Wenn du jetzt mit der aktuellen Nummer in RSN weitere Sätze hinzufügen willst,
    dann krachts, weil der Satz 2 bereits in der SFL vorhanden ist.
    Du musst dir die letzte geschriebene RSN merken und jeweils mit dieser neue Sätze hinzufügen.

Similar Threads

  1. DDMF prüfen
    By Christian.Hesse in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-01-07, 11:53
  2. auf aktiven Job prüfen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-10-06, 11:07
  3. Eingabe sperren bei Fehlermeldung über API
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 17-10-06, 16:48
  4. Prüfung, ob Eingabe in Feld
    By M Scheid in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 12-06-06, 13:02
  5. User vor Sicherung prüfen
    By linguin in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 16-05-06, 12:14

Berechtigungen

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