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 06-12-2006
mcarazas mcarazas is offline
Miembro
 
Registrado: may 2006
Posts: 40
Poder: 0
mcarazas Va por buen camino
Ordenar fechas en StringGrid

Hola amigos del club:

Explicare un poco lo que estoy haciendo, estoy vaciando datos de una consulta a un StringGrid, el StringGrid tiene varias columnas entre ellas columnas con fechas lo que necesito es ordenar las fechas pero desde el StringGrid utilizando los datos, encontre algoritmos de ordenación en el foro, pero este algoritmo solo ordena cadenas, yo necesito ordenar fechas. Estaba pensando convertir los campos de fecha en numeros pero no encuentro la funcion para hacer esto, espero puedan ayudarme o darme otra solución.

Este es el codigo de ordenación:

Código Delphi [-]
procedure Sortgrid(Grid : TStringGrid; SortCol:integer);
var
   i,j  : Integer;
   temp : TStringList;
begin
Temp:= TStringList.Create;
with Grid
do begin
   for i := FixedRows to RowCount - 2 do
   begin
      for j:= i+1 to rowcount-1 do
      begin
         if AnsiCompareText(Cells[SortCol,i], Cells[SortCol,j]) < 0 then         
         begin
              temp.assign(rows[j]);
              rows[j].assign(rows[i]);
              rows[i].assign(temp);              
         end;
      end;
      end;
   end;
   DecodeDateTime();
temp.free;
end;

Les agradesco de antemano la ayuda.
Responder Con Cita
  #2  
Antiguo 06-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Entiendo que el problema que tienes es que no sabes como comparar 2 fechas. Nada mas fácil, comparalas como si se tratase de dos números, porque en realidad lo son

Es decir, donde tienes esto:
Código Delphi [-]
if AnsiCompareText(Cells[SortCol,i], Cells[SortCol,j]) < 0 then

Usa esto otro:
Código Delphi [-]
if StrToDate(Cells[SortCol,i]) < StrToDate(Cells[SortCol,j]))  then
Responder Con Cita
  #3  
Antiguo 06-12-2006
mcarazas mcarazas is offline
Miembro
 
Registrado: may 2006
Posts: 40
Poder: 0
mcarazas Va por buen camino
Agracedimiento

Muchas gracias por la ayuda funciono perfectamente, era tan simple como eso.
Responder Con Cita
  #4  
Antiguo 19-12-2006
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Otra Forma de Ordenar las fecha el StringGrid

Otra Forma de Ordenar el StringGrid es pasando la fecha dd/mm/aaaa a aaa/mm/dd asi solo tienes que comparar que numero es mayor y listo.

02/11/2006 ---------- 20061102
18/12/2005 ---------- 20051218

__________________
:D chinosoft - only
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
Ordenar datos en un StringGrid gilberto_1126 Varios 2 22-12-2010 18:34:29
Stringgrid Ordenar datos con click en titulo de columna dmassive Varios 1 20-01-2006 04:09:12
Las horribles fechas, control de fechas Huer OOP 6 18-10-2005 19:11:49
ordenar tabla davidgaldo Conexión con bases de datos 7 25-02-2004 13:03:02
ordenar query haron Conexión con bases de datos 1 01-09-2003 16:18:35


La franja horaria es GMT +2. Ahora son las 01:19:58.


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