Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   quitarle formato a celda de un Tstringrid (https://www.clubdelphi.com/foros/showthread.php?t=71121)

microbiano 01-12-2010 18:06:44

quitarle formato a celda de un Tstringrid
 
hola buen dia resulta que no se como quitar el formato que doy a un datos que agrego a una coluna de in TstringGrid.

lo que hago agregar al Flexgrid es esto

SGFact.Cells[5,Cuenta]:=Format('%8.2f',[wventa_total_importe]);

pero llega un momento en el que tengo que ir tomar que esta en esa columna y multiplicando por otro valor alguien tiene alguna idea?

luisgutierrezb 01-12-2010 19:48:44

no se si te sirva la funcion strtocurr o strtofloat para hacer el cambio de cadena a numero

microbiano 01-12-2010 20:07:08

ya intente con ambas funciones pero no funciona aun asi sigo investigando para ver que pasa, saludos.

ecfisa 01-12-2010 21:23:26

Hola.

Proba con:
Código Delphi [-]
   Format('%g',[wventa_total_importe]);

De todos modos revisá la ayuda de Delphi sobre especificadores de formato (Format strings).

Saludos. :)

microbiano 02-12-2010 06:17:25

ya probe con las posibles soluciones y nada, espero alguien me pueda ayudar muchas gracias de antemano por la molestia que se toman para este mensaje

ecfisa 02-12-2010 11:04:32

Hola microbiano.

En la prueba que realizé, funciona correctamente:

Código Delphi [-]
...
var
  Valor: Double;
procedure TForm1.FormShow(Sender: TObject);
begin
  Valor:= 123.456;
  StringGrid1.Cells[1,1]:= Format('%8.2f',[Valor]);
end;
En pantalla obtengo: 123,46

Luego ejecuto este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.Cells[1,1]:= Format('%g',[Valor]);;
end;
En pantalla obtengo: 123,456

Que es el valor original que ingresé en la variable 'Valor' al mostrar el form. (Sin tomar en cuenta el DecimalSeparator)

Tal vez haya interpretado mal a que te referís con quitar el formato...

Saludos.

microbiano 02-12-2010 17:23:29

gracias
 
hola gracias amigo por contestar mira este es el codigo que uno la primera vez.

Código Delphi [-]
                     Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
                     Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
                     Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
                     Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
                     Ffactura.SGFact.Cells[3,Cuenta]:=(Format('%8.2n',[Ffactura.wprecio_venta]));//pongo el precio del articulo con formato de miles
                     Ffactura.SGFact.Cells[4,Cuenta]:=FloatToStr(wdescuento_considerar);
bien despues de esto tengo que recorrer todos los registros del TStringGrid y es ahi a donde tengo que tomar el valor de la celda
Código Delphi [-]
Ffactura.SGFact.Cells[3,Cuenta]:=(Format('%8.2n',[Ffactura.wprecio_venta]));
, pues bien lo hago de la siguiente manera

Código Delphi [-]
{tomo los registros que existen en el flexgrid de acuerdo al registro que introdujeron}
       wcantidadmodificar:=StrToFloat(SGFact.Cells[2,i]);//tomo el valor de la cantidad que tengo en el flexgrid
       wcodigomodificar:=Ffactura.SGFact.Cells[0,i]; //tomo el codigo de barras
       wdescripcionmodificar:=Ffactura.SGFact.Cells[1,i]; //tomo la descripcion
       wpreciomodificar2:=Format('%g',[SGFact.Cells[3,i]]);
, pero ahi es donde tengo el problema que querer tomar el valor de la celda de precioa, si no le pongo formato alguno no existe ninguna problema pero mi cliente quiere el formato de miles, o hay alguna mejor sugerencia para el detalle de la factura?

ecfisa 03-12-2010 01:08:32

Hola de nuevo.

A ver, probá de este modo:
Código Delphi [-]
...
var
  wprecio_venta,
  wpreciomodificar2: Double;
  aux: string;
begin
  wprecio_venta:= 123456.25;
  SGFact.Cells[3,Cuenta]:= FormatFloat('#.##,##',wprecio_venta);
  aux:= SGFact.Cells[3,Cuenta];
  Delete(aux,Pos('.',aux),1);
  Caption:= aux;
  wpreciomodificar2:= StrToFloat(aux);
  ...

Un saludo. :)


La franja horaria es GMT +2. Ahora son las 17:52:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi