La Función Valid At se puede usar con números.

Hola!
Puedo utilizar y como la función Valid At con una variable Númerica, ya que, si la he utilizado con una alfanumérica, pero con el mismo formato para una numérica me da error, y lo que quiero es controla la entra de un número, que debe ser 1 o 2.
Espero tú ayuda.
Gracias.

1 Respuesta

Respuesta
1
¿A qué te refieres con la función "Valid At"? ¿Qué versión de Fox estas usando?
Si puedes, trata de proporcionar más información sobre tu caso y tal vez algún ejemplo.
Mi Versión es Foxpro 6.0 en español.
Mi ejemplo seria
@ 10, 15 Get M.DRCR "9"
    Valit at (m.drcr, "1,2") ;
Para que sólo permita el número 1 o 2, permita otros números.
Gracias
Ah, ya veo, lo que pasa es que la función que tu estas utilizando es la función <AT()> que sirve para determinar si existe una cadena de caracteres en otra cadena, por ejemplo AT("x", "Fox"), aquí lo que el programa hace es buscar el carácter "x" en la cadena "Fox", pero solo funciona con caracteres, por eso es que te manda el error.
Si lo que tu quieres es evaluar la entrada del usuario, primero debes determinar si lo quieres evaluar como carácter o como número, en este caso me parece que tu tienes un variable numérica y quieres que el usuario solo pueda poner ya sea 1 o 2. Para esto tienes que poner una instrucción que devuelva un valor verdadero (.T.) Solo si el número introducido es 1 o 2. Hay varias formas de lograrlo, aquí te muestro unos ejemplos:
** Para hacerlo con valores numéricos
nNum = 0
@ 10, 15 GET nNum VALID INLIST(nNum, 1, 2)
READ
** Para hacerlo con valores de tipo caracter
cNum = " "
@ 10, 15 GET cNum VALID INLIST(cNum, "1", "2")
READ
** O puedes usar una función si tu validación es más compleja
nNum = 0
@ 10, 15 GET nNum VALID FuncionValida(nNum)
READ
FUNCTION FuncionValida(nVal)
IF (nVal > 0 AND nVal < 100) AND nVal != 56
    RETURN .T.
ENDIF
RETURN .F.
Endfunc
Toma en cuenta que la función debe regresar un valor verdadero (.T.) o
falso (.F.) Ya que esto es lo que determina si la entrada es válida o no, también puede regresar números, en éste caso los mayores que 0 son verdaderos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas