Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   formato separador de miles enresultados de consulta (https://www.clubdelphi.com/foros/showthread.php?t=75482)

microbiano 27-08-2011 01:02:36

formato separador de miles enresultados de consulta
 
hola

quiero dar formatocon separador de miles a un campo de tipo integer devuelto en una consulta tengo el siguiente codigo.

Código Delphi [-]
procedure tForm_requerimiento.carga_datos_requerimiento();
begin
  with Form_modulo.Qry_resumen do
    begin
       SQL.Clear;
       SQL.Add('select licitacion,zona,gpo,gen,esp,dif,[var],descripcion,pmr,maximo,minimo,importe_max,importe_min from requerimiento');
       Open;
       (FieldByName('pmr') AS TFloatField).DisplayFormat:= ',0.00';
       (FieldByName('maximo') As TIntegerField).DisplayFormat:='0.00';


    end;
end;

pero no me funciona en este campo:

Código Delphi [-]
 (FieldByName('maximo') As TIntegerField).DisplayFormat:='0.00';

el error es:

raised exception class Einvalidacast with message invalid clas typecast. process stopped


el tipo de campo es numero y la base de datos sqlserver 2000

amigos alguna sugerencia?

Casimiro Notevi 27-08-2011 01:27:24

Un integer no tiene decimales, pon igual que el otro, float.

microbiano 27-08-2011 01:33:18

ok pero si quiero que salga sin decimales como le haria?, ya lo intente como comentas y la verdad no funciona alguna sugerencia?

Código PHP:

 (FieldByName('maximo') As TFloatField).DisplayFormat:=',0.00'

Código Delphi [-]
 (FieldByName('maximo') As TIntegerField).DisplayFormat:=',0.00';

ecfisa 27-08-2011 02:17:10

Hola microbiano.

Aunque siendo sincero jamás había intentado ese tipo de conversión, de este modo funciona bién usando Firebird. Tendrás que probar si con sqlserver 2000 es igual.:
Código Delphi [-]
   TFloatField(IBQuery1.FieldByName('CANTIDAD')).DisplayFormat:= ',0.00';


Saludos.

microbiano 29-08-2011 16:38:33

gracias la verdad funciona de maravilla pero para cantidades por ejemplo 1,8000 cual seria el displayFormat para poner el separador y que no muestre los decimales?


de antemano muchas gracias

ecfisa 29-08-2011 17:21:44

Hola.

Creo que lo que buscas sería:
Código Delphi [-]
  DisplayFormat:= ',0.##';

Un saludo.

microbiano 30-08-2011 01:04:42

gracias amigos era lo que necesitaba

quedo de la siguiente manera

Código Delphi [-]
 (FieldByName('maximo') As TNumericField).DisplayFormat:= ',0.##';


La franja horaria es GMT +2. Ahora son las 21:42:19.

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