Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   formato porcentaje con DBGrid !!!! (https://www.clubdelphi.com/foros/showthread.php?t=45420)

david_uh 02-07-2007 21:43:28

formato porcentaje con DBGrid !!!!
 
hola a todos
una ayudita porfa
estoy tratando de gestionar una interfaz para una tabla que tiene un campo llamado COMISION en el cual el usuario ingresa el porcentaje Ejem.
comisión: 2 ingresa el numero 2 pero este internamente debe ser guardado como 0.02

Es decir el usuario debe ingresar el procentaje como se lee 2.3% pero internamente este debe almacenarse como 0.023.

Estoy usando Delphi 6 (zeos) y mysql 5 y la interfaz es un DBgrid.

gracias por cualquier aporte

antrahxg 02-07-2007 21:57:16

Bueno no me quedo muy claro lo que quieres

pero por ejemplo si el usuario introduce 2.3% y quieres que se guarde como 0.023 pues al momeno de guardar la informacion dividela entre 100 y para mostrar el 0.023 como porcentaje al mostrarlo lo multiplicas por 100, por ejemplo


table1.fieldbyname('porcentaje').asfloat:=strtofloat(porcentaje.text)/100

y para mostrarlo

procentaje.text:=floattoStr(table1.fieldbyname('porcentaje').asfloat *100)

david_uh 02-07-2007 22:02:03

si pero el problema es donde lo programo, estoy usando un dbgrid enlazadoa datos:
en la tabla los datos estan asi
COMISION
0.02
0.04
0.06
de eesta misma forma aparecen n el dbgrid, lo que deseo es que aparezcan asi
COMISION
2 %
4 %
6 %
y que al momento de ingresar un valor en el grid el usuario digite 6 y al presionar enter o moverse a otra fila se actualice a : '6 %' con le símbolo de % pero que el la tabla se grabe como 0.06

gracias por tu respuesta

egostar 02-07-2007 22:09:59

En la propiedad DisplayFormat del campo pon 0.0%.

Salud OS.

david_uh 02-07-2007 22:14:18

si con displayformat := 0.000 '%' he conseguido :

DATO REAL SE MUESTRA ASI QUISIEERA QUE SE VEA ASI
0.01 0.01 % 1%


Si el usuario ingresa 7 por ejemplo en la columna comision:

QUE SE GUARDE ASI SE INGRESE ASI SE VEA ASI
0.07 7 7%

Gracias por responder tán rápido. Un saludo

david_uh 02-07-2007 22:18:43

Error de escritura
 
ok esto es lo que quería decir:
si con displayformat := 0.000 '%' he conseguido :

Código:


DATO REAL            SE MUESTRA ASI            QUISIEERA QUE SE VEA ASI
0.01                        0.01 %                                    1%

Si el usuario ingresa 7 por ejemplo en la columna comision:

Código:


QUE SE GUARDE ASI                SE INGRESE ASI                    SE VEA ASI
0.07                                        7                            7%

Gracias por responder tán rápido. Un saludo

Lepe 03-07-2007 09:41:48

En el evento OnGetText puedes multiplicar por 100.
En el evento OnSetText del campo, puedes dividir por 100.

Con las propiedades DisplayFormat/ EditFormat, consigues añadir el símbolo de porcentaje o eliminarlo al editar (así como el número de decimales que se verán)

Saludos

reevil 03-07-2007 12:32:10

al guardar como ya te dijeron divides entre 100
y para mostrarlo en el formato que quieres,que tal hacerlo con un query
Código SQL [-]
SELECT concat(porcentaje * 100 , '%') as porcentaje_formateado FROM tabla;

david_uh 03-07-2007 18:36:47

Cita:

En el evento OnGetText puedes multiplicar por 100.
En el evento OnSetText del campo, puedes dividir por 100.
ok gracias por todo lo resolvi como me dijiste
Código Delphi [-]
procedure TfrmSisPago.tbl_SisPagoDetComisionGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
Text := FormatFloat('#'+DecimalSeparator+'00 %',(Sender.AsCurrency * 100));
end;
procedure TfrmSisPago.tbl_SisPagoDetComisionSetText(Sender: TField;
  const Text: String);
begin
Sender.AsFloat := StrToFloat(Text)/100;
end;

con la salvedad que el formato dado a las propiedades displayformat/editformat no funcionan ya que el dato es directamente gestionado por los eventos get y set text

muchas gracias me sirvio de mucho


La franja horaria es GMT +2. Ahora son las 01:19:25.

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