|
> -----Original Message-----
> From: G Armour
> Just so I can be sure I haven't missed some obscure DDS
> function... I had a question posed to me today asking if it
> were possible to have a 5250 green screen with a horizontal
> scroll bar. Without even thinking about it for two seconds,
> I said no.
There is no magic DDS function, but you can do this within your program
using a simple technique.
1) In your SFL detail record, define a single character output field
(assume it's called "myOutFld"):
Opt OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <- SFLCTL (header)
99 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <- SFLREC (detail)
99 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
2) In the same record, define another character field ("myBuffer") long
enough to contain all the data which you want to scroll horizontally.
Create this as a HIDDEN field. This is your buffer area.
3) Within your program, define a data structure over your buffer area:
D myBuffer ds
D myField1 10a
D myField2 5i 0
D ...etc
4) Eval your data into this data structure as required.
5) On first display, start displaying data from left-most position:
C eval myOutFld = %subst(myBuffer: 1: %size(myOutFld))
6) When user presses a function key to scroll right, loop through each
SFLREC, updating the output field:
C eval leftPos = leftPos + scrollChars
C for x = 1 to sflRecCnt
C X chain sflrec
C if (leftPos + %size(myOutFld)) <= %size(myBuffer)
C eval myOutFld = %subst(myBuffer: leftPos:
%size(myOutFld))
C else
C eval myOutFld = %subst(myBuffer: leftPos:
%size(myBuffer)-leftPos)
C endif
C endfor
7) When user presses a function key to scroll left, reverse the process.
That's the basic technique in a "stream of consciousness" format. Sorry
that I don't have time to be more thorough, but I think it's enough to
get the idea across.
Regards,
John Taylor
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.