PDA

Ver la Versión Completa : Modificar datos expuestos en una grilla


|NoName|
05-01-2007, 23:57:30
Saludos gente, recurro nuevamente a uds buscando ayuda...

Mi problema actual es que no logro darme cuenta como puedo manipular la informacion de un datasource previamente a que esta se despliegue en la grilla.

Para que se entienda mejor, el caso puntual es que tengo un campo Int en una tabla de mi db MySQL, en el que guardo fechas en formato timestamp, y obviamente cuando presento los datos en el DBgrid necesito pasarlo a un formato tipo fecha para que tenga sentido.

Bueno es eso, estuve tratando de resolverlo pero no doy con ello.

Gracias de antemano.

marcoszorrilla
06-01-2007, 11:47:31
En un principio si añades los campos al componente con el que te conectas,Ttable... y les das formato DisplayFormat "dd/mm/yy" y luego configuras adecuadamente la propiedad EditFormat debiera funcionarte.

Un Saludo.

|NoName|
06-01-2007, 17:21:30
Gracias Marcos,

El tema es que me imprime literalmente la cadena pasada como formato, es decir 'dd/mm/yyyy'
También probe hacer en timpo de ejecución así:


TNumericField(ZTable1.Fields[5]).DisplayFormat := 'dd/mm/yyyy';



Pero el resultado es el mismo.
Se deberá a una limitación del componente Zeos?

|NoName|
07-01-2007, 02:40:08
Bueno, no estoy del todo seguro pero creo que es problema de Zeos según pude leer en su foro.
De cualquier manera, opté por mostrar los datos en un label via FormatDateTime() pero me surge un nuevo problema, ya que como decia tengo los datos como timestamp (int) y esta función requiere que le pase la fecha como DateTime.
Como podría realizar la conversión?

Lepe
07-01-2007, 04:39:59
Unit
SysUtils

Syntax


function TimeStampToDateTime(var TimeStamp: TTimeStamp): TDateTime;


Saludos

|NoName|
07-01-2007, 05:48:21
Gracias Lepe pero estoy en la misma, porque en definitiva sigo necesitando una conversion que no se como hacer, ya que lo que tengo en ese campo es un entero.


LabReleased.Caption := TimeStampToDateTime(ZTable1.FieldByName('release_date'));

[Error] main.pas(101): Incompatible types: 'TTimeStamp' and 'TField'


Entiendo lo que pasa pero no se como modificarlo ya que no encuentro como tratar el contenido de ese campo como un timestamp.
Tal vez le estoy errando en la forma de almacenar los datos.

Lepe
07-01-2007, 14:05:28
¿Zeos no tiene .Value ?

LabReleased.Caption := FormatDateTime('dd/mm/yyyy ',
TimeStampToDateTime( ZTable1.FieldByName('release_date').Value
)
);

Según veo en SysUtils, un TTimeStamp viene definido así:


{ Date and time record }

TTimeStamp = record
Time: Integer; { Number of milliseconds since midnight }
Date: Integer; { One plus number of days since 1/1/0001 }
end;


Pero no creo que nos ayude mucho.

Saludos

|NoName|
07-01-2007, 14:26:32
Me sigue dando incompatibilidad de tipos.


LabReleased.Caption := TimeStampToDateTime(ZTable1.FieldByName('release_date').Value); [Error] main.pas(101): Incompatible types: 'TTimeStamp' and 'Variant'