Ver Mensaje Individual
  #2  
Antiguo 27-11-2005
Avatar de mazinger
mazinger mazinger is offline
Miembro
 
Registrado: jul 2004
Ubicación: Zamora
Posts: 85
Reputación: 20
mazinger Va por buen camino
1.- Utiliza TJvDBUltimGrid, que dispone de esa opción.
2.- Puedes capturar el evento OnTitleClick del DBGrid y cambiar la SQL del Dataset ordenandolo por el campo correspondiente
Te paso un ejemplo válido para Un ADODataSet

Código Delphi [-]
 procedure TdmRecursos.OrdenaGrid(aColumn: TColumn);
 Var
   SQL,Orden, Temp : String;
   Index : Integer;
   Marca : TBookMark;
 begin
   With (aColumn.Grid.DataSource.DataSet  as TADODataSet) do begin
     If (aColumn.Field.FieldKind = fkCalculated) Or
        (aColumn.Field.FieldKind = fkLookup) Then ShowMessage('No se puede ordenar por este campo')
     Else Begin
       Marca := aColumn.Grid.DataSource.DataSet.GetBookmark;
       Try
         Close;
         SQL := CommandText;
         If aColumn.Field.Lookup Then Orden := aColumn.Field.KeyFields
           Else Orden := aColumn.FieldName;
         Index :=Pos('Order',SQL)-1;
         If Index <> -1
            Then Temp := Copy(SQL,0,Index)+'Order by '+Orden
            Else Temp := SQL + ' Order by '+Orden;
         CommandText := Temp;
         Open;
         aColumn.Grid.DataSource.DataSet.GotoBookmark(Marca);
       Finally
         aColumn.Grid.DataSource.DataSet.FreeBookmark(Marca);
       End;
     End;
   End;
 end;
__________________
Visita mi página (en construcción):

http://mazinger.wordpress.com/

Última edición por dec fecha: 28-11-2005 a las 10:15:16. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita