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