home *** CD-ROM | disk | FTP | other *** search
- * Demo of Nget
- Ncount = 1
- CLEAR
- Xvar1 = "0"
- Xvar2 = "0"
- Xvar3 = "0"
- Xvar4 = "0"
- Xvar5 = 0
- Xvar6 = 0
- Xvar7 = 0
- Xvar8 = 0
-
- DO WHILE Ncount > 0 .AND. Ncount < 9
- DO CASE
- CASE Ncount = 1
- Xvar1 = NGET(5,1,10,1,"$","C",15,VAL(Xvar1))
- CASE Ncount = 2
- Xvar2 = NGET(6,1,10,2,"$","C",15,VAL(Xvar2))
- CASE Ncount = 3
- Xvar3 = NGET(7,1,10,3," ","C",15,VAL(Xvar3))
- CASE Ncount = 4
- Xvar4 = NGET(8,1,10,4," ","C",15,VAL(Xvar4))
- CASE Ncount = 5
- Xvar5 = NGET(9,1,10,5,"$","N",15,Xvar5)
- CASE Ncount = 6
- Xvar6 = NGET(10,1,10,6,"$","N",15,Xvar6)
- CASE Ncount = 7
- Xvar7 = NGET(11,1,10,7,"$","N",15,Xvar7)
- CASE Ncount = 8
- Xvar8 = NGET(12,1,10,8,"$","N",15,Xvar8)
- ENDCASE
- ENDDO
- @ 13, 1 SAY Xvar1+ TYPE("Xvar1")
- @ 14, 1 SAY Xvar2+ TYPE("Xvar2")
- @ 15, 1 SAY Xvar3+ TYPE("Xvar3")
- @ 16, 1 SAY Xvar4+ TYPE("Xvar4")
- @ 17, 1 SAY STR(Xvar5)+ TYPE("Xvar5")
- @ 18, 1 SAY STR(Xvar6)+ TYPE("Xvar6")
- @ 19, 1 SAY STR(Xvar7)+ TYPE("Xvar7")
- @ 20, 1 SAY STR(Xvar8)+ TYPE("Xvar8")
-
-
-
-
- FUNCTION NGET
- PARAMETERS Nrow, Ncol, Nlen, Ndec, Etype, Otype, Nwidth,Oval
- * SYNTAX Exp = NGET(expN1,expN2,expN3,expN4,expC1,expC2,expN5,expN6)
- * N1, N2 = Row, Col to get
- * N3, N4 = Field len, Dec
- * C1 = "$" or null, C2 = "C" for Character or "N" for numeric
- * N5 = width of display area
- * N6 (Optional) current value of number
- IF ISCOLOR() .AND. LEN(SETCOLOR())=24
- SET COLOR TO SUBSTR(SETCOLOR(),8,6)
- ELSE
- SET COLOR TO ("N/W")
- ENDIF
- Mkey = 0
- Exit_val = .F.
- IF PCOUNT() = 8
- Num1 = STR(Oval,Nlen,Ndec)
- Cnum = ALLTRIM(LEFT(Num1,Nlen-(Ndec+1)))
- Cdec = ALLTRIM(RIGHT(REPLICATE("0",Ndec)+Num1,Ndec))
- ELSE
- STORE "" TO Cnum
- STORE REPLICATE("0",Ndec) TO Cdec
- ENDIF
- Onum = LTRIM(TRANSFORM(VAL(Cnum + "." + Cdec),"999,999,999."+REPLICATE("9",Ndec)))
- @ Nrow, Ncol SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
- @ Nrow, Ncol SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
- DO WHILE ! Exit_val
- DO WHILE Mkey = 0
- Mkey = INKEY()
- ENDDO
- DO CASE
- CASE Mkey = 13 .OR. Mkey = 3 .OR. Mkey = 27
- * Increment counter
- Ncount = ncount + 1
- Exit_val = .T.
- CASE Mkey = 18
- * Decrement counter
- Ncount = ncount - 1
- Exit_val = .T.
- CASE (Mkey >47 .AND. Mkey < 59)
- Cdec = Cdec + CHR(Mkey)
- IF LEN(Cdec) > Ndec
- Cnum = Cnum + SUBSTR(Cdec,1,1)
- Cdec = SUBSTR(Cdec,2,Ndec)
- ENDIF
- CASE Mkey = 7 .OR. Mkey = 8
- IF LEN(Cnum) > 0
- Cdec = RIGHT(Cnum,1) + Cdec
- Cnum = LEFT(Cnum,LEN(Cnum)-1)
- ELSE
- Cdec = "0" + Cdec
- ENDIF
- Cdec = LEFT(Cdec,Ndec)
- CASE Mkey = 67 .or. Mkey = 99
- STORE "" TO Cnum
- STORE REPLICATE("0",Ndec) TO Cdec
- ENDCASE
- IF LEFT(CNUM,1) = "0"
- Cnum = SUBSTR(Cnum,2,LEN(Cnum)-1)
- ENDIF
- IF (LEN(Cnum) + LEN(Cdec) + 1) >= Nlen
- * Increment
- Ncount = ncount + 1
- Exit_val = .T.
- ENDIF
- Onum = LTRIM(TRANSFORM(VAL(Cnum + "." + Cdec),"999,999,999."+REPLICATE("9",Ndec)))
- @ Nrow, Ncol SAY SPACE(Nwidth-LEN(Onum)) + IF(Etype="$","$"," ") + Onum
- Mkey = 0
- ENDDO
- IF LASTKEY() = 27 .AND. PCOUNT() = 8
- RETURN IF(Otype = "N", Oval, STR(Oval,Nlen,Ndec))
- ELSE
- RETURN IF(Otype = "N", VAL(Cnum + "." + Cdec), (Cnum + "." + Cdec))
- ENDIF
-