Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Formato en columnas (https://www.clubdelphi.com/foros/showthread.php?t=24656)

gandalf_uy 29-08-2005 20:50:13

Formato en columnas
 
Necesito dar formato a una columna de un dbgrid. Si bien he leido algunos hilos al respecto, tengo Delphi 6 y he probado con la función DisplayFormat del TField y la misma no me compila.

Alguien sabe si es a causa de mi versión de Delphi ya que en Dephi 7 funcinoa correctamente?

Si es así, cómo se hace para darle formato a una columna en Delphi 6?

Chas gracias desde ya.
gandalf_uy

acá pongo un ejemplo de lo que no me compila
Query1.sql.Text := 'Select codigo, descripcion costo from articulo'; Query1.open; Query1.FieldbyName('costo').DisplayFormat := ',#0.00';

delphi.com.ar 29-08-2005 20:58:01

Cita:

Empezado por gandalf_uy
Si bien he leido algunos hilos al respecto, tengo Delphi 6 y he probado con la función DisplayFormat del TField y la misma no me compila.

¿Qué significa que no te compila?.. ¿Te da un error?.. ¿Cuál?

Cita:

Empezado por gandalf_uy
Alguien sabe si es a causa de mi versión de Delphi

En Delphi 6 tiene que funcionar sin problemas.

Saludos!

gandalf_uy 29-08-2005 21:02:31

El error que me da es este:

[Error] Primer_Nivel.pas(440): Undeclared identifier: 'DisplayFormat'

Directamente no la encuentra como una propiedad del TField.

Plis jelp !!!

delphi.com.ar 29-08-2005 21:21:48

DisplayFormat es una propiedad de los TNumericField, TDateTimeField, TSQLTimeStampField y TAggregateField ( y sus heredados).... ¿Qué tipo de campo estas tratando de "formatear"?

gandalf_uy 29-08-2005 21:43:56

El campo que estoy tratando de formatear es un campo del tipo Integer.

Pero si yo hago esto:

Query1.FieldByName( 'codigo').

supuestamente ahi es donde me trae la ventana de ayuda y me despliega propiedades y métodos. En ningun momento me trae DISPLAYFORMAT, si me trae DISPLAYTEXT, DISPLAYNAME, DISPLAYNAME pero no DISPLAYFORMAT. Igual asi lo escribo
Query1.FieldByName( 'codigo').DisplayFormat := '#.##';

y al compilarlo es que me salta el error que te mencioné.


Gracias delphi.com.ar por intentar ayudarme en la solución de este problema...

delphi.com.ar 29-08-2005 21:49:23

Tendrías que "castearlo", y no tomarlo como un sumple TField:
Código Delphi [-]
if Campo is TIntegerField then
  TIntegerField(Campo).DisplayFormat := '......';

Saludos!

gandalf_uy 29-08-2005 21:49:47

Lo que no me queda claro en lo que me decis es si al utilizar la funcion FIELDBYNAME supuestamente DELPHI no debe saber de que tipo es el campo de un query hasta el momento de ejecucion. No se como decirle que ese campo es de tipo TNumericField que si he buscado y he encontrado la propiedad DISPLAYFORMAT para este tipo de objeto.

gracias again

gandalf_uy 29-08-2005 22:05:55

Lo solucioné de la siguiente manera:

Código Delphi [-]
with query1.fieldbyname('codigo') as TNumericField do
      DisplayFormat := ',#0,00';

muchas gracias por la ayuda :)

ReiCk_Z 27-03-2010 19:32:56

Otra solución
 
Esa es una manera de solucionar el problema, la otra es colocando DB en uses:
Ej: Uses DB;
De esta manera puedes usar las líneas de código.
with Query1 do
begin
close;
sql.Clear;
//Código de la consulta.
sql.Open;

(FieldByName('Fecha') as TDateTimeField).DisplayFormat:= 'dd/mm/yyyy';
(FieldByName('Precio') as TNumericField).Displayformat:= '$,0.00';
(FieldByName('Numero') as TNumericField).Displayformat := '#,0.0';
(FieldByName('Porcentaje') as TNumericField).Displayformat := '%,0';
end;


La franja horaria es GMT +2. Ahora son las 00:09:58.

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