home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource1 / chint / useful34.hnt < prev   
Text File  |  1993-10-21  |  3KB  |  58 lines

  1. This hint supplies a modified version of the standard skeleton where the
  2. changes allow the "Find" facility to change the primary key to what ever
  3. key was last selected in the "Find".  Once the primary key has been changed
  4. the "Next", "Prev", "Top", and "Last" functions all determine the record to
  5. position at from the new primary index.
  6.  
  7.  
  8. Let's suppose you have a file with indexed fields "ACCOUNT_NUMB" and
  9. "COMPANY_NAME" as key 1 and key 2 respectively.  Normally the program
  10. generated by DataBoss will use key 1 for the "Next", "Prev" etc. functions,
  11. so the "Next" record will always be the next one according to the
  12. "ACCOUNT_NUMB" field.  With these modifications, however, after you have used
  13. "Find" to find by "COMPANY_NAME" the "Next" record will now be the next
  14. record in order of company name.
  15.  
  16. The "fileCanWalk" variable is a boolean array (one element or each file).  It
  17. is used in the program logic to determine if the primary key can be swapped
  18. for that file.  By default fileCanWalk[X], (where "X" stands for the file
  19. number), is only "True" for files that are NOT linked back to a "parent".
  20. I have, however, added code to the "Do_Meu" procedure so that when you hold
  21. down the <Shift> key and press function key "F3", the "FileCanWalk" status
  22. for the current file is swapped.
  23.  
  24. If "False" (as it will be for any "child" file), it is set to "True", thus
  25. giving access to the new functionallity.  If it is "True" then it is set to
  26. "False" and the primary key for that file is automatically swapped back to
  27. key number 1.
  28.  
  29. There is no harm in removing this bit of code so that users can not change
  30. the "fileCanWalk" status, or changing it to a different "hot key".  You could
  31. also modify the default settings of "FileCanWalk" by changing the code of the
  32. "initialize()" procedure, or perhaps more simply adding in code at the end of
  33. "initialize()" to a custom skeleton.  Something of the form :--
  34.  
  35.     fileCanWalk[2] = True;
  36.  
  37.            would enable file 2's "walk" ability.
  38.  
  39. When a "child" file has "fileCanWalk" enable the "Next", "Prev" etc.
  40. functions will not be as fast.  This is because every time you locate at a
  41. different record in the child file the program logic must check to see if
  42. there is a different parent record to be aligned, and if there is it must
  43. read it from disk and then update the display.
  44.  
  45.  
  46. The skeleton is compressed into USEFUL34.LZH.  Use the public domain LHA
  47. compression utility to decompress this file.  In case you don't have LHA
  48. a copy of version 2.10 is provided on the hints disk.  If you copy LHA210.EXE
  49. to you hard disk then run it LHA 2.10 will unpack itself.  You can then use
  50. LHA.EXE to decompress USEFUL34.HNT :--
  51.  
  52.            LHA x USEFUL34.LZH
  53.  
  54. The skeleton that will be decompressed is called DBCPK.SKL, (DBC Primary Key
  55. skeleton).  If you look through the skeleton you will be able to locate all
  56. the relevant modifications as each bit of modified code has the comment
  57. /*MOD PK*/ at the end of each line.
  58.