Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2006
HiroProtagonist HiroProtagonist is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
HiroProtagonist Va por buen camino
Error dando formato a un TFMTBCDField

Hola foreros,

trabajo con Delphi 7 Build 8.1 con los updates al dia y me encuentro con el siguente error.

Tengo un campo de tipo TFMTBCD asociado a un componente del tipo TdxCalcEdit. A este campo le doy el siguiente formato:

TNumericField(myClientDataSet.FieldByName('myField')).DisplayFormat :=
'#0,.00';



Suponiendo que tengo los siguientes valores guardados en la base de datos (Firebird 1.5):



a) 9.999
b) 19.999
c) 29.999


resulta que des de mi control veo lo siguiente:



a) 10
b) 20
c) 30



y realmente deberia ver:



a) 1
b) 2
c) 3

En cambio haciendo lo mismo con el valor 21.999 obtengo visualmente
el valor 23 !!!!

¿Alguna sugerencia?

Gracias por vuestro tiempo,

Hiro
Responder Con Cita
  #2  
Antiguo 10-04-2006
HiroProtagonist HiroProtagonist is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
HiroProtagonist Va por buen camino
Error dando formato TFMTBCDField

Perdón, pero en el post anterior describí mal el error de formato.
En realidad cuando escribo 9.999 sobre mi control el resultado que
espero al validar los datos és 10 pero realmente obtengo 1.

Como se suele decir "errare humanum est".

Gracias por vuestro tiempo,

Hiro
Responder Con Cita
  #3  
Antiguo 10-04-2006
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Poder: 0
Thales Va por buen camino
No hace mucho se me planteó a mi un problema similar, también con TFMTBCDFileld y DisplayFormat, problema que expuse en este hilo y que no resolví.
Al ver tu pregunta se me ha ocurrido buscar en google y, al parecer TFMTBCDField tiene registrados numerosos bugs, por lo que me temo que no vamos a poder solucionar nuestro problema.

http://qc.borland.com/wc/qcmain.aspx?d=2711
http://qc.borland.com/wc/qcmain.aspx?d=22410
http://qc.borland.com/wc/qcmain.aspx?d=23751

Un saludo
__________________
Mi web: http://personales.ya.com/cuaderno
Responder Con Cita
  #4  
Antiguo 10-04-2006
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Poder: 0
Thales Va por buen camino
Dandole vueltas al tema he dado con una solución que, al menos a mi me sirve y consiste en hacer un cast en la consulta para traer los datos de la base de datos:

Código SQL [-]
select cast(Campo as numeric(5,2)) 
from tabla

Así se consigue que el campo no sea del tipo TFMTBCDField, claro que esto no te servirá si en el campo tienes números grandes.

Un saludo
__________________
Mi web: http://personales.ya.com/cuaderno
Responder Con Cita
  #5  
Antiguo 11-04-2006
HiroProtagonist HiroProtagonist is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
HiroProtagonist Va por buen camino
Hola Thales,

gracias por tús respuestas, ya he enviado un mensaje a las news de Borland indicando el bug del formateo del TFMTBCDField. Si me saben dar alguna solución ya te lo comentaré. Lo que quería comentarte es que el comportamiento que describías en el hilo http://www.clubdelphi.com/foros/showthread.php?p=119498 creo que es correcto ya que tú informas el DisplayFormat de tú campo de tipo TFMTBCDField con "0.00" lo que le dices és que te lo redondee a 2 decimales, por lo tanto, para un valor del tipo 5.095 se convierte en 5.1 (donde el punto lo considero el simbolo decimal).

Saludos,

Hiro
Responder Con Cita
  #6  
Antiguo 11-04-2006
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Poder: 0
Thales Va por buen camino
No estoy de acuerdo contigo, pues el formateo correcto de 5,095 a dos decimales debería ser 5,10 y no 5,1. De hecho ahora que he hecho un cast y el tipo de campo es ya TBCDField ya lo hace bien.

Un saludo
__________________
Mi web: http://personales.ya.com/cuaderno
Responder Con Cita
  #7  
Antiguo 11-04-2006
HiroProtagonist HiroProtagonist is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
HiroProtagonist Va por buen camino
Buenas Thales,
sí ciertamente tienes razón debería ser 5.10 (me había dejado el cero)

Saludos,

Hiro
Responder Con Cita
  #8  
Antiguo 18-05-2006
Oxa78 Oxa78 is offline
Miembro
 
Registrado: may 2003
Ubicación: Lima - Peru
Posts: 110
Poder: 22
Oxa78 Va por buen camino
Saludos, yo tambien tengo el mismo problema con darle formato al campo numérico, por lo q si encontraron alguna solución porfa pasarla por el foro.

Graicas...

Joseph
__________________
Joseph Buttgembach Verde
Lima - Perú
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dando vueltas con las capas CHiCoLiTa Providers 0 24-01-2006 12:09:55
Abrir una forma dando doble click? JavierO Varios 3 13-08-2005 05:07:19
Error formato time hh:mm VRO Firebird e Interbase 0 04-05-2005 11:48:17
Como cambiar TBcdField a TFMTBcdField Ricardo Alfredo Varios 0 31-12-2004 16:07:55
Dando ánimos a un amigo santana Humor 1 21-07-2004 12:57:46


La franja horaria es GMT +2. Ahora son las 17:33:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi