Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2004
mguixot mguixot is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
mguixot Va por buen camino
DisplayFormat en tiempo de ejecución?

Hola,
estoy intentando asignar una cadena a una columna de un DBGrid, cuya dataset la calculo en tiempo de ejecución. Pero no consigo hacerlo. He intentado hacerlo sobre el mismo field de la IBQuery en la que calculo todo, pero tampoco. Sabeis de que manera puedo formatear el valor del campo?. La columna son valores en €, y desearía formatearlo a 4 decimales y 0's por defecto. ('###.##0,###0')

Saludos
Responder Con Cita
  #2  
Antiguo 31-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Si nada funciona, valete del evento OnGetText del field para darle formato.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 31-05-2004
mguixot mguixot is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
mguixot Va por buen camino
Gracias por tu interes, Jachguate. Podrias pasarme algún ejemplo de como capturar ese evento, es que al implementarlo en tiempo de ejecución, no tengo muy claro como hacerlo.

Saludos y gracias
Responder Con Cita
  #4  
Antiguo 31-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Debes tener un método en la forma con los parámetros necesarios, de acuerdo al tipo del evento.

En el caso de OnGetText, que es del tipo TFieldGetTextEvent, encontramos fácilmente en la ayuda su declaración, que es como va:

Código Delphi [-]
type TFieldGetTextEvent = procedure(Sender: TField; var Text: string; DisplayText: Boolean) of object;
property OnGetText: TFieldGetTextEvent;

Por lo tanto declaras un método, llamemolo FormatearFloatField.

Lo declaras asi:

Código Delphi [-]
type 

TForm1 = class(TForm)
  ..
private
  Procedure FormatearFloatField(Sender: TField; var Text: string; 
                  DisplayText: Boolean);
..

Lo codificas en la sección de implementation y en tiempo de ejecución podes asignarlo "dinámicamente" a cualquier field.

Código Delphi [-]
  // si estas en el mismo formulario
  query1.FieldByName('Total').OnGetText := FormatearFloatField;  
  // si lo tuvieras en un modulo de datos, por ejemplo...
  query1.FieldByName('Total').OnGetText := ModuloDatos.FormatearFloatField;  
  query1.FieldByName('Total').OnGetText := FormatearFloatField;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 01-06-2004
mguixot mguixot is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
mguixot Va por buen camino
Genial!
El ejemplo me ha servido de mucha ayuda. Ya he conseguido implementarlo.

Muchas Gracias.
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 07:53:16.


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