FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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 |
#3
|
||||
|
||||
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 |
#4
|
||||
|
||||
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:
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 |
#5
|
|||
|
|||
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 |
#6
|
||||
|
||||
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 |
#7
|
|||
|
|||
Buenas Thales,
sí ciertamente tienes razón debería ser 5.10 (me había dejado el cero) Saludos, Hiro |
#8
|
|||
|
|||
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ú |
|
|
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 |
|