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.

Errores en campos calculados

Foro público de Xailer en español
Responder
Avatar de Usuario
XeviCOMAS
Mensajes: 536
Registrado: Sab Mar 12, 2011 8:16 pm

Errores en campos calculados

Mensaje por XeviCOMAS »

Me està ocurriendo un error, y no veo como poder salvarlo...

Bien, en DBFs, me está funcionando correctamente, el tema va por MariaDB

Dispongo de un TDBBrowse y una de las columnas pertenece a un campo calculado
Además, el TDataSet dispone de más campos calculados, como por ejemplo...

miDataSet:AddCalcField( "BASE1", {|| miDataSet:TOTAL - miDataSet:DTO } )


El error que me da, es cuando hago un filter() y no hay ningún registro que cumpla la condición, pues al llegar al campo calculado, en DBF por ejemplo no da error porque es 0, pero en una Tabla MariaDB, lanza error!!!

También ocurre si en el Browse, elimino el ultimo registro o si elimino el único registro...

Alguna ayuda!!!

Estoy haciendo mal los campos calculados???

Gracias por vuestro tiempo.
Un Saludo,
Xevi.
Avatar de Usuario
gabo1
Mensajes: 104
Registrado: Lun Oct 13, 2014 9:42 am

Re: Errores en campos calculados

Mensaje por gabo1 »

Hola Xavi
Creo que la unica solución es que valides que el campo "BASE1" exista en el DataSet y que su valor no sea NIL
Saludos!
Avatar de Usuario
XeviCOMAS
Mensajes: 536
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Errores en campos calculados

Mensaje por XeviCOMAS »

Exacto,

Se me vino a la mente esta noche esa solución.
Puesta e implementada perfectamente!!!

miDataSet:AddCalcField( "BASE1", {|| If( miDataSet:TOTAL = Nil, 0, miDataSet:TOTAL - miDataSet:DTO ) } )

Es como si se creara un registro "fantasma" por unos instantes, al eliminar un registro o al hacer un filtro vacio... no se, eso es lo que me viene a la cabeza. En fin, Solucionado!!!

Gracias.
Un Saludo,
Xevi.
Responder