Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Formato DBGrid - No encuentro como :( (https://www.clubdelphi.com/foros/showthread.php?t=62271)

ajgomezlopez 14-12-2008 15:48:30

Formato DBGrid - No encuentro como :(
 
Buenos días.

He estado buscando por internet y por este foro, pero por más que busco no encuentro solución a mi problema. Al mostrar los datos de una base de datos en un DBGrid, si la cantidad no tiene decimales no los muestra.

Por ejemplo:

Valor Muestra
===== ======
123,00 123
123,40 123,4

Y quiero formatearlo de tal manera que siempre me muestre los decimales. Uso delphi 2009.

Me veo en la obligación de agradeceros por adelantado, haceis una labor genial y desinteresada.

Un abrazo.

Caral 14-12-2008 15:56:11

Hola
Bienvenido al club.
El dbgrid es un depositario de la informacion que contiene un table o query.
hay una pantalla que contiene los datos de la tabla.
Si le das doble click al table o al query te saldra esta pantalla.
Ahi es donde se puede configurar cada campo.
Si tienes alguna duda indicalo.
Por cierto que base de datos usas?.
Saludos

Caro 14-12-2008 16:48:08

Hola, como te ha indicado Caral es al campo de tu DataSet al que le tienes que dar formato para eso tienes la propiedad DisplayFormat con el cual puedes dar formato, ejemplo si pones esto "0.00" sin las comillas en DisplayFormat del campo, te mostara con dos decimales aunque no los tenga.

Saluditos

ajgomezlopez 14-12-2008 20:12:29

Gracias.
 
Muchisimas gracias a l@s dos por contestarme y también por la rapidez, jo con gente así da gusto :D. Voy a probarlo ahora mismo. Por cierto Caral, me conecto a ACCESS 2003 :P

Un abrazo.

------[Editado]------ Sigo por aquí para no crear una nueva respuesta.

He hecho lo que comentais y perfecto, pero me surge otro problema. Le he dado el formato al Query y el DBGrid me muestra los decimales, pero sin embargo, al hacer esto:
Label7.Caption := 'El importe total asciende a ' + floattostr(qtotal.Fields.FieldByName('total').AsFloat);
El label no me muesta el formato.

Muchas gracias por la ayuda :D

Caral 14-12-2008 20:35:30

Hola
Debería de mostrar los decimales tambien, ya que se liga al query.
De todos modos con DisplayFormat se podria hacer.
Saludos

fjcg02 14-12-2008 22:10:06

Cita:

Empezado por ajgomezlopez (Mensaje 330860)
He hecho lo que comentais y perfecto, pero me surge otro problema. Le he dado el formato al Query y el DBGrid me muestra los decimales, pero sin embargo, al hacer esto:
Label7.Caption := 'El importe total asciende a ' + floattostr(qtotal.Fields.FieldByName('total').AsFloat);
El label no me muesta el formato.

Deberás utilizar
Código Delphi [-]
Label7.Caption := 'El importe total asciende a ' + FormatFloat(', qtotal.Fields.FieldByName('total').DisplayFormat, qtotal.Fields.FieldByName('total').AsFloat);
Prueba a ver y ya nos dirás.

Saludos

ajgomezlopez 14-12-2008 23:58:16

Funciona :)
 
Gracias Caral y fjcg.

Al final hice esto para solucionarlo, mirando la documentación de la función FloatFormat:

Label7.Caption := 'El importe total asciende a: ' + FormatFloat('0.00',qtotal.Fields.FieldByName('total').AsFloat);

Muchas gracias por contestar, pero ahora me surge otro problema; para respetar la guia de estilo lo posteo en otra sección, este es el enlace:

http://www.clubdelphi.com/foros/show...884#post330884

Por cierto, muchísimas gracias otra vez por todo, soys geniales :)

Un abrazo.

Caro 15-12-2008 13:17:31

Cita:

Empezado por ajgomezlopez (Mensaje 330882)
Gracias Caral y fjcg.

Al final hice esto para solucionarlo, mirando la documentación de la función FloatFormat:

Label7.Caption := 'El importe total asciende a: ' + FormatFloat('0.00',qtotal.Fields.FieldByName('total').AsFloat);

Muchas gracias por contestar, pero ahora me surge otro problema; para respetar la guia de estilo lo posteo en otra sección, este es el enlace:

http://www.clubdelphi.com/foros/show...884#post330884

Por cierto, muchísimas gracias otra vez por todo, soys geniales :)

Un abrazo.


Hola de nuevo, si usas un Label tienes que hacerlo como lo has hecho con FormatFloat, pero también puedes utilizar un DBText con este componente ya no necesitas darle formato, porque tomara el que le has dado a tu DataSet, lo enlazas como lo haces con tu DBGrid y escojes el campo.

Con el DBText, te evitaras hacer esta asignación Label7.Caption := FormatFloat(', qtotal.Fields.FieldByName('total').DisplayFormat, qtotal.Fields.FieldByName('total').AsFloat);

Sobre tu otro problema no es necesario editar el titulo, debe quedarse tal cual lo has puesto para que ayude en las busquedas, por eso es bueno tomarse un poco de tiempo y poner un titulo descriptivo, también es bueno que una vez que te ha ayudado la respuesta que te han dado o hayas encontrado tu la respuesta, lo publiques mandando otro mensaje en el mismo hilo.

Saluditos

luisgutierrezb 15-12-2008 19:57:14

Cita:

Empezado por ajgomezlopez (Mensaje 330860)
Label7.Caption := 'El importe total asciende a ' + floattostr(qtotal.Fields.FieldByName('total').AsFloat);
El label no me muesta el formato.

El problema esta en que al decirle AsFloat pides el numero un numero como tal un float (por cierto, procura usar currency), es mejor ponerle .DisplayText que es string y te mostrara tal cual le hace el formato o sea

Label7.Caption := 'El importe total asciende a ' + qtotal.Fields.FieldByName('total').DisplayText;

ajgomezlopez 16-12-2008 00:56:29

Gracias por contestar :)
 
Gracias por contestar amigos, por cierto, no tengo ni idea de que es un currency, pero ahora mismo lo busco. Muchas gracias.


La franja horaria es GMT +2. Ahora son las 22:55:05.

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