Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2010
ranaya ranaya is offline
Miembro
 
Registrado: ago 2004
Posts: 11
Poder: 0
ranaya Va por buen camino
Como Agregar una Columna a un DBgrid

Hola.
tengo un debgrid con los campos
Cita:
No. Fecha Serie
102 | 74751 | R
107 | 74749 | J
etc.. esto es tomado de una tabla TPS por ODBC y requiero reprecentar la fecha en un formato que el usuario comprenda. Para lo cual realice dos funciones:

Código:
const
     Fecha2000 = 72687;

implementation

//Funcion que recibe una entero del TPS y la convierte en formato de Fecha
function TpsToDate(FechaTPS:Integer): TDateTime;
var dtFecha2000 : TDateTime;
    Dias : Integer;
begin
    FechaTps:= 74749;
    Dias:= FechaTPS-Fecha2000;
    dtFecha2000 := EncodeDate(2000, 1, 1);
    dtFecha2000 := dtFecha2000 + Dias;
    Result :=  dtFecha2000;
end;

//Funcion que recibe una fecha y la convierte en entero para TPS.
function DateToTPS(FechaParaTPS:TDateTime): Integer;
var dtFecha2000 : TDateTime;
    FechaTPS,Dias : Integer;
begin
    dtFecha2000 := EncodeDate(2000, 1, 1);
    Dias := DaysBetween(FechaParaTPS, dtFecha2000);
    FechaTPS:= Fecha2000 + Dias;
    Result :=  FechaTPS;
end;
Mi problema es cómo convertir el valor del campo FECHA y asignarlo al DBgrid
Algo como:
Código:
Dbgrid1.DataSource.DataSet.FieldValues['FECHA']:=TPStoDate(Dbgrid1.DataSource.DataSet.FieldByName('FECHA').AsInteger);
Para que me actualice todos los campos FECHA en el Dbgrid, o ponerlo como otra columna, solo que no encuentro la forma de hacerlo


De antemano gracias

Última edición por ranaya fecha: 01-12-2010 a las 01:07:45.
Responder Con Cita
  #2  
Antiguo 01-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Se me ocurre que una forma podría ser aprovechar el evento OnGetText de los campos fecha para mostrarlas.

Algo como:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    ...
    procedure FormCreate(Sender: TObject);
    ...
  private
     procedure FechaGetText(Sender: TField; var Text: string; DisplayText: Boolean);
  public
  end;
...
Interface

const
     Fecha2000 = 72687;

function TpsToDate(FechaTPS:Integer): TDateTime; 
var 
   dtFecha2000 : TDateTime;
   Dias : Integer;
begin
    FechaTps:= 74749;
    Dias:= FechaTPS-Fecha2000;
    dtFecha2000 := EncodeDate(2000, 1, 1);
    dtFecha2000 := dtFecha2000 + Dias;
    Result :=  dtFecha2000;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Tu_DataSet.FieldByName('FECHA_TPS1').OnGetText:= FechaGetText;
  Tu_DataSet.FieldByName('FECHA_TPS2').OnGetText:= FechaGetText;
  ...
end;

procedure TForm1.FechaGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
  Text:= DateToStr( TPSToDate(Sender.AsInteger) );
end;
...

Saludos.

Última edición por ecfisa fecha: 01-12-2010 a las 01:35:14.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
Agregar columna a Dbgrid abdielalej OOP 9 15-03-2010 13:00:03
Poner una columna de un DBGrid como columna Fija rgstuamigo OOP 4 04-03-2009 21:54:38
como agregar una linea en un DBGrid esimon OOP 6 30-08-2005 03:10:30
como asignar un valor a una columna en un dbgrid Shidalis Varios 4 18-07-2005 23:50:46


La franja horaria es GMT +2. Ahora son las 17:51:36.


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