home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a065 / 1.img / TBEXS.EXE / TBEX12.PRG < prev    next >
Encoding:
Text File  |  1992-03-17  |  2.0 KB  |  89 lines

  1. // Tbex12.prg
  2. //
  3. // DbLookup function
  4.  
  5. #include "Inkey.ch"
  6.  
  7. // Default column separator
  8. #define DEF_CSEP  " " + chr(179) + " "
  9.  
  10. // Default heading separator
  11. #define DEF_HSEP chr(205) + chr(209) + chr(205)
  12.  
  13. // Default footing separator
  14. #define DEF_FSEP chr(205) + chr(207) + chr(205)
  15.  
  16. FUNCTION Test
  17.  
  18.   CLEAR SCREEN
  19.   DbLookup("tbdbf1")
  20.   ? Recno()
  21.  
  22. RETURN NIL
  23.  
  24.  
  25. FUNCTION DbLookup(cDbfName)
  26.  
  27. LOCAL nSaveSel := Select()
  28. LOCAL oTbr := TBrowseDB(11, 11, 19, 69)
  29. LOCAL cSaveScr := SaveScreen(10, 10, 20, 70)
  30. LOCAL nField
  31. LOCAL oTbcTemp
  32. LOCAL lExitRequested := .F.
  33. LOCAL nKey
  34.  
  35.   oTbr:headSep := DEF_HSEP
  36.   oTbr:footSep := DEF_FSEP
  37.   oTbr:colSep  := DEF_CSEP
  38.  
  39.   @ 10, 10 TO 20, 70
  40.   USE (cDbfName) NEW
  41.  
  42.   // Create and add a TBColumn object for each database field
  43.   FOR nField := 1 TO Fcount()
  44.     oTbcTemp := TBColumnNew(Field(nField), FieldBlock(Field(nField)))
  45.     oTbr:addColumn(oTbcTemp)
  46.   NEXT
  47.  
  48.   DO WHILE !lExitRequested
  49.     DO WHILE !oTbr:stabilize()
  50.     ENDDO
  51.     nKey := InKey(0)
  52.     IF !StdMeth(nKey, oTbr)
  53.       DO CASE
  54.         CASE nKey == K_ESC .OR. nKey == K_ENTER
  55.           lExitRequested := .T.
  56.       ENDCASE
  57.     ENDIF
  58.   ENDDO
  59.  
  60.   SELECT (nSaveSel)
  61.   RestScreen(10, 10, 20, 70, cSaveScr)
  62.  
  63. RETURN NIL
  64.  
  65.  
  66. FUNCTION StdMeth(nKey, oTbr)
  67.  
  68. LOCAL lKeyHandled := .T.
  69.  
  70.   DO CASE
  71.     CASE nKey == K_DOWN;       oTbr:down()
  72.     CASE nKey == K_UP;         oTbr:up()
  73.     CASE nKey == K_PGDN;       oTbr:pageDown()
  74.     CASE nKey == K_PGUP;       oTbr:pageUp()
  75.     CASE nKey == K_CTRL_PGUP;  oTbr:goTop()
  76.     CASE nKey == K_CTRL_PGDN;  oTbr:goBottom()
  77.     CASE nKey == K_RIGHT;      oTbr:right()
  78.     CASE nKey == K_LEFT;       oTbr:left()
  79.     CASE nKey == K_HOME;       oTbr:home()
  80.     CASE nKey == K_END;        oTbr:end()
  81.     CASE nKey == K_CTRL_LEFT;  oTbr:panLeft()
  82.     CASE nKey == K_CTRL_RIGHT; oTbr:panRight()
  83.     CASE nKey == K_CTRL_HOME;  oTbr:panHome()
  84.     CASE nKey == K_CTRL_END;   oTbr:panEnd()
  85.     OTHERWISE;                 lKeyHandled := .F.
  86.   ENDCASE
  87.  
  88. RETURN lKeyHandled
  89.