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
User avatar
XeviCOMAS
Posts: 515
Joined: Sat Mar 12, 2011 8:16 pm

Errores en campos calculados

Postby XeviCOMAS » Mon Apr 29, 2019 10:59 pm

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.
gabo1
Posts: 68
Joined: Mon Oct 13, 2014 9:42 am

Re: Errores en campos calculados

Postby gabo1 » Tue Apr 30, 2019 12:38 am

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!
User avatar
XeviCOMAS
Posts: 515
Joined: Sat Mar 12, 2011 8:16 pm

Re: Errores en campos calculados

Postby XeviCOMAS » Tue Apr 30, 2019 8:55 am

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.

Return to “Spanish”