PDA

Ver la Versión Completa : formato separador de miles enresultados de consulta


microbiano
27-08-2011, 01:02:36
hola

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

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:

(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?

(FieldByName('maximo') As TFloatField).DisplayFormat:=',0.00';
(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.:

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:

DisplayFormat:= ',0.##';


Un saludo.

microbiano
30-08-2011, 01:04:42
gracias amigos era lo que necesitaba

quedo de la siguiente manera

(FieldByName('maximo') As TNumericField).DisplayFormat:= ',0.##';