Logo2
Scroll Bar
[Home] [Subfiles] [Scroll Bar]
Scrlbar02


The Scroll Bar demo

This demo is to show the scroll bar as a way to navigate through a subfile, allowing paging, jumping, or inching through your subfile. Also shown is the use of a mouseable checkbox.




DSPF for the Scroll Bar demo
      ****************************************************************
      *   ___             _    _     __ __             _    _        *
      *  | . > ___  ___ _| |_ | |_  |  \  \ ___  _ _ _| |_ <_>._ _   *
      *  | . \/ . \/ . \ | |  | . | |     |<_> || '_> | |  | || ' |  *
      *  |___/\___/\___/ |_|  |_|_| |_|_|_|<___||_|   |_|  |_||_|_|  *
      *                                                              *
      *  A display screen for an Ice Cream Demo.                     *
      *   (To demo scroll bar and radio button & check box.          *
      *                                                              *
      *   3/2013                                 booth@martinvt.com  *
      ****************************************************************
                                            DSPSIZ(24 80 *DS3)
                                            ERRSFL
                                            CA03
                                            CA05
                                            REF(ICECREAMP)
      *****************************************************************
                R SFL1                      SFL
                  S1ICAVAIL R        B 12  3CHECK(LC) REFFLD(ICAVAIL)
                                            SFLCSRPRG
        31                                  DSPATR(PC) COLOR(WHT)
       N31                                  DSPATR(PR)
                  S1ICFLAVORR        B   + 1CHECK(LC) REFFLD(ICFLAVOR)
       N31                                  DSPATR(PR)
        31                                  COLOR(WHT)
                  S1ICIMAGE R        B   + 1CHECK(LC) REFFLD(ICIMAGE)
       N31                                  DSPATR(PR)
        31                                  COLOR(WHT)
                  S1SVAVAIL R        H      REFFLD(ICAVAIL)
                  S1SVFLAVORR        H      REFFLD(ICFLAVOR)
                  S1SVIMAGE R        H      REFFLD(ICIMAGE)
      *****************************************************************
                R S1FMT                     SFLCTL(SFL1)
                                            SFLPAG(010) SFLSIZ(&SF1RECS)
                                            OVERLAY
       N50                                  SFLDSP SFLDSPCTL
        50                                  SFLCLR
       N91                                  SFLEND(*SCRBAR )
                                            SFLCSRRRN(&SF1RRN)
                                            MOUBTN(*ULD ENTER)
                  SF1RRN         5S 0H
                  SF1RECS        5S 0P
                                        2  2'   ___             _    _     __ _-
                                            _             _    _       '
                                            COLOR(RED)
                                        3  2'  | . > ___  ___ _| |_ | |_  |  \ -
                                             \ ___  _ _ _| |_ <_>._ _  '
                                            COLOR(RED)
                                        4  2'  | . \/ . \/ . \ | |  | . | |    -
                                             |<_> || ''_> | |  | || '' | '
                                            COLOR(RED)
                                        5  2'  |___/\___/\___/ |_|  |_|_| |_|_|-
                                             |<___||_|   |_|  |_||_|_| '
                                            COLOR(RED)
                                        7 53'& Friends   '
                                            COLOR(WHT)
                                        1 69DATE
                                            EDTCDE(Y)
                                        2 69TIME
                                        3 69'system i'
                                        4 69USER
                  POSCSR         1   B  8  3DSPATR(ND PC)
                  CHBOX1         2Y 0B  9  3MLTCHCFLD COLOR(BLU)
                                            CHOICE(1 &CB01)
                                            CHOICE(2 &CB02)
                                            CHCCTL(1 &CB01CHC)
                                            CHCCTL(2 &CB02CHC)
                  CB01CHC        1Y 0H
                  CB02CHC        1Y 0H
                  CB01          30A  P
                  CB02          30A  P
                                       11  2'Avail.    Flavors                 -
                                            image file name                    -
                                                 '
                                            DSPATR(UL) COLOR(TRQ)
      *****************************************************************
                R S1CMD
                  LINE77        77     23  2DSPATR(UL)
                                            COLOR(BLU)
                                       24  3'F3=Exit'
                                            COLOR(BLU)
                                         + 3'F5=Refresh'
                                            COLOR(BLU) 





The RPG program for the Scroll Bar demo

      //***************************************************************
      //   ___             _    _     __ __             _    _        *
      //  | . > ___  ___ _| |_ | |_  |  \  \ ___  _ _ _| |_ <_>._ _   *
      //  | . \/ . \/ . \ | |  | . | |     |<_> || '_> | |  | || ' |  *
      //  |___/\___/\___/ |_|  |_|_| |_|_|_|<___||_|   |_|  |_||_|_|  *
      //                                                              *
      //  A program to demo scroll bar & check box.                   *
      //                                                              *
      //   3/2013                                 booth@martinvt.com  *
      //***************************************************************
     H COPYRIGHT('Booth Martin, 2013,  All rights reserved.')
     H option(*nodebugio) dftactgrp(*no) actgrp(*new)

     FICECREAM2Dcf   e             workstn SFILE(SFL1:SF1RRN)
     FICECREAMP uf a e           k disk

     **--------------------------------------------------------------------*
     ** DEFINITIONS                                                        *
     **--------------------------------------------------------------------*
      * Working fields.
     D wNdx            s                   like(SF1RRN)
     D wSvCB01CHC      s                   like(CB01CHC)

      * Prototypes.

       //====================================================================*
       // MAINLINE                                                           *
       //====================================================================*
      /free
         exsr FillSFL1;
         // Edit the ICECREAMP file.
         dou *inkc;
           write S1CMD;
           exfmt S1FMT;
           select;
           when *inkc;
             exsr ExitPgm;
           when *inke;
             exsr RefreshSFL1;
           other;
             exsr UpdateICECREAMP;
           endsl;
         enddo;
       //====================================================================*
       // MAINLINE-END                                                       *
       //====================================================================*
       //-------------------------------*  Sub-Routine  *
       // *inzsr()                      *---------------*
       // Initializing sub routine                      *
       //-----------------------------------------------*
       begsr *inzsr;
         CB01CHC = 0;
         CB02CHC = 0;
         CB01 = 'Show only available flavors.';
         CB02 = 'Allow editing of flavors.';
       endsr;
       //-------------------------------*  Sub-Routine  *
       // ExitPgm()                     *---------------*
       // end of processing                             *
       //-----------------------------------------------*
       begsr ExitPgm;
         *inlr = *on;
         return;
       endsr;
       //-------------------------------*  Sub-Routine  *
       // FillSFL1()                    *---------------*
       // Fill the subfile.                             *
       //-----------------------------------------------*
       begsr FillSFL1;
         *in50 = *on;
         clear SFL1;
         write S1FMT;
         *in50 = *off;
           SF1RRN = 0;
         if CB02CHC = 1;   // protect mode.
           *in31 = *on;
         else;
           *in31 = *off;
         endif;
         // Fill the subfile:
         setll *start ICECREAMP;
         read(n) ICECREAMP;
         dow not %eof;
            if CB01CHC = 0
               or (CB01CHC = 1 and ICAVAIL <> ' '); // Show only available items.
               if ICAVAIL <> ' ';
                  S1ICAVAIL = 'Y';
               else;
                  S1ICAVAIL = ' ';
               endif;
               S1ICIMAGE = ICIMAGE;
               S1ICFLAVOR = ICFLAVOR;
               S1SVFLAVOR = S1ICFLAVOR;  // Save original data.
               S1SVAVAIL = S1ICAVAIL;
               S1SVIMAGE = S1ICIMAGE;
               SF1RRN = SF1RRN + 1;
               write SFL1;
             endif;
           read(n)ICECREAMP;
         enddo;
             S1ICFLAVOR = *blanks;  // Add some blank rows for new records
             S1ICAVAIL = *blanks;
             S1ICIMAGE = *blanks;
             S1SVFLAVOR = S1ICFLAVOR;  // Save original data.
             S1SVAVAIL = S1ICAVAIL;
             S1SVIMAGE = S1ICIMAGE;
           for wNdx = 1 to 5;
             SF1RRN = SF1RRN + 1;
             write SFL1;
           endfor;
         SF1RECS = SF1RRN;
       endsr;
       //-------------------------------*  Sub-Routine  *
       // RefreshSFL1()                 *---------------*
       //                                               *
       //-----------------------------------------------*
       begsr RefreshSFL1;
         // ReFill the subfile:
           for wNdx = 1 to SF1RECS;
             chain wNdx SFL1;
             S1ICIMAGE = S1SVIMAGE;
             S1ICFLAVOR = S1SVFLAVOR;
               if S1SVAVAIL <> ' ';
                 S1ICAVAIL = 'Y';
               else;
                   S1ICAVAIL = ' ';
               endif;
           endfor;
       endsr;
       //-------------------------------*  Sub-Routine  *
       // UpdateICECREAMP()             *---------------*
       // Update the data file                          *
       //-----------------------------------------------*
       begsr UpdateICECREAMP;
           for wNdx = 1 to SF1RECS;
             chain wNdx SFL1;
             select;
               when S1ICFLAVOR = ' ' and S1SVFLAVOR <> ' '; // delete a flavor
                 delete (S1SVFLAVOR) ICECREAMP;
               when S1ICFLAVOR <> ' ' and S1SVFLAVOR = ' '; // add a flavor
                  ICFLAVOR = S1ICFLAVOR;
                  ICIMAGE = S1ICIMAGE;
                  if S1ICAVAIL <> ' ';
                    ICAVAIL = 'Y';
                  else;
                    ICAVAIL = ' ';
                  endif;
                  write(e) RICECREAMP;  // It is possible to try to write a duplicate
                                        // record.  Code to deal with that issue is
                                        // beyond the scope of this demo.  BE WARNED!!
               when (S1SVFLAVOR <> ' ') and
                    ((S1ICFLAVOR <> S1SVFLAVOR)
                 or (S1ICAVAIL <> S1SVAVAIL)
                 or (S1ICIMAGE <> S1SVIMAGE));   // update a flavor
                  chain S1SVFLAVOR ICECREAMP;
                  ICFLAVOR = S1ICFLAVOR;
                  ICIMAGE = S1ICIMAGE;
                  if S1ICAVAIL <> ' ';
                    ICAVAIL = 'Y';
                  else;
                    ICAVAIL = ' ';
                  endif;
                  update RICECREAMP %fields(ICFLAVOR: ICAVAIL: ICIMAGE);
               other;
               endsl;
             endfor;
                  // cmd('RGZPFM FILE(ICECREAMP) KEYFILE(*FILE)': 38);
             if wSvCB01CHC <> CB01CHC;
             exsr FillSFL1;
             wSvCB01CHC = CB01CHC;
             endif;
       endsr;
[Home] [Code Samples] [SQL (simple)] [Subfiles] [Web & .json] [Contact Us] [Other]