home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / nget.zip / NGETDEMO.PRG
Text File  |  1988-07-20  |  3KB  |  119 lines

  1. * Demo of Nget
  2. Ncount = 1
  3. CLEAR
  4. Xvar1 = "0"
  5. Xvar2 = "0"
  6. Xvar3 = "0"
  7. Xvar4 = "0"
  8. Xvar5 = 0
  9. Xvar6 = 0
  10. Xvar7 = 0
  11. Xvar8 = 0
  12.  
  13. DO WHILE Ncount > 0 .AND. Ncount < 9
  14.    DO CASE
  15.    CASE Ncount = 1
  16.       Xvar1 = NGET(5,1,10,1,"$","C",15,VAL(Xvar1))
  17.    CASE Ncount = 2
  18.       Xvar2 = NGET(6,1,10,2,"$","C",15,VAL(Xvar2))
  19.    CASE Ncount = 3
  20.       Xvar3 = NGET(7,1,10,3," ","C",15,VAL(Xvar3))
  21.    CASE Ncount = 4
  22.       Xvar4 = NGET(8,1,10,4," ","C",15,VAL(Xvar4))
  23.    CASE Ncount = 5
  24.       Xvar5 = NGET(9,1,10,5,"$","N",15,Xvar5)
  25.    CASE Ncount = 6
  26.       Xvar6 = NGET(10,1,10,6,"$","N",15,Xvar6)
  27.    CASE Ncount = 7
  28.       Xvar7 = NGET(11,1,10,7,"$","N",15,Xvar7)
  29.    CASE Ncount = 8
  30.       Xvar8 = NGET(12,1,10,8,"$","N",15,Xvar8)
  31.    ENDCASE
  32. ENDDO
  33. @ 13, 1 SAY Xvar1+ TYPE("Xvar1")
  34. @ 14, 1 SAY Xvar2+ TYPE("Xvar2")
  35. @ 15, 1 SAY Xvar3+ TYPE("Xvar3")
  36. @ 16, 1 SAY Xvar4+ TYPE("Xvar4")
  37. @ 17, 1 SAY STR(Xvar5)+ TYPE("Xvar5")
  38. @ 18, 1 SAY STR(Xvar6)+ TYPE("Xvar6")
  39. @ 19, 1 SAY STR(Xvar7)+ TYPE("Xvar7")
  40. @ 20, 1 SAY STR(Xvar8)+ TYPE("Xvar8")
  41.  
  42.  
  43.  
  44.  
  45. FUNCTION NGET
  46. PARAMETERS Nrow, Ncol, Nlen, Ndec, Etype, Otype, Nwidth,Oval
  47. * SYNTAX Exp = NGET(expN1,expN2,expN3,expN4,expC1,expC2,expN5,expN6)
  48. * N1, N2 = Row, Col to get
  49. * N3, N4 = Field len, Dec
  50. * C1 = "$" or null, C2 = "C" for Character or "N" for numeric
  51. * N5 = width of display area
  52. * N6 (Optional) current value of number
  53. IF ISCOLOR() .AND. LEN(SETCOLOR())=24
  54.    SET COLOR TO SUBSTR(SETCOLOR(),8,6)
  55. ELSE
  56.    SET COLOR TO ("N/W")
  57. ENDIF
  58. Mkey = 0
  59. Exit_val = .F.
  60. IF PCOUNT() = 8
  61.    Num1 = STR(Oval,Nlen,Ndec)
  62.    Cnum = ALLTRIM(LEFT(Num1,Nlen-(Ndec+1)))
  63.    Cdec = ALLTRIM(RIGHT(REPLICATE("0",Ndec)+Num1,Ndec))
  64. ELSE
  65.    STORE "" TO Cnum
  66.    STORE REPLICATE("0",Ndec) TO Cdec
  67. ENDIF
  68. Onum = LTRIM(TRANSFORM(VAL(Cnum + "." + Cdec),"999,999,999."+REPLICATE("9",Ndec)))
  69. @ Nrow, Ncol  SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
  70. @ Nrow, Ncol  SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
  71. DO WHILE ! Exit_val
  72.    DO WHILE Mkey = 0
  73.       Mkey = INKEY()
  74.    ENDDO
  75.    DO CASE
  76.    CASE Mkey = 13 .OR. Mkey = 3 .OR. Mkey = 27
  77.       * Increment counter
  78.       Ncount = ncount + 1
  79.       Exit_val = .T.
  80.    CASE Mkey = 18
  81.       * Decrement counter
  82.       Ncount = ncount - 1
  83.       Exit_val = .T.
  84.    CASE (Mkey >47 .AND. Mkey < 59)
  85.       Cdec = Cdec + CHR(Mkey)
  86.       IF LEN(Cdec) > Ndec
  87.          Cnum = Cnum + SUBSTR(Cdec,1,1)
  88.          Cdec = SUBSTR(Cdec,2,Ndec)
  89.       ENDIF
  90.    CASE Mkey = 7 .OR. Mkey = 8
  91.       IF LEN(Cnum) > 0
  92.          Cdec = RIGHT(Cnum,1) + Cdec
  93.          Cnum = LEFT(Cnum,LEN(Cnum)-1)
  94.       ELSE
  95.          Cdec = "0" + Cdec
  96.       ENDIF
  97.       Cdec = LEFT(Cdec,Ndec)
  98.    CASE Mkey = 67 .or. Mkey = 99
  99.       STORE "" TO Cnum
  100.       STORE REPLICATE("0",Ndec) TO Cdec
  101.    ENDCASE
  102.    IF LEFT(CNUM,1) = "0"
  103.       Cnum = SUBSTR(Cnum,2,LEN(Cnum)-1)
  104.    ENDIF
  105.    IF (LEN(Cnum) + LEN(Cdec) + 1) >= Nlen
  106.       * Increment
  107.       Ncount = ncount + 1
  108.       Exit_val = .T.
  109.    ENDIF
  110.    Onum = LTRIM(TRANSFORM(VAL(Cnum + "." + Cdec),"999,999,999."+REPLICATE("9",Ndec)))
  111.    @ Nrow, Ncol  SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
  112.    Mkey = 0
  113. ENDDO
  114. IF LASTKEY() = 27 .AND. PCOUNT() = 8
  115.    RETURN IF(Otype = "N", Oval, STR(Oval,Nlen,Ndec))
  116. ELSE
  117.    RETURN IF(Otype = "N", VAL(Cnum + "." + Cdec), (Cnum + "." + Cdec))
  118. ENDIF
  119.