Validar cambio en un campo


([N1] leonardo daniel velazquez fuentes) #1

Hola a todos, tengo la necesidad de validar un campo, es un campo de edicion alfabetica con opcion de localizador, entonces quiero que cuando salga del campo revise si ese chofer tiene su licencia o tarjeta medica vencida y enviar un mensaje




([N2] jorge) #2

Hola Leonardo,

daysto te va a devolver un número negativo si la fecha ya ha pasado, te faltaría contemplar que el resultado de daysto sea negativo.

Yo haría algo así:

if ((días < 31) & (días > 15)) mensaje “su licencia expira en 30 días o menos”
else if ((días < 16) & (días > 0)) mensaje “su licencia expira en 15 días o menos”
else mensaje “licencia expirada”

Un saludo

Jorge S


([N1] leonardo daniel velazquez fuentes) #3

Ok gracias… pero lo que necesito es que eso se dispare al perder el foco un control “edicion alfabetica” si observas la imagen de la pantalla de captura, cuando yo selecciono un chofer ya sea escribiendo el nombre o usando el localizador, automaticamente me trae todos los datos, lo que necesito es eso, al perder el foco se dispare el evento y ya asigne el evento y la accion pero no lo hace, puse
Leer Ficha 1 ( o de plano tengo que sacar el num. de chofer y hacer un cargar lista ?? ) para poder obtener las fechas, en el ejemplo de codigo solo puse esa validacion, pero de hecho van mas documentos que se pueden vencer y debo avisar al usuario…

no se si me explique


([N4] Infortic) #4

Hola.

¿ Pero tu problema cual es ?

¿ Que no se dispara el evento ?
¿ Que te lo calcula mal ?

¿ Has usado el debugger para ver qué pasa ?

Como te dice jorge las comprobaciones estál mal, si faltan 30 días para que caduque DIAS será negativo, si está definido sin signo el problema es doble, pues te lo guardará mal en la variable.

Aún estando bien si usas = en lugar de rangos sólo alertará cuando falten 0 , 15 o 30 días EXACTAMENTE

Traza con el debugger que encontrarás rápido el problema.

Si lo que te pasa es que no te lanza la comprobación es sólo añadir una conexión de evento a los textbox que quieras con el evento pierde foco.


([N1] leonardo daniel velazquez fuentes) #5

Ya quedo amigos, gracias, efectivamente tenia mal asignado el evento…

ahora otro asunto tengo un control estatito con una condicion si es 1, pongo la palabra “activo”, “expired” si es 0

como hago para actualizar eso, el 1 y el 0 vienen de un campo llamado status_vence_licencia, status_vence_medica los cuales son campos formula, y pues cuando capturo la fecha, quiero actualizar ese control, el intefaz recalcular no funciona


([N4] Infortic) #6

Hola.

No hace falta recalcular.

En la propiedad contenido del texto estático pones una fórmula y a funcionar.

choose(#STATUS_VENCE_LICENCIA = 1 , “ACTIVO”, “EXPIRED” )

cuando ese campo cambie de valor cambiará el contenido de forma automática.


([N1] leonardo daniel velazquez fuentes) #7

Hola, pero #STATUS_VENCE_LICENCIA que es el campo en la tabla tiene la formula que si la fecha es mayor que la fecha actual, entonces le pone 1 y si no el 0, y el choose(#STATUS_VENCE_LICENCIA = 1 , “ACTIVE”, “EXPIRED” ) asi lo tengo en contenido, pero el cambio de la fecha en la pantalla no afecta el campo #STATUS_VENCE_LICENCIA porque no eh guardado los datos, por eso necesito que se actualize en memoria al vuelo, supongo, o no entiendo como debo hacer esto… ESTOY ATORADO

[quote quote=47170]Hola.

No hace falta recalcular.

En la propiedad contenido del texto estático pones una fórmula y a funcionar.

choose(#STATUS_VENCE_LICENCIA = 1 , “ACTIVO”, “EXPIRED” )

cuando ese campo cambie de valor cambiará el contenido de forma automática.

[/quote]

([N4] Infortic) #8

Vamos a ver:

¿ Cual es la fórmula que tienes es #STATUS_VENCE_LICENCIA ? ¿Es un campo fórmula (si no lo es no se recalculará cal cambiar de día)?


([N1] leonardo daniel velazquez fuentes) #9

choose(#STATUS_VENCE_LICENCIA = 1 , “ACTIVO”, “EXPIRED” )

pero cambio la fecha y no recalcula nada, entonces pense en ponerlo en el evento perder foco, pero velneo dispara el evento perder foto al activar el calendario, total, estoy atorado en eso, incluso pense en poner un modificar campo poner status_vence_licencia si la fecha actual es mayor a la fecha actual, ya que modificar campo no dispara transaccion, pero pues no me funciona el perder foco, ni tampoco me funciona al modificar la fecha.

[quote quote=47187]Vamos a ver:

¿ Cual es la fórmula que tienes es #STATUS_VENCE_LICENCIA ? ¿Es un campo fórmula (si no lo es no se recalculará cal cambiar de día)?

[/quote]

([N1] wikan) #10

Leonardo, lo que están preguntando es cuando cambias el valor de #STATUS_VENCE_LICENCIA


([N1] leonardo daniel velazquez fuentes) #11

STATUS_VENCE_LICENCIA es un campo formula que es choose(#FECHA_VENCE_LICENCIA > currentDate(), 1, 0 )

y en el formulario tengo un texto estatico con contenido
=choose(#STATUS_VENCE_LICENCIA = 1 , “ACTIVO”, “EXPIRED” )

[quote quote=47189]Leonardo, lo que están preguntando es cuando cambias el valor de #STATUS_VENCE_LICENCIA

[/quote]

([N1] wikan) #12

Y #FECHA_VENCE_LICENCIA que contenido coge? supongo que la fecha del conductor como contenido inicial.

Aunque lo que quieres hacer lo podrías hacer directamente desde el evento