Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Mostrar siempre 2 decimales (https://www.clubdelphi.com/foros/showthread.php?t=6300)

Novás 30-12-2003 11:06:11

Mostrar siempre 2 decimales
 
Hola a todos:

Mi problema es que no se como puedo conseguir que, en una consulta sql bajo access me muestre siempre dos decimales a pesar de que sean ambos 0, es decir que me aparezcan siempre los números en el formato x,xx tanto para un número como 1,00 como para uno 1,10 como para 1,11.

He utilizado el Round(total,2) pero como que no hace lo que pido, ha alguién se le ocurre una solución o tengo que codificarlo de otra manera.

Muchas gracias de antemano por vuestra colaboración. ;)

__cadetill 30-12-2003 13:10:56

Para lograrlo basta con que informes con la máscara deseada la propiedad DisplayFormat del TField (campos persistenetes)

Puedes ponerle algo como : DisplayFormat = #,##0.00 con lo que conseguirás los 2 decimales y el separador de miles

Novás 30-12-2003 13:33:39

Perdón por mi ignorancia pero...

Trabajo con BDE e inserto la consulta de la forma:

Query1.SQL.add(CadenaSql);

Luego de ejecutar esa consulta, ésta se visualiza en un DbGrid.
Mi pregunta es donde accedo a esa propiedad, o acaso estoy haciendo algo de forma incorrecta...

__cadetill 30-12-2003 15:06:12

La consulta siempre es la misma? o almenos devuelve las mismas columnas? si es así, pon la sentencia SQL en la propiedad SQL de la Query, haz doble clic encima del componente y te aparecerá una pantallita. Allí haz clic con el boton derecho y escoge Add All Fields. Con esto creas los campos persistentes, ahora sólo te queda seleccionar el deseado para establecer su propiedad.

Si la consulta no devuelve las mismas columnas, puedes hacerlo por código accediendo a los Fields una vez abierta la consulta

Código:

TFloatField(Query1.Fields[1]).DisplayFormat := '#,##0.00';

marcoszorrilla 30-12-2003 16:12:33

Con permiso de mi amigo Cadetill, propongo 2 métodos más:

Código:

TFloatField(Query1.FieldByName('importe')).DisplayFormat := ',0.00';

TFloatField(Query1.FindField('importe')).DisplayFormat := ',0.00';

Como más seguro me quedo con el segundo, se trata de garantizar que el campo existe, y tanto en el primero como en este, evitar que se pueda producir un fallo por un cambio de situación de las columnas de la consulta.

Un Saludo.

__cadetill 30-12-2003 16:25:55

Cita:

marcoszorrilla comentó:
Con permiso de mi amigo Cadetill, propongo 2 métodos más:
Faltaría más :D ;)

Novás 30-12-2003 16:29:14

Muchísimas gracias a ambos, he resuelto el problema gracias a vuestra colaboración...

Hasta la próxima


La franja horaria es GMT +2. Ahora son las 08:45:59.

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