How to Create a General-Purpose Thermometer Bar in FoxProID: Q93587 
  | 
   SET TALK OFF
   SET CURSOR OFF
   USE C:\<foxpro directory>\tutorial\customer
   =display_border()
   * The next three commands are examples of using the thermometer bar
   * with the DISPLAY_BAR and DISPLAY_BORDER commands.
   * 1. Sequential operations.
   * The DISPLAY_BAR function displays a bar graph to represent the
   * progress of a sequential operation.
   PRIVATE rec_number
   rec_number = 1
   SCAN
      && Perform database operation
      =display_bar() = .T.
      rec_number = rec_number + 1
   ENDSCAN
   * 2. Report operations.
   * The DISPLAY_BAR function displays a bar graph to represent the
   * progress of a report being printed. In the Report Writer, when an
   * index is active, create a memory variable called REC_NUMBER.
   * From the Report menu, choose Variables. Then choose Add. Choose
   * the Count option button. Then create a variable name of
   * REC_NUMBER and store the value 0. When no index is active,
   * replace the memory variable REC_NUMBER in the DISPLAY_BAR
   * function with RECNO(). Then issue the following command:
   REPORT FORM cust NOCONSOLE TO PRINTER FOR display_bar()=.T.
   * 3. Indexing operations.
   * The DISPLAY_BAR function displays a bar graph to represent the
   * progress of an index operation using a .CDX index. Once the INDEX
   * ON command is used with the DISPLAY_BAR function, it must be
   * accessed whenever the database is open. Also, replace the
   * REC_NUMBER memory variable in DISPLAY BAR with RECNO(). Then
   * issue the following command:
   INDEX ON company TAG company FOR display_bar()=.T.
   * The following function displays a bar graph to represent the
   * the progress of a sequential, report, or indexing operation.
   FUNCTION display_bar
   pct = rec_number * 100 / RECCOUNT()
   @ 18,14 SAY REPLICATE(CHR(219),(pct/2)+1)
   RETURN .T.
   * The following function displays the background screen for the
   * bar graph function.
   FUNCTION display_border
   @ 14,10 TO 19,69 DOUBLE
   @ 17,11 TO 17,68 DOUBLE
   @ 17,10 SAY CHR(204)
   @ 17,69 SAY CHR(185)
   @ 15,24 SAY "P E R C E N T   C O M P L E T E"
   @ 16,14 SAY "0   10   20   30   40   50"
   @ 16,44 SAY "60  70   80   90   100"
   RETURN .T. 
NOTE: If you use CHR(219) with the default FixedSys font, it represents the
letter "U" with an umlaut.
   SET TALK OFF
   SET CURSOR OFF
   USE C:\foxprow\tutorial\customer
   =display_border()
   * The next three commands are examples of using the
   * thermometer bar with the DISPLAY_BAR and DISPLAY_BORDER commands.
   * 1. Sequential operations.
   * The DISPLAY_BAR function displays a bar graph
   * to represent the progress of a sequential operation.
   PRIVATE rec_number
   rec_number = 1
   SCAN
      && Perform database operation
      =display_bar() = .T.
      rec_number = rec_number + 1
   ENDSCAN
   * 2. Report operations.
   * The DISPLAY_BAR function displays a bar graph to represent the
   * progress of a report being printed. In the Report Writer, when an
   * index is active, create a memory variable called REC_NUMBER.
   * From the Report menu, choose Variables. Then choose Add. Choose
   * the Count option button. Then create a variable name of
   * REC_NUMBER and store the value 0. When no index is active,
   * replace the memory variable REC_NUMBER in the DISPLAY_BAR
   * function with RECNO(). Then issue the following command:
   REPORT FORM cust NOCONSOLE TO PRINTER FOR display_bar()=.T.
   * 3. Indexing operations.
   * The DISPLAY_BAR function displays a bar graph to represent the
   * progress of an index operation using a .CDX index. Once the INDEX
   * ON command is used with the DISPLAY_BAR function, the DISPLAY_BAR
   * function must be accessed whenever the database is open. Also,
   * replace the REC_NUMBER memory variable in DISPLAY BAR with
   * RECNO(). Then issue the following command:
   INDEX ON company TAG company FOR display_bar()=.T.
   * The following function displays a bar graph to represent
   * the progress of a sequential, report, or indexing operation.
   FUNCTION display_bar
   pct = rec_number * 100 / RECCOUNT()
   x = 14 + (pct/2+1)
   @ 1,4 FILL TO 2,x COLOR W/N*
   RETURN .T.
   * The following function displays the background screen for the bar
   * graph function.
   FUNCTION display_border
   DEFINE WINDOW therm FROM 14,10 TO 17,80 HALFHEIGHT ;
      TITLE "Percent Complete" FONT "arial",10
   ACTIVATE WINDOW therm
   @ 1,4 TO 2,65 PEN 2 COLOR 0,0,0
   @ 0,4 SAY "0     10     20     30     40     50"
   @ 0,38 SAY "60    70     80     90     100"
   RETURN .T. Additional query words: VFoxMac VFoxWin FoxDos FoxWin thermometer gauge indicator RWriter
Keywords          : kbcode FxtoolRwriter 
Version           : 2.00 2.50 2.50a | 2.50 2.50a 3.0
Platform          : MACINTOSH MS-DOS WINDOWS 
Issue type        : 
Last Reviewed: August 9, 1999