PDA

Ver la Versión Completa : Horas en DBGrid


bustio
29-08-2007, 21:25:20
Hola a todos. Esta pregunta que hago estoy seguro que ya alguien la hizo.. pero como ahora es tan repesado buscar en los foros decidi ponerla de cualquer manera. Tengo una BD en ACCESS 2007 qe tiene un campo tipo TIME y en el guardo una hora. La hora es esta: '13:00:00' y yo uso delphi 7. Desde mi aplicacion y con un ADOTABLE conecto la tabla a mi DBGRID mediante un ADODATASET. Ahora bien... en el campo FECHA de mi dbgrid, en vez de salirme 13:00:00 me sale esto: 30/12/1899 13:00:00. Alguien sabe como puedo formatear la salida de los datos para que el DBGRID me muestre solo la hora y no la fecha??

Caral
29-08-2007, 21:37:27
Hola
Me parece que hay información en los foros de este asunto, de todas maneras creo que lo tendrías que hacer es usar:
FormatDateTime('hh:nn',Time);
Revisa bien, es cuestión de paciencia y se encuentran las soluciones.
Saludos

Chris
29-08-2007, 21:52:02
Lo que comenta caral lo tienes lo puedes hacer cuando pintas manualmente la grilla. Si no quieres pintarla o no lo haces puedes utilizar un codigo como este:


Procedure TForm1.FormCreate(sender : Tobject);
Begin
{cuando se crea el formulario}
mitabla.FieldByName('campoHora').DisplayFormat := 'hh:nn am/pm';
end;

bustio
30-08-2007, 15:31:56
Hola a todos.. gracias por sus respuestas pero hay una cosa qeu no me funciona. Cuando dices mitabla.xxxxxxx te refieres a un ADOTABLE conectado a una tabla en la BD? por qeu si es asi puesya lo hice y no me funciono. Me dice que el metodo DisplayFormat no pertenece a FieldByName. Puedes darme mas detalles???
Procedure TForm1.FormCreate(sender : Tobject);Begin{cuando se crea el formulario}mitabla.FieldByName('campoHora').DisplayFormat := 'hh:nn am/pm';end;

Chris
30-08-2007, 17:21:48
Revisé y me dí cuenta que el código que te habia dado no estaba completo, esta es la forma en que debes de escribirlo.


Procedure TForm1.FormCreate(sender : Tobject);
Begin
{Este código se ejecuta cuando se crea el formulario}
TTimeField(mitabla.FieldByName('campoHora')).DisplayFormat := 'hh:nn am/pm';
end;


"MiTabla" es el nombre del componente ADOTable, es un nombre que te doy como ejemplo.
El procedimiento es FormCreate que se ejecuta cuando se crea el formulario en donde está el componente ADOTable

saldanaluis
06-09-2007, 19:03:15
Otra manera diferente sería el utilizar el editor de campos del DBGrid, posicionarse en el campo de la hora, y en las propiedades del campo ponerle el DisplayFormat.
Así mismo, se puede hacer en el editor de campos del DataSet.
Espero te sea de utilidad.