Anmelden

View Full Version : Zwei Subfiles nebeneinander



Seiten : [1] 2

peter.kinne
27-01-04, 06:21
Hallo AS/400-Gemeinde,

ich muß für ein Projekt einen Bildschirm erstellen, bei dem 2 Subfiles nebeneinander dargestellt werden.

Die linke Subfile hat eine Breite von 25 Zeichen und die rechte 73 Zeichen. Die Überschriften werden global im CTL01 definiert.

Über eine Befehlstaste soll der "Fokus" jeweils zwischen den Subfile gewechselt werden, also WRITE und dann EXFMT auf den entsprechenden CTL

Jedoch als normale Subfiles klappt das nicht, da die eine jeweils die andere überlagert und löscht.

Müssen die Subfiles als Window definiert werden oder gibt es einen anderen Trick ????

Vielen Tag im voraus für die Tipps,

Peter Kinne

Wuntvor
27-01-04, 07:03
Etwas schwer verständlich deine Beschreibung. 132 Zeichen am Screen??? 80 am Screen???
du hast 2 Controlformate? Beschreibe bitte etwas genauer

peter.kinne
27-01-04, 07:15
Also, dann hier noch ein paar Details.

Der Bildschirm hat 24 Zeilen mit 80 Zeichen. Das Layout ist SAA-Like. Also zuerst zwei Zeilen Überschrift. Dann kommt ein Format mit 9 Zeilen über die gesamte Breite von 80 Zeichen. Dort stehen einige Keyfelder und Kundeninformationen. Weiterhin ist dort eine Zeile mit den gültigen Auswahlen, die getroffen werden können.

Dann kommt auf der linken Seite eine Subfile mit 10 Zeilen und einer Breite von 21 Zeichen.

In der gleiche Höhe und ebenfalls 10 Zeilen soll rechts daneben eine weitere Subfile angezeigt werden. Also auf Position 50

Zum Hintergrund: Auf der linken Seite sollen Auftragspostionen angezeigt werden und in der rechten Subfile Auftragstexte.

Ich hoffe die Angaben sind nun genügend.

Vielen Dank,

Peter

RobertMack
27-01-04, 07:21
Hallo Peter,

das kann man machen, indem man die Steuerung selbst übernimmt, Stichwort SLN. Das ist eine alte, leider in Vergessenheit geratene Technik alternativ zur SFL.

Dabei kannman den Focus auch über die Cursorposition erkennen/setzen.

Gruß, Robert

Wuntvor
27-01-04, 07:23
Packe das Subfile mit den Texten in ein SFLWINDOW welches du mit OVERLAY über das erste Subfile legen kannst. Deine SFL legen nämlich nicht neben- sondern übereinander, daher die Frage auf 132 Stellen.

Fuerchau
27-01-04, 08:46
Es gab mal einen sehr guten Beitrag von B.Hauser zu diesem Thema !

Also:

Da Subfiles immer über die gesamte Breite eines Bildes gehen, schafft man es nicht, 2 Subfiles nebeneinander zu positionieren.

Man MUSS diese in 2 Fenster packen, die dann genau nebeneinander ausgegeben werden.

Die Fenster-Rahmen kann man ja ausblenden, so dass die optische Trennung nicht auffällt.
Wichtig ist USRRSTDSP auf Satzebene, damit wird verhindert, dass das System die Fenster steuert (automatisch wiederherstellt o.ä.).

WINDOW(..... *NOMSGLN *NORSTCSR), sonst hat jedes Fenster eine eigene Nachrichtenzeile und der Cursor ist auf das letzte angezeigte Fenster beschränkt.

Die Blätterfunktion muss vom Programm gesteuert werden, da sonst nicht gewährleistet ist, dass die linke und rechte Subfile zu einander passen, d.H., dass ROLLUP/ROLLDOWN per Bezugszahl ausgewertet werden müssen.

Da beim EXFMT nur 1 Format aktiv sein kann, muss man per WRITECTLFMT1, WRITECTLFMT2, READ FILENAME arbeiten.

Dann kann man in der INFDS das Format abfragen und so das tatsächliche Format einlesen. Dies setzt allerdings das Schlüsselwort ASSUME voraus, so dass der tatsächliche READ nicht wieder blockiert.

Ach ja, auf Grund deiner Breite muss das natürlich auf einem 132-stelligen Bild passieren.


Die 2. Möglichkeit ist, eine SFL mit genau einem Feld zu definieren und die Aufbereitung (Editierung, Farben) programmintern zu lösen:

Im ILERPG einfach mittels %EDITC, %EDITW für Dezimale.
Im RPG mittels SPECIAL-File, EXCEPT und O-Bestimmungen.

RobertMack
27-01-04, 08:55
Hallo Peter,
hallo Kollegen,

Muss es denn partout immer SFL sein? Solche Sachen lassen sich mit SLN sehr pragmatisch lösen, werde Euch heute abend ein Beispiel posten ...

Gruß, Robert

peter.kinne
27-01-04, 08:58
Recht herzlichen Dank für die Tipps.

Ich hatte in der Zwischenzeit schon an der Version wie von "Fuerchau" beschrieben, gebastelt. Und das Ganze sieht nicht schlecht aus. Nun muß ich noch ein bißchen an der Aufbereitung.


An "Fuerchau"
Das mit der Breite von 132 Stellen verstehe ich nicht. Bei mir passt alles auf eine 80-er-Zeile.

Vielen Dank,

Peter

Fuerchau
27-01-04, 08:58
SLN löst dieses Problem leider nicht, da hier einfach GLEICHE Zeilen nebeneinander dargestellt werden und diese auch noch GENAU die gleiche Breite haben.

Fuerchau
27-01-04, 09:00
@Peter

Wenn's passt ist ja gut, ich hab die Gesamtbreite der beiden Subfiles nicht korrekt entdecken können.