Yeah, but these things will always crap out on you if you don't to some checking to 
see if the entry
is a valid numeric to start.

Here is a Stored proc that I use for this:
*Note: the line "IF vchar NOT IN ('.','0','1','2','3','4','5','6','7','8','9','0') 
THEN".  You may
add the $ sign if you expect your user to add that to the entry.

*(spisdig mod  072201)
  CLEAR VAR MICRORIM_RETURN, stp_return, vret
  SET VAR p1 TEXT
  SET VAR vslen INTEGER = 0
  SET VAR vslen = (SLEN(.p1))
  SET VAR vcnt = 1
  SET VAR vchar TEXT
  SET V vret INTEGER = 1
  WHILE vcnt <= vslen THEN
    SET VAR vchar = (SGET(.p1,1,.vcnt))
    IF vchar NOT IN ('.','0','1','2','3','4','5','6','7','8','9','0') THEN
      SET V vret = 0
      SET V vslen = 0
      BREAK
    ELSE
      SET V vret = 1
    ENDIF
    SET V vcnt = (.vcnt + 1)
  ENDWHILE
  CLEAR VAR p1, vslen, vcnt, vchar
  IF vret = 1 THEN
    RETURN (1)
  ELSE
    RETURN (0)
  ENDIF
  RETURN


An Example of how I call this SP:

LABEL bgdiaquo
        CLEAR VAR vres1
        DIALOG 'Enter Quote Number To Change' vres1=10 vk1 1 AT 10
        IF vk1 <> '[enter]' THEN
          GOTO ndproc
        ENDIF
        IF (SLEN(.vres1)) = 0 THEN
          SET VAR vmsg = ('You must Enter a Valid Number. Your Entry' & +
          '"NONE"')
          PAUSE 2 USING .vmsg AT CENTER CENTER
          GOTO bgdiaquo
        ENDIF
        SET VAR p1 TEXT = .vres1
        SET VAR vtrue =  (CALL sp_isdig(.p1))
        IF vtrue = 0 THEN
          SET VAR vmsg = ('"' + .vres1 + '"' &  'Is Not a valid number.')
          SET VAR vmsg = (.vmsg & 'You must Enter a Valid Number')
          PAUSE 2 USING .vmsg AT CENTER CENTER
          GOTO bgdiaquo
        ENDIF
        SET VAR xnum INTEGER = (INT(.vres1))




----- Original Message ----- 
From: <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
Sent: Wednesday, September 24, 2003 10:07 AM
Subject: [RBASE-L] - Re: Convert Text to Currency


> Ben,
>
> Worked like a charm :)
>
> Thank you!!!!
>
> Damon
>
>
> In a message dated 9/24/2003 11:01:30 AM Eastern Daylight Time, [EMAIL PROTECTED] 
> writes:
>
> > Set v vCurVar Curr = 0
> >
> > > dialog .vMessage vInput = 14 vKey 1 caption .vcap at
> > center center
> > > Var vInput Text
> >
> > Set v vCurVar = .vInput
>
>

Reply via email to