Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Crear EditMask en QuantumGrid para float (https://www.clubdelphi.com/foros/showthread.php?t=74823)

weke 13-07-2011 13:27:12

Crear EditMask en QuantumGrid para float
 
Buenos días,
llevo unos días intentando aplicar una máscara a un campo de un quantumgrid. El campo de la base de datos es tipo Currency y al mostrarlo por pantalla quiero que se muestre de la siguiente forma:
Si es 5 ----> 5.00
Si es 5.1 --> 5.10
Si tiene 2 decimales ya se muestra bien ya que se guarda en la base de datos con 2 decimales.

El campo lo he declarado como MaskEdit y he probado con las típicas máscaras que solía utilizar para dar formato a las variables tipo float (FormatFloat('#0.00', valor)) pero no hay forma.

De hecho para formatear un decimal se supone que hay que ponerle \d+, pero de esta forma no me muestra los 2 decimales fijos que quiero que me muestre. De este modo muestra el valor que tiene en la base de datos sin formatear. Tampoco he visto ninguna propiedad para indicarle le precisión del decimal.

Muchas gracias de antemano y un saludo.

newtron 13-07-2011 13:53:10

Hola.

No sé si te servirá para tu grid pero yo lo hago de esta manera para el dbgrid

Código:

  TFloatField(DbGrid1.Columns[8].Field).DisplayFormat := '#,##0.00';
Saludos

weke 13-07-2011 18:11:10

Hola newtron,
me puedes decir en que evento pones el código, he probado pero de momento no he conseguido que me funcione.

Muchas gracias de todos modos y un saludo.

newtron 13-07-2011 19:02:10

Yo lo tengo puesto en el show del formulario pero creo que estaría mejor en el create.

Saludos

maeyanes 14-07-2011 02:18:56

Hola...

En las propiedades de las columnas de la vista en el TcxGrid, selecciona para la propiedad Properties el tipo TcxCurrencyEditProperties, con esto deberías obtener el resultado deseado.


Saludos...

weke 14-07-2011 09:31:59

Hola,
ya lo tengo solucionado.
Asignando la propiedad que me indica maeyanes y poniendo el siguiente código en el evento OnGetDisplayText de la columna en cuestión ya me muestra correctamente los decimales como quiero aplicando la máscara que viene por defecto con la propiedad.

Código Delphi [-]
var
  AValue: Variant;
begin
    if VarIsNull(ARecord.Values[Sender.Index]) then
        AValue := 0
    else
        AValue := ARecord.Values[Sender.Index];
    AText := FormatFloat(TcxCurrencyEditProperties(GOrdenesDBTableView1BASEOFERTA.Properties).DisplayFormat, AValue);

Muchas gracias y un saludo.


La franja horaria es GMT +2. Ahora son las 11:28:33.

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