FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con FORMAT y SUM
Estoy intentando hacer algo simple como mostrar en un DBGrid una columna como Currency.
Si bien lo he logrado exitosamente en otras oportunidades, esta vez es un campo calculado y no lo puedo hacer andar. La consulta es esta: He probado las siguientes opciones: Opción 1: Resultado: El DBGrid no muestra nada en esa columna Opción 2: Resultado: El DBGrid muestra los resultados igual que en la consulta original Opción 3: Varios intentos en el evento DrawCell con cosas del siguiente estilo Resultado: Idem anterior. Estoy trabajando en Delphi 7, con ADO y base de datos en Access. ¿En que le puedo estar errando?. Gracias de antemano!
__________________
https://www.youtube.com/DexterBass |
#2
|
||||
|
||||
¿Has probado modificando la propiedad DisplayFormat del campo?
Esto evita que tengas que hacer cosas raras en el SQL. No tengo Delphi a mano en este momento, pero esta es la idea:
|
#3
|
||||
|
||||
Antes que nada, ¡gracias por contestar!
Recuerdo haber probado la propiedad DisplayFormat y estoy casi seguro que lo hice también en el evento DrawCell. Por las dudas lo voy a probar de nuevo en la tarde, que de tantas cosas que leí y probé tengo un lío importante en la cabeza.
__________________
https://www.youtube.com/DexterBass |
#4
|
||||
|
||||
Creo que tienes que definir los campos de forma persistente en la query (también sirve en un ClientDataSet) y ahí puedes indicar que es tipo Currency. Lo hice hace tiempo pero no lo encuentro y lo estoy diciendo de memoria por lo que no recuerdo si deberás tocar también DisplayFormat para que se representen como desees.
Si el campo es calculado después de la consulta (cualquier cosa distinta de fkData) es cuando no es posible definirlo como Currency pero en tu caso es una de las columnas de la query por lo que debería funcionar. |
#5
|
||||
|
||||
Este es un ejemplo real que tengo en mi código:
No son campos persistentes, por lo que tengo que explicitamente decirle que tipo de campo es. Lo que busco es que las fechas no muestren la hora y los valores numéricos se muestren con dos decimales y separador de miles.
Este código lo he puesto en el AfterOpen porque los campos son dinámicos. En el caso de tener campos estáticos, pongo el código de formato en el OnCreate del DataModule. He visto que para DataSets grandes es mucho más rápido tener los formatos puestos antes de abrirlos. |
#6
|
||||
|
||||
Este es otro código que encontré.
En este caso no conozco los campos que saldrán, pues el SQL lo proporciona el usuario. Es parte de una extracción de datos.
|
#7
|
||||
|
||||
¡Muchísimas gracias por las respuestas!
Ayer no tuve tiempo de probar nada. Espero hoy poder hacerlo, así les comento como me fue. Consulta: ¿en que evento llamás al procedimiento TDMExtraccionDatos? Saludos y nuevamente gracias!
__________________
https://www.youtube.com/DexterBass |
#8
|
||||
|
||||
Tengo un formulario que muestra las diferentes extracciones de datos personalizadas.
Cada extracción de datos es un SQL (SELECT ... FROM ... WHERE ...) El SQL se asigno al DataSet xResultado.SelectSQL. En un panel se crean tantos componentes TEdit como parámetros haya en el WHERE. La propiedad Tag del TEdit es el indice del parámetro. Hay un botón para ejecutar la consulta pasándole los parámetros. Este es el evento que llama a TDMExtraccionDatos.Ejecutar. Te dejo el código por si te sirve de algo...
|
#9
|
||||
|
||||
OK. ¡¡¡Muchísimas gracias por la pronta respuesta!!!
__________________
https://www.youtube.com/DexterBass |
#10
|
||||
|
||||
¡Lo hice andar! ¡Mil gracias!
El código que me funcionó fue este: "Consulta" es un ADOQuery Este código no logré hacerlo andar: Me saltaba el siguiente error: [Error] Informe_Ventas.pas(63): Undeclared identifier: 'DisplayFormat' Cita:
Cita:
Lo que yo hago es usar un AdoQuery para consultas y un ADOCommand para Altas, Bajas y Modificaciones, siempre asignando las sentencias SQL desde mi código fuente. O sea, reutilizo los mismos componentes para todas las consultas, etc. ¿Como es eso de que el SQL lo proporciona el usuario? Agradezco muchísimo la ayuda y la buena predisposición!!!
__________________
https://www.youtube.com/DexterBass |
#11
|
||||
|
||||
Cita:
El DBGrid tiene campos tipo TField. Este tipo de campo es genérico y tiene las propiedades y métodos básicos de ese objeto. TFloatField es un descendiente de TField y agrega alguna funcionalidad extra. Por ejemplo, la propiedad para dar formato al dato(número) que contiene. Para poder asignar esta propiedad deberás hacer un cast para decirque el el objeto es de tipo TFloatField.
|
#12
|
||||
|
||||
Perfecto!
Ahora así lo pude hacer andar también de esa manera. ¡Muchas gracias!
__________________
https://www.youtube.com/DexterBass |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con Format y OldValue | gluglu | Varios | 1 | 11-07-2008 23:37:13 |
Problemas con Format() | RoyTan | Varios | 7 | 10-02-2008 20:15:24 |
Format %s error | FunBit | Varios | 2 | 07-12-2005 16:48:48 |
Problema con format | santiago14 | Varios | 1 | 18-08-2005 20:29:18 |
problemas con format y array!!! | adfa | OOP | 2 | 30-08-2003 03:18:29 |
|