Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2019
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Smile Formato Fecha en un DBGrid

Buenos días a todos ustedes amigos,

Recurro nuevamente a Uds. por un problema que se que debería ser sencillo pero por esas cosas de la vida se me hace un mundo y me esta tomando bastante tiempo resolverlo.

Tengo una base de datos en SQL y mi aplicación la estoy desarrollando en XE8, utilizo componentes ADO y al realizó consultas simples de las Tablas, pero cuando las muestro en un dbgrid no puedo cambiar el formato de fechas, pero si el formato de números hasta un grado.
Ahora enlazo un ADoQuery con DataSource y este aun DbGrid, en el código donde trato de cambiar el formato me sale diferentes errores, algunas veces pasa sin error pero nunca cambia el formato, aquí les paso el primer código.

Código Delphi [-]
  Cad := 'select * from Guia ';
  with self.CabeceraADOQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add(Cad);
      ExecSQL;
      Active := true;
      Last;
    end;
    //(CabeceraADOQueryFecha as TDateTimeField).DisplayFormat := 'dd/mm/yyyy';

    //TDateTimeField(CabeceraADOQuery.FieldByName('Fecha')).DisplayFormat := 'dd/mm/yyyy';

    TDateTimeField(CabeceraADOQueryFecha.Value).DisplayFormat := 'DD/MM/YYYY';

   //(Datos.DatosDM.CabeceraADOQuery.FieldByName('Fecha') as TFloatField).DisplayFormat:=dd/mm/yyyy;
   //(Datos.DatosDM.CabeceraADOQuery.FieldByName('Cantidad') as TFloatField).DisplayFormat := '###,##0.00';
   //(Datos.DatosDM.CabeceraADOQuery.FieldByName('Avance') as TFloatField).DisplayFormat := '###,##0.00';

Como verán he probado de todo pero nose por que detalle no funciona, también he agregado todas las columnas en el ADOQuery para ver si en cada columna podria salir por defecto el DisplayFormat, pero no es así.

También puse código en evento AdoQueryBeforeOpen - sin tener exito

Código Delphi [-]
procedure TGuiaForm.CabeceraADOQueryBeforeOpen(DataSet: TDataSet);
begin
  TDateTimeField(CabeceraADOQueryFecha.Value).DisplayFormat := 'DD/MM/YYYY';
  //TDateField(self.CabeceraADOQueryFecha).DisplayFormat := 'DD/MM/YYYY'
  //(CabeceraADOQuery.FieldByName('Fecha') as TDateTimeField).DisplayFormat := 'DD/MM/YYYY';
end;

por ultimo también probé en el evento GetCellText con la misma mala suerte
Código Delphi [-]
procedure TGuiaForm.ListaGetCellText(Sender: TObject; Field: TField;
  var Text: string);
