PDA

View Full Version : Left - Right Scroll In Subfiles



sysopr
30-07-10, 07:18
Hallo,

ich muss in einer Subfile (132er) eine Menge an Informationen anzeigen. Diese bekomme ich aber in einer zeile mit 132 Zeichen nicht angezeigt. SFLFOLD/SFLDROP ist wegen der geringen Übersichtlichkeit nicht die erste Wahl. Schön, wenn es möglich wäre, eine Anzeig zu erhalten ähnlich wie bei Query/400, wo ich mit Funktionstasten nach rechts und links "scrollen" kann. Gibt es diese Möglichkeit auch bei einem "normalen" RPG Programm das mit DDS beschriebenen Display-Files arbeitet? Falls jemand ein Beispiel hat, wäre das natürlich sehr hilfreich.
Dankeschön
Bernd

Joe
30-07-10, 07:33
Hallo Bernd.

Fülle eine 2. Subfile parallel und wechsel die Anzeige
mit Befehlstaste.

Joe

Fuerchau
30-07-10, 09:34
Du kannst die Subfiledaten intern in ein entsprechend großes Feld aufbereiten (ggf. mit einer Special-Datei und Excpt).
Für die Subfile definierst du ein Anzeigefeld in der Gesamtbreite und ein Hiddenfeld für die Maximalbreite.
Die Subfile wird dann mit beiden Feldern gefüllt.
Dann kannst du per Programm und mittels SUBST aus dem Hiddenfeld in das Anzeigefeld übertragen und somit eine Rechts/Links-Rollen realisieren.

loeweadolf
05-08-10, 22:46
Nach meiner Kenntnis geht ein Echtes
Links/Rechts-Scrollen gar nicht.

Es verbleibt einem nur eine der Techniken, wie vorhin von Joe bzw. Baldur beschrieben.

ThomasJoachimFuchs
07-08-10, 09:33
Hallo, sysopr!

Am elegantesten geht das, wenn man es wie im Betriebssystem macht - mit einem UIM-Listpanel (z.B. WRKSPLF).

Beispiele finden sich in der QUSRTOOL: STRABU - Start Address Book Utility.

Wenn das zu abgefahren ist, dann mehrere Subfiles parallel schalten und mit F11 vorwärts springen, mit F10 rückwärts.

1. Die Daten passend in mehrere Subfiles schreiben.

2. Im DDS angeben:
R CTL01
A RTNCSRLOC(&SFLCSRFMT &SFLCSRFLD)
A SFLCSRFMT 10A H
A SFLCSRFLD 10A H
R CTL02
A RTNCSRLOC(&SFLCSRFMT &SFLCSRFLD)
A SFLCSRFMT 10A H
A SFLCSRFLD 10A H
R CTL03
A RTNCSRLOC(&SFLCSRFMT &SFLCSRFLD)
A SFLCSRFMT 10A H
A SFLCSRFLD 10A H


3. Im RPG angeben:
f sfile(sfl01:sflnbr01)
f sfille(sfl02:sflnbr02)
f sfile(sfl03:sflnbr03)

dou *inlr;
if (sflcsrfmt = 'SFL03' or sflcsrfmt = 'CTL03') and not *in10 and not *in11 or (sflcsrfmt = 'SFL02' or sflcsrfmt = 'CTL02') and *in11 or (sflcsrfmt = 'SFL01' or sflcsrfmt = 'CTL01') and *in10;
exfmt ctl03;
elseif (sflcsrfmt = 'SFL02' or sflcsrfmt = 'CTL02') and not *in10 and not *in11 or (sflcsrfmt = 'SFL01' or sflcsrfmt = 'CTL01') and *in11 or (sflcsrfmt = 'SFL03' or sflcsrfmt = 'CTL03') and *in10;
exfmt ctl02;
else;
exfmt ctl01;
endif;
select;
when *in03;
exsr sr_exit;
when *in10;
iter;
when *in11;
iter;
endsl;
enddo;

MfG
Thomas J. Fuchs