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

  1.     // Tbex18.prg
  2.     //
  3.     // Simple database browse with added cosmetics
  4.     // Compile with /a /m /n /w
  5.     //
  6.     // Gray minus acts as a toggle. If record is deleted, it recalls
  7.     // it. If it is not deleted, it deletes it. Uses Alert function
  8.     // to confirm.
  9.  
  10.     #include "Inkey.ch"
  11.  
  12.     // Default column separator
  13.     #define DEF_CSEP  " " + chr(179) + " "
  14.  
  15.     // Default heading separator
  16.     #define DEF_HSEP chr(205) + chr(209) + chr(205)
  17.  
  18.     // Default footing separator
  19.     #define DEF_FSEP chr(205) + chr(207) + chr(205)
  20.  
  21.     #define K_MINUS  45
  22.  
  23.     FUNCTION Tbex18
  24.  
  25.     FIELD Lname, Fname, Addr1, Addr2, Addr3, Addr4 IN Tbdbf1
  26.  
  27.     LOCAL oTbr  := TBrowseDb(1, 1, MaxRow() - 1, MaxCol() - 1)
  28.     LOCAL oTbc1 := TBColumnNew("Last name",  {|| Lname })
  29.     LOCAL oTbc2 := TBColumnNew("First name", {|| Fname })
  30.     LOCAL oTbc3 := TBColumnNew("Address 1",  {|| Addr1 })
  31.     LOCAL oTbc4 := TBColumnNew("Address 2",  {|| Addr2 })
  32.     LOCAL oTbc5 := TBColumnNew("Address 3",  {|| Addr3 })
  33.     LOCAL oTbc6 := TBColumnNew("Address 4",  {|| Addr4 })
  34.     LOCAL oTbc7 := TBColumnNew("Del",        {|| iif(Deleted(), "*", " ") })
  35.     LOCAL nKey
  36.     LOCAL lExitRequested
  37.  
  38.       oTbr:colSep  := DEF_CSEP
  39.       oTbr:headSep := DEF_HSEP
  40.       oTbr:footSep := DEF_FSEP
  41.  
  42.       CLEAR SCREEN
  43.  
  44.       @ 0, 0 TO MaxRow(), MaxCol()
  45.  
  46.       USE Tbdbf1
  47.  
  48.       oTbr:addColumn(oTbc7)
  49.  
  50.       oTbc1:width := 20
  51.       oTbr:addColumn(oTbc1)
  52.  
  53.       oTbc2:width := 20
  54.       oTbr:addColumn(oTbc2)
  55.  
  56.       oTbr:addColumn(oTbc3)
  57.       oTbr:addColumn(oTbc4)
  58.       oTbr:addColumn(oTbc5)
  59.       oTbr:addColumn(oTbc6)
  60.  
  61.       lExitRequested := .F.
  62.       DO WHILE !lExitRequested
  63.         DO WHILE !oTbr:stabilize()
  64.         ENDDO
  65.         nKey := InKey(0)
  66.  
  67.         DO CASE
  68.           CASE nKey == K_MINUS
  69.             IF !Deleted()
  70.               IF Alert("Delete Record", {"Yes", "No"}) == 1
  71.                 DELETE
  72.                 oTbr:refreshCurrent()
  73.               ENDIF
  74.             ELSE
  75.               IF Alert("Recall Record", {"Yes", "No"}) == 1
  76.                 RECALL
  77.                 oTbr:refreshCurrent()
  78.               ENDIF
  79.             ENDIF
  80.  
  81.           CASE nKey == K_DOWN;       oTbr:down()
  82.           CASE nKey == K_UP;         oTbr:up()
  83.           CASE nKey == K_PGDN;       oTbr:pageDown()
  84.           CASE nKey == K_PGUP;       oTbr:pageUp()
  85.           CASE nKey == K_CTRL_PGUP;  oTbr:goTop()
  86.           CASE nKey == K_CTRL_PGDN;  oTbr:goBottom()
  87.           CASE nKey == K_RIGHT;      oTbr:right()
  88.           CASE nKey == K_LEFT;       oTbr:left()
  89.           CASE nKey == K_HOME;       oTbr:home()
  90.           CASE nKey == K_END;        oTbr:end()
  91.           CASE nKey == K_CTRL_LEFT;  oTbr:panLeft()
  92.           CASE nKey == K_CTRL_RIGHT; oTbr:panRight()
  93.           CASE nKey == K_CTRL_HOME;  oTbr:panHome()
  94.           CASE nKey == K_CTRL_END;   oTbr:panEnd()
  95.           CASE nKey == K_ESC;        lExitRequested := .T.
  96.         ENDCASE
  97.       ENDDO
  98.  
  99.     RETURN NIL
  100.  
  101.  
  102.