Tratar valores .T. o .F.

29/06/2006 - 04:16 por Santo76 | Informe spam
Hola,
tengo en un formulario un procedimiento personalizado con un parametro
Ej-> PARAMETERS dato

Luego yo tengo que validar esta expresion , mirar si es mas larga de 8, y si
lo es continuar, y a la vez, tengo que validar que un campo que tambien sea
de mas de 8

como se pueden dar uno de los dos casos tengo algo asi:

IF LEN(ALLTRIM(this.Value)) >=8 or LEN(ALLTRIM(dato)) >=8

Esto esta claro que da error, ya que 'dato', todavia es .F., puesto que de
momento no le passamos ningun valor.

He probado de definir una variable publica dato e inicializar-la a "", pero
no funciona, supongo que porque aunque sea publica, dentro de este
procedimiento no la tiene en cuenta, ya que ya existe una variable 'dato' y
esta prevaleze sobre la otra.

Me iria perfecto algo como el NVL(dato,''), pero esto no me funciona, ya que
solo va con valores nulos.

Hay alguna funcion igual pero que lo haga en lugar de (Nulo, si o no),
(Verdadero, si o no)?

O alguna idea altrenativa?

Gracias.
 

Leer las respuestas

#1 Victor B.
29/06/2006 - 10:10 | Informe spam
Puedes comprobar, antes de mirar la longitud, si se trata de una cadena o de
un valor lógico, con VARTYPE()

IF VARTYPE(dato) = "L" THEN
RETURN
ENDIF


Víctor B.
Desarrollador independiente
"Santo76" escribió en el mensaje
news:
Hola,
tengo en un formulario un procedimiento personalizado con un parametro
Ej-> PARAMETERS dato

Luego yo tengo que validar esta expresion , mirar si es mas larga de 8, y
si
lo es continuar, y a la vez, tengo que validar que un campo que tambien
sea
de mas de 8

como se pueden dar uno de los dos casos tengo algo asi:

IF LEN(ALLTRIM(this.Value)) >=8 or LEN(ALLTRIM(dato)) >=8

Esto esta claro que da error, ya que 'dato', todavia es .F., puesto que de
momento no le passamos ningun valor.

He probado de definir una variable publica dato e inicializar-la a "",
pero
no funciona, supongo que porque aunque sea publica, dentro de este
procedimiento no la tiene en cuenta, ya que ya existe una variable 'dato'
y
esta prevaleze sobre la otra.

Me iria perfecto algo como el NVL(dato,''), pero esto no me funciona, ya
que
solo va con valores nulos.

Hay alguna funcion igual pero que lo haga en lugar de (Nulo, si o no),
(Verdadero, si o no)?

O alguna idea altrenativa?

Gracias.

Preguntas similares