Ir al contenido


Foto

Ordenar datos en DBGrid, según orden de las columnas


  • Por favor identifícate para responder
1 respuesta en este tema

#1 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 30 marzo 2009 - 11:46

*****************
* Al "activar la form" *
*****************


delphi
  1. procedure TForm1.FormActivate(Sender: TObject);
  2. begin
  3.  
  4.   query1.SQL.Add('SELECT * FROM Clientes');
  5.   query1.SQL.Add('ORDER BY NombreCliente');
  6.   query1.Open;
  7.  
  8.   {Si el usuario ya habí­a entrado en la "form" anteriormente, es necesario "forzar" el
  9.   ordenamiento}
  10.   // Orden de las Columnas del DBGrid
  11.   DBGrid1ColumnMoved(Form1,0,0); 
  12.  
  13. end;



***************************************
* En el evento ColumnMoved del DBGrid *
***************************************


delphi
  1. procedure TForm1.DBGrid1ColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer);
  2. var
  3.   s_Cuerda: String;
  4.   i_Contador: Byte;
  5.  
  6. begin
  7.  
  8.   s_Cuerda:= '';
  9.   for i_Contador:= 0 to (DBGRid1.Columns.Count - 1) do
  10.     s_Cuerda:= s_Cuerda + DBGrid1.Columns.Items[i_Contador].FieldName + ',';
  11.   s_Cuerda:= Copy(s_Cuerda,0,Length(s_Cuerda) - 1);
  12.  
  13.   query1.Close;
  14.   query1.SQL.Delete(query1.SQL.Count - 1);
  15.   query1.SQL.Add('ORDER BY ' + s_Cuerda);
  16.   query1.Open;
  17.  
  18. end;



Podrí­a limitarse la cantidad de columnas utilizadas para ordenar la información, validar el tipo de campo (BLOB), si la columna tiene asignado un campo(Field), etc.


Salud.

  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 30 marzo 2009 - 11:50

Excelente truco amigo (y), Muchas gracias.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.