In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Campo calculado no se refresca.

Foro de Xailer profesional en español
Responder
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Campo calculado no se refresca.

Mensaje por Bingen Ugaldebere »

Hola compañeros.
Tengo un campo tDBDataEdit con la fecha de nacimiento y me he creado un
campo calculado Edad
::oDbfUsuarios:AddCalcField("Edad",{|oField|
If(!Empty(::oDbfUsuarios:FechaNacim),Int((Date()-::oDbfUsuar ios:FechaNacim)/365.25),0)
})
Al entrar en el Form veo la edad correctamente calculada dentro de un
control tDBMaskEdit pero si cambio la fecha no se refresca este control,
aunque pongo un Logdebug del campo edad y si veo que cambia.
Tengo que hacer algún refresh() del campo por que he probado y nada de nada.
Gracias y salu2.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Campo calculado no se refresca.

Mensaje por ignacio »

Bingen,
Tienes que indicar que SIEMPRE esos valores los deseas de la tabla no del
buffer de edición. De esta forma:
::oDbfUsuarios:AddCalcField("Edad",{|oField|
If(!Empty(::oDbfUsuarios:FechaNacim(
dsFIELD ) ),Int((Date()-::oDbfUsuarios:FechaNacim( dsFIELD ))/365.25),0) })
Mira el ejemplo DatacontrolsDbfData1. Lo acabo de modificar con tu misma
formula con el campo HIREDATE y funciona perfectamente.
Para más información consulta en la documentación el capítulo 'Introduccción
a los Datacontrols'
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=460a88f7@ozsrv2.ozlan.local...]460a88f7@ozsrv2.ozlan.local...[/email]
> Hola compañeros.
>
> Tengo un campo tDBDataEdit con la fecha de nacimiento y me he creado un
> campo calculado Edad
>
> ::oDbfUsuarios:AddCalcField("Edad",{|oField|
> If(!Empty(::oDbfUsuarios:FechaNacim),Int((Date()-::oDbfUsuar ios:FechaNacim)/365.25),0)
> })
>
> Al entrar en el Form veo la edad correctamente calculada dentro de un
> control tDBMaskEdit pero si cambio la fecha no se refresca este control,
> aunque pongo un Logdebug del campo edad y si veo que cambia.
>
> Tengo que hacer algún refresh() del campo por que he probado y nada de
> nada.
>
> Gracias y salu2.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Campo calculado no se refresca.

Mensaje por Bingen Ugaldebere »

Muchas gracias me volveré a leer ese capí­tulo.
Salu2.
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Campo calculado no se refresca.

Mensaje por Bingen Ugaldebere »

Siento contradecirte Ignacio pero no veo que el ejemplo
DatacontrolsDbfData1 funcione por mas que cambio la fecha no refresca
la edad del browse.
Salu2.
Ignacio Ortiz de Zúñiga escribió:
> Bingen,
>
> Tienes que indicar que SIEMPRE esos valores los deseas de la tabla no del
> buffer de edición. De esta forma:
>
> ::oDbfUsuarios:AddCalcField("Edad",{|oField|
> If(!Empty(::oDbfUsuarios:FechaNacim(
> dsFIELD ) ),Int((Date()-::oDbfUsuarios:FechaNacim( dsFIELD ))/365.25),0) })
>
> Mira el ejemplo DatacontrolsDbfData1. Lo acabo de modificar con tu misma
> formula con el campo HIREDATE y funciona perfectamente.
>
> Para más información consulta en la documentación el capí­tulo 'Introduccción
> a los Datacontrols'
>
> Un saludo
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Campo calculado no se refresca.

Mensaje por ignacio »

Bingen,
Pruebalo y me cuentas. Gracias.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=460cc8d9@ozsrv2.ozlan.local...]460cc8d9@ozsrv2.ozlan.local...[/email]
> Siento contradecirte Ignacio pero no veo que el ejemplo
> DatacontrolsDbfData1 funcione por mas que cambio la fecha no refresca
> la edad del browse.
>
> Salu2.
>
> Ignacio Ortiz de Zúñiga escribió:
>> Bingen,
>>
>> Tienes que indicar que SIEMPRE esos valores los deseas de la tabla no del
>> buffer de edición. De esta forma:
>>
>> ::oDbfUsuarios:AddCalcField("Edad",{|oField|
>> If(!Empty(::oDbfUsuarios:FechaNacim(
>> dsFIELD ) ),Int((Date()-::oDbfUsuarios:FechaNacim(
>> sFIELD ))/365.25),0) })
>>
>> Mira el ejemplo DatacontrolsDbfData1. Lo acabo de modificar con tu misma
>> formula con el campo HIREDATE y funciona perfectamente.
>>
>> Para más información consulta en la documentación el capítulo
>> 'Introduccción
>> a los Datacontrols'
>>
>> Un saludo
>>


Attached files prueba.zip (3.5 KB)Â
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Campo calculado no se refresca.

Mensaje por Bingen Ugaldebere »

Muy bien y muchas gracias así­ si que funciona correctamente, pero....
Si en vez de mostrar la edad en el browse como en tu ejemplo hay un
tDbMaskEdit del formulario que muestra la edad, como hacer que este
cambie de contenido al cambiar la fecha de nacimiento.
He probado a hacer el el onExit del tDBDateEdit de la fecha de
nacimiento {|| ::oDbMaskEdit1:Refresh() } y nada de nada.
Gracias por tu atención.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Campo calculado no se refresca.

Mensaje por ignacio »

Bingen,
Entonces, haz el cálculo sobre el valor del TDBDateEdit:Value()
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=460cec43@ozsrv2.ozlan.local...]460cec43@ozsrv2.ozlan.local...[/email]
> Muy bien y muchas gracias así si que funciona correctamente, pero....
>
> Si en vez de mostrar la edad en el browse como en tu ejemplo hay un
> tDbMaskEdit del formulario que muestra la edad, como hacer que este cambie
> de contenido al cambiar la fecha de nacimiento.
>
> He probado a hacer el el onExit del tDBDateEdit de la fecha de nacimiento
> {|| ::oDbMaskEdit1:Refresh() } y nada de nada.
>
> Gracias por tu atención.
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Campo calculado no se refresca.

Mensaje por Bingen Ugaldebere »

Nada Ignacio ni cambiándole el Value ni nada, muchas gracias por tu
esfuerzo pero hoy debo de estar un poco espeso, así­ que lo dejo hasta
después de las vacaciones.
Salu2.
Responder