![]() |
Evento de DBCheckBox para modificar datos
Hola a todos,
trabajo con D7 y SQL 2005 Express, en un form muestro los datos de un qry, entre ellos un DBCheckBox el cual tiene el siguiente código en el evento onclick : la rutina CalculaHoras calcula y distribuye los valores calculados en diferentes campos, eso funciona perfectamente. Lo curioso, o al menos a mí me lo parece, es que al mostrar el form con showmodal se ejecuta ese código, con lo cual entiendo que se está disparando el evento TFEdtarPARTESLIN.DBCheckEXTRAClick y no lo encuentro muy normal... o si ?? La aplicación calcula partes horarios de trabajadores, distribuye las horas en función de un calendario laboral y unos turnos de trabajo, pero necesitan un proceso manual para "asignar" determinadas horas como horas extras :eek:, si, si... a mí también me gustaría un jefe así :D Así que añadí un campo boolean a la tabla para determinar si esas horas eran "asignadas manualmente" como extras y es ese el campo del DBCheckBox. Si a alguien se le ocurre otra forma mejor de solventarlo, se admiten propuestas :D:D Saludos y Gracias:cool: |
Cita:
A mi a prori tampoco me parece normal, pero me da la impresión de que así es. |
Hola de nuevo Neftali, lo siento debo ser tu cruz :eek: ;);)
he probado esto y no se dispara al mostrar el form !!!! no entiendo nada. Abusando de tu buen hacer, se te ocurre otra alternativa para lo comentado de las horas extras ?? Saludos y Muchas Gracias |
Cita:
Yo en algun caso lo que he hecho es levantar un flag antes de abrir, y bajarlo una vez abierta la consulta. En los eventos se filtran todos aquellos que llegan mientras el flag está activo. No se si esta solución te puede servir a tí. |
|
El problema es que el evento OnClick del DBCheckBox se va a ejecutar cuando al navegar por los registros, se haga el cambio de estado, algo asi como un evento OnChange. Eso se puede verificar en el codigo de la VCL del mismo componente, mas concretamente en la clase ancestra del TDBCheckBox.;)
Cita:
Saludos...:) |
En ese caso tal vez se podría combinar con el State del Dataset para verificar que se está modificando el valor y no cargándolo.
Supongo que habrá diferencia de estado cuendo se está navegando a cuando realmente el usuario lo modifica (edita). |
Cita:
Saludos. Al González. :) |
Neftali, rgstuamigo y [Al González] gracias por la ayuda ;)
efectivamente el estado del conjunto de datos dispara ese evento así que siguiendo vuestro sabio consejo lo he dejado así :
de esa forma sólo se ejecuta al editar, en función del Checked o Unchecked muestro un mensaje diferente pero ambos pasan por la rutina de distribución de horas. Muchas Gracias por la ayuda, por mi parte la duda queda resuelta. Saludos |
| La franja horaria es GMT +2. Ahora son las 04:48:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi