home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / clarion / spd_20.zip / CUSTOM.DOC next >
Text File  |  1989-03-11  |  11KB  |  248 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.           Hi all  you Clarion  users out there!  What you will find in this
  8.           arc file is a  modified  STANDARD  model  file  from  the Clarion
  9.           Professional  Developer,  Batch  2007.    Included are the extras
  10.           which I  have been  using for  all of  my designer-based applica-
  11.           tions.
  12.  
  13.           When changing  a model procedure, it is recommended that you make
  14.           a copy of the original before making any changes.   Because I use
  15.           the changed  procedures most often, I usually rename the original
  16.           then create a modified  procedure using  the original  name.  For
  17.           example,  I  have  made  a  copy of the original *FORM procedure,
  18.           renamed one of them  to *NORMFORM,  and made  my modifications to
  19.           the *FORM  version.  In some cases I have broken this rule if the
  20.           change was always  desired  (ie:  remembering  menu  options [see
  21.           below]).
  22.  
  23.           The one convention that I strictly adhere to is the marking of my
  24.           changes.  All modified lines are flagged with a comment beginning
  25.           with two  exclamation points  (!!).   This helps when a new batch
  26.           comes out, and you have to figure you where you made the changes.
  27.  
  28.           The changes address three basic areas:   adding  functionality to
  29.           the  designer,  overcoming  Clarion  inadequecies, and increasing
  30.           error detection.  The following list of changes will be presented
  31.           in the form of PROBLEM then SOLUTION.
  32.  
  33.           .................................................................
  34.           Problem   When creating  tables in designer, all tables allow the
  35.                     addition, modification and deletion of records.
  36.  
  37.           Solution  Changes were  made to  the *TABLE  procedure to include
  38.                     three flags  (ADD_OK, HOME_OK and DEL_OK).  If you wish
  39.                     to prevent one of these operations, set the appropriate
  40.                     flag  to  zero  using  the  setup procedure line on the
  41.                     table options screen.   For example,  ADD_OK=0 prevents
  42.                     the addition of new records to the table.
  43.  
  44.                     When  preventing  addition,  two  situations  had to be
  45.                     dealt with:  preventing automatic addition  to an empty
  46.                     table and  preventing the  user from  adding records by
  47.                     pressing the  INS_KEY.    When  a  table  is  empty and
  48.                     ADD_OK=0, a  window is opened specifying that there are
  49.                     no records and the user may  not enter  any.   As well,
  50.                     when the  user presses  the ESC_KEY,  a beep is sounded
  51.                     and a warning message is placed in MEM:MESSAGE.
  52.  
  53.                     When preventing modification, it  is  assumed  that the
  54.                     user  would  still  be  allowed  to  view  the  record.
  55.                     Therefore, when the enter key is  pressed and CHK_OK=0,
  56.                     the update  procedure is  called with ACTION=4.  I have
  57.                     also made changes to the *FORM  procedure to  deal with
  58.                     this new  action code.   The designation of "4" to mean
  59.  
  60.  
  61.                                           1
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                     "view" is consistent with the table's interpretation of
  68.                     "4"  to  mean  "lookup  and  retrieve."    In the *FORM
  69.                     procedure,  ?DELETE_FIELD  was  changed  ?PAUSE.    The
  70.                     "view"  action  is  treated  the  same  as  the  delete
  71.                     action,  except  that  a  different  (new)  message  is
  72.                     displayed and the record is not processed in any way.
  73.  
  74.                     To  prevent  deletion  in  the  table,  the actions are
  75.                     similar to those performed when a user attempts  to add
  76.                     a  new  record  using  the  INS_KEY.  If the DEL_KEY is
  77.                     pressed and DEL_OK=0, a beep is sounded and MEM:MESSAGE
  78.                     is set to warn the user that the delete function is not
  79.                     allowed.
  80.  
  81.           .................................................................
  82.           Problem   When a user changes  a field  then presses  the up key,
  83.                     the  newly-entered  value  is  replaced by the original
  84.                     value and the change is lost.
  85.  
  86.           Solution  All  procedures  containing  entry   fields  have  been
  87.                     changed so  that they process the up key without losing
  88.                     any new entries.   As well,  the procedures  also treat
  89.                     the  TAB_KEY  as  an  ENTER_KEY  and the SHFT_TAB as an
  90.                     ESC_KEY.  I have avoided using ALIAS for this reassign-
  91.                     ment of  the tab  keys, which enables the programmer to
  92.                     localize this interpretation  of  the  TAB_KEY  and the
  93.                     SHFT_TAB.  The one procedure that does not include this
  94.                     special treatment  of  cursor  keys  is  the *MEMOFORM,
  95.                     because  the  UP_KEY  must  allowed for movement in the
  96.                     memo field, and the tab keys can be handy.
  97.  
  98.           .................................................................
  99.           Problem   Users  sometimes  have  difficulty  pressing CTRL_ENTER
  100.                     and CTRL_ESC if one of their hands is occupied.
  101.  
  102.           Solution  In addition  to CTRL_ENTER  and CTRL_ESC,  the user may
  103.                     press F10 and F2, respectively.
  104.  
  105.           .................................................................
  106.           Problem   When the user presses the ESC_KEY from the main menu of
  107.                     his application,  the program  exits to DOS and must be
  108.                     reloaded (a long process).
  109.  
  110.           Solution  A new menu procedure called *MAINMENU  has been created
  111.                     that recognizes neither the ESC_KEY nor CTRL_ESC.
  112.  
  113.           .................................................................
  114.           Problem   When a  user enters  or returns to a menu, the selector
  115.                     bar is always located on the top-left option.
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.                                           2
  124.  
  125.  
  126.  
  127.  
  128.  
  129.           Solution  The menu procedure has been changed so that it remember
  130.                     the last option selected.
  131.  
  132.           .................................................................
  133.           Problem   When the  user loads  the application,  he is forced to
  134.                     wait for an extended  period  of  time  (5-60 seconds),
  135.                     while  the  data  files  for  the application are being
  136.                     opened.  During this  procedure, the  user has  no idea
  137.                     of what is happening.
  138.  
  139.           Solution  While the files are being opened, a screen is displayed
  140.                     that states that the data files  are being  opened, and
  141.                     each filename is shown as it is opened.
  142.  
  143.           .................................................................
  144.           Problem   When using  the numeric  keypad, the  user has to reach
  145.                     across the keyboard to hit the ESC_KEY.
  146.  
  147.           Solution  The gray  asterisk  key  (GAST_KEY)  is  treated  as an
  148.                     alternate ESC_KEY.
  149.  
  150.           .................................................................
  151.           Problem   When invoking  a table  with a  selector, the table may
  152.                     only show some of  the  records  matching  the selector
  153.                     field.
  154.  
  155.           Solution  This could happen if the key was comprised of more than
  156.                     one field and the selector contained only some of these
  157.                     fields.   If there were stray values in the fields that
  158.                     were not part of  the selector,  the SET  procedure may
  159.                     not locate  the first  record in  the group.  The table
  160.                     and report procedures have  been changed  to accomodate
  161.                     this bug.   The  problem was  reported to Clarion after
  162.                     the release of batch 2007, and should be fixed in 2008.
  163.  
  164.           .................................................................
  165.           Problem   Many file access procedures are not checked for errors.
  166.                     This can result in corrupted data files.
  167.  
  168.           Solution  Two procedures  named CHKERR  and GODOS have been added
  169.                     to the model file.   CHKERR  is called  after each file
  170.                     access statement  that is  not normally  checked for an
  171.                     error.   If  an  error  condition  exists,  the program
  172.                     displays  a  screen  specifying  the  module name, line
  173.                     number and error message.   After  the  user  presses a
  174.                     key, the program is halted using GODOS.
  175.  
  176.                     Because  the  module  names  and line numbers cannot be
  177.                     determined within a translated Clarion program,  I have
  178.                     created  a  utility  which  will mark all occurences of
  179.                     CHKERR with  the module  name and  line number.   It is
  180.                     called MrkErr and must be invoked in the same directory
  181.  
  182.  
  183.  
  184.  
  185.                                           3
  186.  
  187.  
  188.  
  189.  
  190.  
  191.                     as your CLA files.   It  will  mark  all  occurances of
  192.                     CHKERR  in  all  of  the  Clarion  source  files in the
  193.                     default directory.  You may specify a directory mask to
  194.                     limit the number of files processed.   You  should  run
  195.                     MrkErr before compiling  the  source  code.  During the
  196.                     defelopment  stage,  this is not always necessary,  but
  197.                     during debugging and after distribution,  CHKERR  is an
  198.                     invaluable asset.
  199.  
  200.                     The  only  text  allowed  on a line  after  CHKERR is a
  201.                     comment preceded by  a exclamation  point.  MrkErr  was
  202.                     written in C,  and the source  code and executable file
  203.                     are included in the ARC file.
  204.  
  205.           .................................................................
  206.           Problem   When printing long reports, there is no way to stop the
  207.                     report, except turn off the machine.
  208.  
  209.           Solution  There has been a screen added to the report model which
  210.                     states that the report is  running  and  the  user  may
  211.                     press  Esc  to  exit.    The  inner loop of the  report
  212.                     monitors all keys.  If the user  presses  the  ESC_KEY,
  213.                     the report will stop.  All other keys are ignored.
  214.  
  215.  
  216.  
  217.           I hope  these changes  are useful to other Clarion users.  If you
  218.           have any comments, questions or complaints,  please feel  free to
  219.           leave me a note on the board.  Happy CLARIONing!
  220.  
  221.           -=> Mike Hanson <=-
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.                                           4
  248.