.RR---------------------------------------------------R
.op
.mt3
.mb4
..
..<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>
..<<<<<<<<<       CP/M Athens Newsletter     >>>>>>>>>>
..<<<<<<<<<     Vol 2, No 8, August 1985     >>>>>>>>>>
..<<<<<<<<< P.O. Box 2121, Athens, GA  30612 >>>>>>>>>>
..<<<<<<<<<  Pat Boyle @ Phone 404-549-9586  >>>>>>>>>>
..<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                  MAKING DBASE MENUS
                     By Pat Boyle

Many  methods of menu design for dBASE employ heavy use
of  @ row,col SAY/GET which require that you  know  the
coordinates  of  the desired rows and columns  for  the
text that you want printed on the screen. Since working
with  raw  screen  coordinates can  get  tedious,  I've
developed  a  method  of MENU design  using  the  dBASE
commands  'TEXT/ENDTEXT.' Some of the advantages of  my
method  (my  apologies  to others  who  have  developed
similar methods) are:

1 - 'What  you  see' in your editor 'is what  you  get'
    when you execute your command file in dBASE.
2 - You  need  to  determine  only one set  of  row,col
    coordinates (the GET in the choice DO WHILE loop)
    simplified if you use an editor such as WordStar.
3 - Menu  editing is simplified since only one  set  of
    coordinates needs adjusting when changes are made.
4 - This  method  when used with the substring  logical
    operator  ($) prevents continuous rewriting of  the
    menu  to  the screen when incorrect  or  non active
    choices are made by the operator.

The  following  is  a  simple  dBASE  II  command  file
demonstrating this technique of menu generation.

SET TALK OFF
STORE T TO menurepeat
DO WHILE menurepeat
  ERASE
  TEXT
    ========== Example Menu For dBASE II ==========
                     Q - QUIT
                     1 - OPTION 1
    ===============================================
                 Enter Your Choice -->
    ===============================================
  ENDTEXT

  STORE " " TO choice
  DO WHILE .NOT. choice$('Q1')
     STORE " " TO choice
     @ 5,39 GET choice PICTURE "!"
     READ
  ENDDO choice

  DO CASE
     CASE choice = 'Q'
          STORE F TO menurepeat
     CASE choice = '1'
          ERASE
          ? 'Command such as DO OPTION1 might go here'
          WAIT
          STORE T TO menurepeat
  ENDCASE
ENDDO menurepeat
SET TALK ON