Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2004
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Poder: 21
HombreSigma Va por buen camino
Como formatear numeros en TQuery?

Tengo un componente TQuery con varios campos que se crean dinamicamente simultaneamente con su sentencia sql que se arma a gusto del usuario.

El problema es que necesito formatear los campos numericos flotantes de tal manera que me elimine el e-nn propio de los nùmeros muy grandes o muy pequeños.

He intentado displayformat pero no lo reconoce. Alguna sugerencia??


MiQuery.Fields[CampoNo].?????? :='###,###,##0'


Que propiedad coloco en la interrogaciòn de la instrucción de arriba o existe algun otro metodo?
__________________
SigmaMan
Responder Con Cita
  #2  
Antiguo 14-01-2004
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

Aunque creo que la máscara que utilizas es excesiva (demasiadas almohadillas me refiero), la propiedad correcta es DisplayFormat, pero puesto que los campos se crean dinámicamente, trata de asignarla en el AfterOpen del TQuery, mediante un bucle que recorra todos los campos y asigne sólo los que son numéricos. Si lo has hecho así, no veo por qué no deba funcionar.

Código:
for i:=0 to Dataset.FieldCount - 1 do
  if Fields[i] is TNumericField then 
    TNumericField (Fields[i]).DisplayFormat := '#,0';
Escribo de memoria, no sé si he metido algún gazapo en este código, es la idea solamente, pero lo importante es que lo ejecutes en el AfterOpen del Query.
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 14-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Lo que debes hacer es un casteo al tipo de campo pertinente, es decir, algo así:

TIntegerField(Query1.Fields[1]).DisplayFormat := '###,###,##0';

Para saber el tipo de casteo a hacer, puedes utilizar el DataType de los TFields (en la ayuda verás los distintos tipos posibles)

Query1.Fields[1].DataType

Espero te sirva
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:35:32.


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
Copyright 1996-2007 Club Delphi