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

  1. // Tbex14.prg
  2. //
  3. // Simple database browse with added cosmetics
  4. // Compile with /a /m /n /w
  5. // Displays entire row of records with negative AcBal fields in red
  6.  
  7. #include "Inkey.ch"
  8.  
  9. // Default column separator
  10. #define DEF_CSEP  " " + chr(179) + " "
  11.  
  12. // Default heading separator
  13. #define DEF_HSEP chr(205) + chr(209) + chr(205)
  14.  
  15. // Default footing separator
  16. #define DEF_FSEP chr(205) + chr(207) + chr(205)
  17.  
  18.  
  19. FUNCTION Tbex14
  20.  
  21. FIELD Lname, Fname, Addr1, Addr2, Addr3, Addr4, AcBal IN Tbdbf1
  22.  
  23. LOCAL oTbr  := TBrowseDb(1, 1, MaxRow() - 1, MaxCol() - 1)
  24. LOCAL oTbc1 := TBColumnNew("Last name",  {|| Lname })
  25. LOCAL oTbc2 := TBColumnNew("First name", {|| Fname })
  26. LOCAL oTbc3 := TBColumnNew("Address 1",  {|| Addr1 })
  27. LOCAL oTbc4 := TBColumnNew("Address 2",  {|| Addr2 })
  28. LOCAL oTbc5 := TBColumnNew("Address 3",  {|| Addr3 })
  29. LOCAL oTbc6 := TBColumnNew("Address 4",  {|| Addr4 })
  30. LOCAL oTbc7 := TBColumnNew("Balance  ",  {|| AcBal })
  31. LOCAL nKey
  32. LOCAL lExitRequested
  33. LOCAL nTbcCol
  34.  
  35.   oTbr:colSep  := DEF_CSEP
  36.   oTbr:headSep := DEF_HSEP
  37.   oTbr:footSep := DEF_FSEP
  38.  
  39.   oTbr:colorSpec := "W/N,N/W,N,N.N/W,R/N,N/R"
  40.  
  41.   CLEAR SCREEN
  42.   @ 0, 0 TO MaxRow(), MaxCol()
  43.  
  44.   USE Tbdbf1
  45.  
  46.   oTbc1:width := 20
  47.   oTbr:addColumn(oTbc1)
  48.  
  49.   oTbc2:width := 20
  50.   oTbr:addColumn(oTbc2)
  51.  
  52.   oTbr:addColumn(oTbc3)
  53.   oTbr:addColumn(oTbc4)
  54.   oTbr:addColumn(oTbc5)
  55.   oTbr:addColumn(oTbc6)
  56.  
  57.   oTbr:addColumn(oTbc7)
  58.  
  59.   oTbc1:colorBlock := {|| iif(Acbal < 0, {6, 7}, {1, 2}) }
  60.   FOR nTbcCol := 2 TO oTbr:colCount
  61.     oTbr:getColumn(nTbcCol):colorBlock := oTbc1:colorBlock
  62.   NEXT
  63.  
  64.   lExitRequested := .F.
  65.   DO WHILE !lExitRequested
  66.     DO WHILE !oTbr:stabilize()
  67.     ENDDO
  68.     nKey := InKey(0)
  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.       CASE nKey == K_ESC;        lExitRequested := .T.
  86.     ENDCASE
  87.   ENDDO
  88.  
  89. RETURN NIL
  90.  
  91.