begin
  if Field.FieldName='Fecha' then
    (Lista.Columns[1] := StrToDate(FormatDateTime('DD/MM/YYYY',VarToDateTime(CabeceraAdoQuery.FieldByName('Fecha').AsVariant)));
//    (Lista.Columns[1].Field as TDateTimeField).DisplayFormat := 'DD/MM/YYYY';
    //(CabeceraAdoQuery.FieldByName('Fecha') as TDateTimeField).DisplayFormat := 'DD/MM/YYYY';
    //Field.ByName()
end;

Amigos les pido me echen una mano con este problema, un fuerte abrazo para todos.

PD. Para el formato de numero solo puedo cambiarlo los decimales, pero las comas nose porque no acepta '0.00', cual seria el formato correcto (0,000.00) ó (#,###.##)
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
  #2  
Antiguo 28-06-2019
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola


A me parece que bastaria con:



Código Delphi [-]
var
 F:TDateField;

begin
F:=Datos.DatosDM.CabeceraADOQuery.FieldByName('Fecha')as TDateField;
F.DisplayFormat:='dd/mm/yyyy';


Seria cuestion de probar.

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #3  
Antiguo 28-06-2019
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Smile Muchas gracias Caminante

ante todo gracias por tomarse el tiempo en leer y ayudarme.

lo he probado en BeforeOpen pero da error
Código Delphi [-]
procedure TGuiaForm.CabeceraADOQueryBeforeOpen(DataSet: TDataSet);
var F:TDateField;
begin
    F:=Datos.DatosDM.CabeceraADOQuery.FieldByName('Fecha')as TDateField;
    F.DisplayFormat:='dd/mm/yyyy';
  //TDateTimeField(CabeceraADOQueryFecha.Value).DisplayFormat := 'DD/MM/YYYY';
  //TDateField(self.CabeceraADOQueryFecha).DisplayFormat := 'DD/MM/YYYY'
  //(CabeceraADOQuery.FieldByName('Fecha') as TDateTimeField).DisplayFormat := 'DD/MM/YYYY';
end;

Tambien lo probe en un evento de un boton donde inicializo el query pero tambien sale error: CabeceraAdoQuery: Field 'Fecha' not found, este error sale en los dos eventos.

Código Delphi [-]
  with self.CabeceraADOQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add(Cad);
      ExecSQL;
      Active := true;
      Last;
    end;
    //(CabeceraADOQueryFecha as TDateTimeField).DisplayFormat := 'dd/mm/yyyy';

    //TDateTimeField(CabeceraADOQuery.FieldByName('Fecha')).DisplayFormat := 'dd/mm/yyyy';

    //TDateTimeField(CabeceraADOQueryFecha.Value).DisplayFormat := 'DD/MM/YYYY';
    F:=Datos.DatosDM.CabeceraADOQuery.FieldByName('Fecha')as TDateField;
    F.DisplayFormat:='dd/mm/yyyy';
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com

Última edición por javicho_villa fecha: 28-06-2019 a las 22:15:08.
Responder Con Cita
  #4  
Antiguo 29-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código:
Close;
SQL.Clear;
SQL.Add(Cad);
ExecSQL;
Active := true;
Last;
También ten en cuenta que eso está mal y será más o menos así:
Código Delphi [-]
Close;
SQL.Text:=Cad; // asignas el select
Open;  // open, porque será un select. (execsql es para ejecutar insert, delete, update)
Last;  // vas al último registro
Responder Con Cita
  #5  
Antiguo 29-06-2019
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Hola


Cita:
Empezado por javicho_villa Ver Mensaje
tambien sale error: CabeceraAdoQuery: Field 'Fecha' not found, este error sale en los dos eventos.

Segun el mensaje de error el problema es que no encuentra el campo indicado. Seria cuestion de verificar el SQL que envias.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #6  
Antiguo 30-06-2019
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Muchas gracias por las respuestas, el query es un (select * from Pedido) si muestra la fecha y todos los campos en el dbgrid,
pero en un formato que no deseo, he intentado todo lo que menciono anteriomente pero nose porque no puedo modificar el formato de fecha en el dbgrid.
__________________
Javier Villa Sánchez
jvilla@andreaproducciones.com
Responder Con Cita
  #7  
Antiguo 30-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues si no hace caso del formato, no reconoce el campo, etc. es porque el dbgrid tiene asignado otro datasource distinto al que corresponde.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Exportar un DBGRID a excel con formato de fecha Luis Castro Varios 3 21-01-2011 21:54:38
obtener solo la fecha en formato fecha y sin hora BlueSteel SQL 14 09-05-2008 16:42:19
conversion de fecha texto a fecha formato date shinyi OOP 3 17-12-2007 20:19:49
Como cambiar el formato de un QRSysData en formato fecha Bitbanner Tablas planas 1 13-02-2005 12:33:26
Formato Fecha en DbGrid IceJamp OOP 4 28-09-2004 13:22:42


La franja horaria es GMT +2. Ahora son las 19:20:18.


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