Ir al contenido



Foto

Clientdataset no muestra enteros en campos calculados


  • Por favor identifícate para responder
4 respuestas en este tema

#1 edusalou

edusalou

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationSalou

Escrito 26 marzo 2014 - 07:52

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?

  • 0

#2 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

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.
  • 0

#3 edusalou

edusalou

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationSalou

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.  :wink: No hice actualizaciones y veo muy probable que sea ese el problema… Ya os contaré…

  • 0

#4 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 28 marzo 2014 - 03:31

Intenta cambiar



delphi
  1. CajaImporte.value:=CajaCantidad.value*CajaPrecio.value;



por



delphi
  1. CajaImporte.asCurrency:=CajaCantidad.value*CajaPrecio.asCurrency;


me cuentas.

Saludos
  • 0

#5 edusalou

edusalou

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationSalou

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” (y)

  • 0