calcular la edad....
Estoy realizando un pequeño sistemita para controlar empleados, lo que pretendo realizar es que cuando le escriba y/o seleccione la fecha de nacimiento, al momento de salir de este componente, me muestre automaticamente la edad en un DBEdit. Les comento que SI me muestra la edad, solo que despues de salir del campo DBDateTimeEditEh1 no me muestra la edad automaticamente, para que me pueda mostrar la edad tengo que volver al pulsar sobre el mismo campo para que me pueda mostrar la edad...
Utilizo tablas de Paradox y aqui les muestro el codigo que tengo en el evento OnExit del DBDateTimeEditEh1
Nota: El componente DBDateTimeEditEh1 es de la Libreria EhLib... mis campos que se involucran son: FechadeNacimiento y Edad de antemano muchas gracias.. |
Los componentes Data Aware y sus problemitas y sus problemotas :(
Yo usaría un TEdit son unas cuantas lineas de código mas.... pero pues ya es a juicio de cada uno |
Pregunta, ¿Tiene que ser al salir del Combo?, Porque si no, podría ser en el OnSetText del campo.
|
O también podrías aprovechar que estas usando ese componente de la biblioteca EhLib y usar su evento OnChange.
|
O pensándolo bien, mejor te sirva el OnUpdateData.
|
ya probe en OnChange y nada me muestra un error que mi tabla no esta en modo edicion... tambien puse el codigo en el evento OnsetText y me marco un error en varisnull.
ojala me puedan ayudar a solucionar este problema, la idea es mejorarlo y/o corregir el codigo... de antemano muchas gracias.... |
Pruebalo asi, en el OnChange:
|
definitivamente No lo hace
ya lo probe con el evento OnChange de la manera que me sujeriste y no realiza nada, ni siquiere muestra algo en Dbedit (Edad)... con el evento OnExit del DBDateTimeEditEh1 si lo hace, solo que tiene que pulsar otra vez sobre el mismo componente, despues de haber salido, para que te muestre la fecha...
de todos modos muchas gracias por tus sugerencias... |
Una pregunta, ¿Porque no haces un campo calculado en el DataSet para que uses el evento OnCalcFields?
|
ya lo realice se llama calcula Edad
Cita:
(TbEmpleadoscalculaEdad) gracias... |
Hola
No se si esto te servira, es de truco mania: Creo que la diferencia seria que en vez de buscar la fecha en el edit, se busque en la tabla. Saludos |
Cita:
|
en el OnCalcFields de tu dataset quedaría
FieldByName('CalculaEdad'):=trunc (trunc (date - dm.TbEmpleadosFechadeNacimiento.value) / 365); |
Bien, entonces solo basta con que coloques tu codigo en el OnCalcFields del Dataset:
|
Solo una correccion jhonny, me parece que para los campos calculados no es necesario que pongas la tabla en modo de edición.
|
Cita:
|
por fin quedo... solucionado
ahora ya solucione mi duda... gracias por su ayuda.. aqui pongo el codigo correcto que puse en el evento OnCalcsFields del DataSet, ahora si hace lo que queria, ahora solo en la pantalla donde me mostraba la edad (campo normal DBEdit) enlace el campo calculado calculaEdad... ahora si lo hace...
graciar por su ayuda... saludos:) |
La franja horaria es GMT +2. Ahora son las 14:50:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi