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 23-09-2004
IceJamp IceJamp is offline
Miembro
 
Registrado: sep 2004
Posts: 12
Poder: 0
IceJamp Va por buen camino
Formato Fecha en DbGrid

Saludos. ¿ Podría alguien indicarme como hacer para que la introducción de fechas en un DbGrid se realizara igual que en un control específico para fechas ( p.e. DbDateTimePicker ) ?

Gracias
Responder Con Cita
  #2  
Antiguo 23-09-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Puedes incrustar un DateTimePicker encima de la rejilla con la propiedad visible a falso y luego con este código que pongo de ejemplo ir mostrándolo y modificando la fecha sin ningún problema.
Código Delphi [-]
 
 procedure TForm1.DBGrid1ColEnter(Sender: TObject);
 begin
   if DbGrid1.Columns [DbGrid1.SelectedIndex].
   Field = Table1Saledate   then
   DateTimePicker1.Visible := True
   else
   DateTimePicker1.Visible := False;
 end;
 
 procedure TForm1.DateTimePicker1Change(Sender: TObject);
 begin
 Table1.Edit;
 Table1Saledate.Value:=Trunc(DateTimePicker1.Date);
 end;
 
 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
   DataCol: Integer; Column: TColumn; State: TGridDrawState);
 begin
   if (gdFocused in State) and
     (Column.Field = Table1Saledate) then
   begin
     DateTimePicker1.SetBounds (
       Rect.Left + DBGrid1.Left + 1,
       Rect.Top + DBGrid1.Top + 1,
       Rect.Right - Rect.Left,
       Rect.Bottom - Rect.Top);
 
   DateTimePicker1.Date:=Trunc(Table1Saledate.Value);
   end;
 end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 23-09-2004
IceJamp IceJamp is offline
Miembro
 
Registrado: sep 2004
Posts: 12
Poder: 0
IceJamp Va por buen camino
Thumbs up Funciona

Gracias. Investigando en otro foro ví la solución que me propones y funciona. Hay que hacerle un para de retoques para que no se note que es un control encima de otro pero funciona. Gracias.
Responder Con Cita
  #4  
Antiguo 23-09-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Se puede saber que retoques le has hecho?

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 28-09-2004
IceJamp IceJamp is offline
Miembro
 
Registrado: sep 2004
Posts: 12
Poder: 0
IceJamp Va por buen camino
He quitado el evento OnChange del DateTimePicker y lo he sustituido por:

En el evento OnEnter del DateTimePicker:

procedure TFrmMoviBanc.FechaGridEnter(Sender: TObject);
begin
FechaGrid.Date := TablaMov.FieldByName('FECOPE').AsDateTime;
end;

para que al activarse el DateTimePicker éste aparezca con la fecha que hay en la base de datos en el campo que estamos editando

En el evento OnExit del DateTimePicker:

procedure TFrmMoviBanc.FechaGridExit(Sender: TObject);
begin
dbGridDatos.SelectedIndex := 2;
if TablaMov.State in [ dsInsert, dsEdit ] then
TablaMov.FieldByName('FECOPE').AsDateTime := FechaGrid.Date;
end;

activo la siguiente columna del dbgrid y si estoy editando o insertando, actualizo en la base de datos el valor del DateTimePicker.

Espero que sirva.
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 11:43:50.


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