[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2007
    Beiträge
    70

    Subfile-Anteige

    Hallo,
    bei einer Subfileanzeige, Alles-Lade-Subfile, max. 2 Subfile-Seiten, wird immer bei ersten EXFMT die letzte SF-Seite angezeigt, statt der 1. SF-Seite:

    A DSPSIZ(24 80 *DS3)
    A PRINT
    A R FMT001 SFL
    A*%%TS SD 20250320 122804 AKUEHN REL-V7R4M0 5770-WDS
    A BSAUSW 1A B 4 3VALUES('E' ' ')
    A BSSVNR 12A O 4 5
    A BSBKNR 8S 0O 4 18
    A BSABBG 8Y 0O 4 27EDTWRD(' . . ')
    A BSABEN 8Y 0O 4 38EDTWRD(' . . ')
    A BSNAME 15A O 4 49
    A BSVORN 15A O 4 65
    A LIABBG 8 0H A LIABEN 8 0H
    A*
    A*------------------------------------------------------------
    A* CONTROL-SATZ
    A*------------------------------------------------------------
    A*
    A R FMT002 SFLCTL(FMT001)
    A*%%TS SD 20250320 121429 AKUEHN REL-V7R4M0 5770-WDS
    A SFLSIZ(0019)
    A SFLPAG(0018)
    A OVERLAY
    A TEXT('Weitere...')
    A CA03(03 'ENDE')
    A 36 SFLDSP
    A 37 SFLDSPCTL
    A 38 SFLCLR
    A 34 SFLEND(*MORE)
    A RRN 4S 0H SFLRCDNBR
    A WSPGM 10A O 1 2

    Wer kann helfen. Danke.

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Die subfile rrn mus beim exfmt auf der erste Seite liegen.
    Wird in der F-Karte als 'Zähler' definiert
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Zeile 1 ist korrekt: rrn positioniert auf der passenden Seite.
    Zeile 2 F-Bestimmung ist die Zeile, die gerade gelesen, geschrieben oder geändert wird und hat mit rrn nichts zu tun.
    Die SFILE(xxx:recno) ist also tatsächich ein anderes Feld, wird aber leider öfter identisch genannt.
    Seit qualified fällt das dann aber eher auf.
    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

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Die SFILE(xxx:recno) ist also tatsächich ein anderes Feld, wird aber leider öfter identisch genannt.
    Seit qualified fällt das dann aber eher auf.
    Warum leider?

    Das ist hier (und bei allen Kunden) so 'Normal' das ich gar nicht mehr wusste das es anders geht.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    "leider" ist auch Ansichtssache. Bei der Profound-UI klappt das nämlich gar nicht, egal was man tut, ein Schema gibts nicht, außer: man stellt die Top-Eigenschaft ein, dann wird die Zeile immer als 1. auf der Seite gezeigt wenn die Seite noch voll ist.
    Die User möchten aber, dass die vorherigen Zeilen weiter sichtbar bleiben, die Liste also stabil bleibt.
    Beim 5250 war das nie ein Problem. In Profound habe ich das nun mit JScript aber lösen können.
    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
    Jan 2012
    Beiträge
    1.199
    Hallo Baldur,
    du beschäftigst dich mit ProfoundUI? Das finde ich ja interessant.

    Ich bin mir im Moment nicht ganz sicher. Aber ich meine, dass wir das Halten der Position eines Grid ohne Javascript lösen. Direkt nach dem exmt merken wir uns den obersten angezeigten Satz:

    exfmt bvs2ue1d.fmt1 f1;
    TopSfl1 = f1.s1_rrn; // Obersten angezeigten Sfl-Satz merken



    Und direkt vor dem exfmt sorgen wir für die passende Positionierung:
    // Sfl passend positionieren:
    if TopSfl1 > 0 and TopSfl1 <= g#AnzahlGesamtSfl1;
    f1.s1_satznr = TopSfl1;
    endif;

    (s1_satznr ist das Feld aus der F-Bestimmung für die subfile)

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    1:
    Das Satznummernfeld aus den F-Bestimmungen wird bei EXFMT von der Schnittstelle gar nicht verwendet, da es an die Subfile gebunden ist.
    Somit zieht das nur bei E/A mit Subfiles.

    2:
    Wenn man Funktionsbuttons verwendet, die natürlich nicht innerhalb des Grids stehen, ist das SFLCSRRRN-Feld sowie das SFILE(RRN) immer 0, da der Cursor ja nicht im Grid steht.

    3:
    Ich habe versucht gezielt auf eine RRN zu lesen und zu schreiben, hatte aber keinen Effekt.

    4:
    Im Tree-Modus ist der "Wackel"-Effekt geradezu nicht auszuhalten, denn das Grid positioniert relativ zur bearbeiteten Zeile nach Möglichkeit den nächsten Parent-Knoten nach oben.

    5:
    Das SFLRCDNBR-Feld funktioniert nur bei gleichzeitiger Verwendung von TOP.

    Lösung:
    Bei jedem RowClick- und Scroll-Event (JScript) wird die Top-Zeile in einem hidden Field vermerkt.
    Beim Onload wird mittels MoveToRow wieder an diese Zeile bewegt.
    Wenn man z.B. in einem Unterprogramm ein Fenster über der aktuellen Zeile ausgibt, positioniert das Grid wie es will, da OnLoad nicht aufgerufen wird. Wird aus dem Fenster wieder ins Hauptprogramm zurück gekehrt, positioniert das Grid wieder automatisch neu.
    Nur bei clear Subfile wird das Hiddenfield wieder auf 1 gesetzt.

    Ggf. kann man das SFLRCDNBR-Feld aus dem neuen Hiddenfeld setzen, da dann TOP das richtige wäre.

    Da wir auch durchaus mehr als 1 Grid gleichzeitig anzeigen, muss man dies für jedes Grid individuell lösen.

    Zusätzlich verwenden wir auch den Stretch-Modus nicht mehr, sondern haben eine zentrale JScript-Methode zur onResize gebaut, die die Zeilenhöhe an hand der html-Elemente berechnet und die Anzahl Zeilen neu setzt. Auch kommt das Grid in einen Frame mit optionaler horizontaler Scrollbar, so dass ein User sich das Grid im Browser einstellen kann, wie er will.
    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

  8. #8
    Registriert seit
    Jan 2012
    Beiträge
    1.199

    Question

    Ich meine, unsere Steuerung klappt mit den folgenden Einstellungen:

    Click image for larger version. 

Name:	screenshot sfl attributesPNG.PNG 
Views:	5 
Size:	29,6 KB 
ID:	687

    Die Kombination aus "position at top" und subfile return rrn sorgt dafür, dass man nach dem exfmt immer den obersten angezeigten Satz bekommt. Wenn man sich den im RPG-Programm merkt, weiß man, wie man die Subfile nach dem nächsten Roundtrip wieder positionieren muss.



    Das Positionieren erfolgt dann über die s1_satznr.

    Im Prinzip braucht man im Programm also nur Folgendes in der Schleife um das exfmt, um die Position zu halten (das Format heißt fmt1 und wird über die Datenstruktur f1 qualified angesprochen):

    Code:
    dow...
       f1.s1_satznr = TopSatzInSfl1;
       exfmt testmaske.fmt1 f1;
       TopSatzInSfl1 = f1.s1_rrn;   // Obersten angezeigten Sfl-Satz merken
        ...
    enddo
    Aber es gibt natürlich viele Lösungen.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wie versucht zu sagen: das feld s1_rrn liefert 0, wenn beim Callback das Grid keinen Focus hatte.
    Somit wird beim nächsten EXFMT wieder willkürlich positioniert.
    Bei meinem Kunden werden Funktionsbuttons angeboten, die nicht im Grid liegen. Daher der Focus-Verlust.
    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

  10. #10
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Ich widerspreche dir nur ungern und auch äußerst selten:

    Aber bei uns läuft das auch problemlos mit Buttons oder auch, wenn ich vorher explizit in ein anderes Nicht-Subfile-Feld klicke und der Focus damit nicht mehr auf dem Grid liegt.

    Vielleicht gibt es doch noch eine Einstellung, die wir getroffen habe, die ich jetzt übersehen haben

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich bin demnächst wieder auf der Maschine und werde das prüfen.
    U.U. habt ihr auch schon eine neuere Version;-).
    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. Antworten: 2
    Letzter Beitrag: 19-05-15, 10:21
  2. Subfile
    By brittner in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 18-11-13, 15:24
  3. Subfile direkt durch SQL Statement füllen
    By TheDevil in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 14-11-13, 08:15
  4. Subfile aus einer Subfile?
    By Toschie in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 08-06-05, 14:21
  5. Subfile auf letztem bearbeiteten Satz aufsetzen
    By Fertig in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-02-03, 11:28

Berechtigungen

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