Víctor me salto un error

El que me diste vos lo pase así
a=2007
b=6
c=30
d= "Valida"
e= "Invalida"
If a > 1900 And a < 3000 And b > 0 And b <= 12
If c <= 28 Or (c = 29 And b = 2 And ( a % 4 ) = 0) Or ;
(c = 31 And AllTrim( b ) $ "1.3.5.7.8.10.12") Or ;
(c = 30 And AllTrim( b ) $ "4.6.9.11")
?d
Else
?e
EndIf
EndIf
Puse de y e como variable sino no sabia que era cMess valida y cMess Invalida
pero bue, venia bien hasta que probé con días 30 y 31
me tira este error
Program error
Function argument value, type, or count is invalid
esto solo pasa si pongo dias 30 o 31, lo demas anda barbaro,
y otra cosa en ves de poner la funion alltrim, no se podria usar inlist
muchisimas gracias

1 respuesta

Respuesta
1
Las funciones InList y AllTrim son distintas, no se puede sustituir.
Probado:
a=2007
b=6
c=30
d= "Valida"
e= "Invalida"
If a > 1900 And a < 3000 And b > 0 And b <= 12
     If c <= 28 Or (c = 29 And b = 2 And ( a % 4 ) = 0) Or ;
       (c = 31 And AllTrim( Str( b ) ) $ "1.3.5.7.8.10.12") Or ;
       (c = 30 And AllTrim( Str( b ) ) $ "4.6.9.11")
          ?d
     Else
         ?e
     EndIf
EndIf
Ahora si anda bárbaro, víctor vos me podrías decir que es lo que hace esa función AllTrim
Por que yo busque y me dice que deja un lugar tanto a la derecha como a la izq, y la verdad no entiendo, y para que es el STR que agregaste y el signo $ muchísimas gracias
Alltrim quita los espacios
Str convierte los números en caracteres
$ es el "atajo" de una función de búsqueda de caracteres
c = 31 And AllTrim( Str( b ) ) $ "1.3.5.7.8.10.12") Or
tonces en este renglon como funciona alltrim, donde quitas los espacios, por que no entiendo =)
Convierto b en caracter [Str()] y elimino los espacios [AllTrim()] antes de compararla [$] con la cadena "1.3.5.7.8.10.12"
Vitro tu eres profesor de VFP, por que la verdad estaría encantado de ser alumno tuyo, si das clase dime donde por fa
Abrazos y mil gracias
No lo cierro por si te tengo que preguntar algo más
¿No sería mejor que en caso de duda abrieras una nueva pregunta?
El número de preguntas sin cerrar que podemos tener es limitado, por lo que si no tienes otra duda en la que consideres que puedo serte de utilidad, favor de cerrar esta pregunta para que pueda seguir respondiendo otras inquietudes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas