Hola, somos un nuevo equipo de aprendices y estamos intentando recuperar una vieja aplicación gratuita llamada Oficalc hecha en Delphi7 para actualizarla y retomar su soporte, pero nuestros conocimientos no son tan buenos como los que la hicieron.
Al abrir la aplicación de delphi7 en Delphi XE3 desaparecen los valores enteros de los campos calculados de una Clientdataset. Sin embargo, los valores decimales de calculan y muestran correctamente. ¿Es un error del Delphi XE3? ¿Le ha pasado a alguien más?
Clientdataset no muestra enteros en campos calculados
Comenzado por
edusalou
, mar 26 2014 07:52
4 respuestas en este tema
#1
Escrito 26 marzo 2014 - 07:52
#2
Escrito 26 marzo 2014 - 08:03
Bienvenido al foro. Podrías aportar un poco mas de información, que base de datos, que componentes usan para conectarse, la estructura de la tabla y la consulta SQL que presentan los problemas, y finalmente el código del evento OnCalcFields del TClientDataset en cuestión.
Delphi XE3 tiene dos actualizaciones que resuelven algunos inconvenientes con los TClientDataset, es bueno que mires si estás al día con ellas.
Saludos.
Delphi XE3 tiene dos actualizaciones que resuelven algunos inconvenientes con los TClientDataset, es bueno que mires si estás al día con ellas.
Saludos.
#3
Escrito 28 marzo 2014 - 03:04
Ocurre en todos los TClientDataset. Antes iban bien todos con Delphi7.
Algo tan sencillo como en el cajaCalcFields:
CajaImporte.value:=CajaCantidad.value*CajaPrecio.value;
Muestra todos los importes decimales en la dbgrid pero no los enteros, incluso cambiando el displayformat del clientdataset.
Lo curioso es que si el campo calculado, en lugar de ser float, es BCD sí se muestra.
Gracias a tu idea Wilson. No hice actualizaciones y veo muy probable que sea ese el problema… Ya os contaré…
Algo tan sencillo como en el cajaCalcFields:
CajaImporte.value:=CajaCantidad.value*CajaPrecio.value;
Muestra todos los importes decimales en la dbgrid pero no los enteros, incluso cambiando el displayformat del clientdataset.
Lo curioso es que si el campo calculado, en lugar de ser float, es BCD sí se muestra.
Gracias a tu idea Wilson. No hice actualizaciones y veo muy probable que sea ese el problema… Ya os contaré…
#4
Escrito 28 marzo 2014 - 03:31
Intenta cambiar
por
me cuentas.
Saludos
delphi
CajaImporte.value:=CajaCantidad.value*CajaPrecio.value;
por
delphi
CajaImporte.asCurrency:=CajaCantidad.value*CajaPrecio.asCurrency;
me cuentas.
Saludos
#5
Escrito 30 marzo 2014 - 08:16
Os cuento como lo hemos solucionado:
Como bien sospechaba Wilson, debería ser un tema de actualizaciones y no me atrevía a migrar a XE5 porque necesitamos un par de componente de las Jedi JVCL que no se instalaban. Pero en otro foro vuestro alguien dijo que las JVCL se descargan e instalan directamente desde la página de Embarcadero: Items 29677 y 29678 y … voilà…
Abro el proyecto en XE5 y las Clientdadaset vuelve a funcionar. (De todos modos ya las estábamos pasando a tablas ADO)
Así que os estamos doblemente agradecidos.
“The Oficalc Team”
Como bien sospechaba Wilson, debería ser un tema de actualizaciones y no me atrevía a migrar a XE5 porque necesitamos un par de componente de las Jedi JVCL que no se instalaban. Pero en otro foro vuestro alguien dijo que las JVCL se descargan e instalan directamente desde la página de Embarcadero: Items 29677 y 29678 y … voilà…
Abro el proyecto en XE5 y las Clientdadaset vuelve a funcionar. (De todos modos ya las estábamos pasando a tablas ADO)
Así que os estamos doblemente agradecidos.
“The Oficalc Team”