Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ordenar fechas en StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=38185)

mcarazas 06-12-2006 01:19:09

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.

seoane 06-12-2006 01:40:47

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

mcarazas 06-12-2006 01:53:42

Agracedimiento
 
Muchas gracias por la ayuda funciono perfectamente, era tan simple como eso.

chinosoft 19-12-2006 13:30:48

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


La franja horaria es GMT +2. Ahora son las 13:19:02.

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