Screen object sample code: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 51: | Line 51: | ||
%scrfmsg = %sscr:addField(row=3, column=1, width=%sscr:columns - 1, color=yellow) | %scrfmsg = %sscr:addField(row=3, column=1, width=%sscr:columns - 1, color=yellow) | ||
%scrfcmd:setCursor | %scrfcmd:setCursor | ||
%scrfPF = %sscr:addField(row=%sscr:rows, width=%sscr:columns - 2, column=1, highlight=reverse, color=white) | %scrfPF = %sscr:addField(row=%sscr:rows, width=%sscr:columns - 2, column=1, - | ||
highlight=reverse, color=white) | |||
%title = 'PF1=Backward PF2=Forward PF3=Quit' | %title = 'PF1=Backward PF2=Forward PF3=Quit' | ||
%scrfPF:value = $center(%title, %sscr:columns - 2) | %scrfPF:value = $center(%title, %sscr:columns - 2) |
Revision as of 14:16, 7 September 2010
Screen class and Screenfield class example code The following program defines a screen application that displays and scrolls through a set of records. The records are initially obtained via the Fast/Unload User Language Interface from a RecordSet object to a StringList, though this is incidental to the main application details which feature many of the Screen and ScreenField methods.
R SCRNSTBL 10000 b %rs is object recordSet in file tomdb %ft is object fastUnloadTask %listi is object stringList %listo is object stringList %listr is object stringList %rc float %i float %j float %title is string len 255 %msg is string len 100 * obtain the records that will be displayed find records to %rs end find %listi = new %listo = new %listr = new text to %listi FOR EACH RECORD IF TOTAL PREMIUM EXISTS THEN PUT FULLNAME AS STRING(24) PUT STATE AS STRING(24) PUT '$' PUT TOTAL PREMIUM AS STRING PUT '.00' END IF OUTPUT END FOR end text %rc = %rs:fastUnload(%listi, %listo, %listr, parameters='NEBUFF=2') %sscr is object screen %scrtop is object screenField %scrfcmd is object screenField %scrfmsg is object screenField %scrfPF is object screenField %sscral is arraylist of object screenField %sscr = new %sscral = new * separately format top three rows and the bottom row %scrtop = %sscr:addField(row=1, column=1, color=yellow, - width=%sscr:columns - 1, highlight=none) %scrtop:value = $center('August Listing', %sscr:columns - 1) %scrfcmd = %sscr:addField(row=2, column=1, width=%sscr:columns - 1, color=yellow) %scrfmsg = %sscr:addField(row=3, column=1, width=%sscr:columns - 1, color=yellow) %scrfcmd:setCursor %scrfPF = %sscr:addField(row=%sscr:rows, width=%sscr:columns - 2, column=1, - highlight=reverse, color=white) %title = 'PF1=Backward PF2=Forward PF3=Quit' %scrfPF:value = $center(%title, %sscr:columns - 2) * format the data display rows and store in arraylist for %i from 1 to %sscr:rows - 5 %sscral:add(%sscr:addField(row=%i + 3, column=1, width=%sscr:columns - 1, color=green)) if $mod(%i - 1, 5) = 0 then %sscral(%i):highlight = underline %sscral(%i):color = turquoise end if end for * populate the data display arraylist with unloaded data %i = 1 %j = 0 repeat forever for %i from %i to %listo:count %j = %j + 1 if %j > %sscral:count then loop end end if %sscral(%j):value = $lowcase(%listo(%i)) end for for %j from %j to %sscral:count %sscral(%j):value = end for * display screen and process user response %sscr:read %scrfmsg:value = jump to (f1, f2, f3) %sscr:actionKey:toNumber if %sscr:actionKey:toNumber then %scrfmsg:value = 'Only PF1-PF3 are valid keys' %scrfmsg:color = red %scrfmsg:highlight = reverse else %scrfmsg:value = 'Enter key pressed' %scrfmsg:color = white %scrfmsg:highlight = none end if jump to hl f1: %i = %i - (%sscral:count * 2) if %i < 1 then %i = %listo:count - %sscral:count if %i < 1 then %i = 1 end if %scrfmsg:value = 'Wrapped...' %scrfmsg:color = white %scrfmsg:highlight = none end if %j = 0 jump to hl f2: if %i >= %listo:count then %i = 1 %scrfmsg:value = 'Wrapped...' %scrfmsg:color = white %scrfmsg:highlight = none end if %j = 0 jump to hl f3: loop end hl: end repeat end
References
The Janus SOAP manual in PDF format: http://sirius-software.com/maint/download/jansoapr.pdf
The Screen class page on the Sirius Wiki.
The Screenfield class page on the Sirius Wiki.
How to use Model 6, or Dynamically Sized screens in Model 204.
Conventions and terminology used in Sirius Software technical documentation.