domingo, 17 de junio de 2018

TDBGrid: ordenar por columnas.

Ordenar los datos de una consulta SQL mostrados en un DBGrid al hacer click en la columna. En este caso además de ordenar, pondremos en bold (negrita) el título de la columna que está ordenada. (Para algo más avanzado aquí)

En el inspector de objetos, en DBGrid, eventos, buscar: OnTitleClick


y generar el evento (procedimiento):

procedure TFdCtas.DBGridCtasTitleClick(Column: TColumn);
var
  i:Integer;
begin
  for i:=0 to DBGridCtas.Columns.Count-1 do DBGridCtas.Columns.Items[i].Title.Font.Style:=[];
  ZQCtas.Close;
  ZQCtas.SQL.Text:='SELECT * FROM dcuentas ORDER BY '+Column.FieldName+';';
  ZQCtas.Open;
  Column.Title.Font.Style:=[fsBold];
end;


En el ciclo for quitamos "Bold" de todas las columnas y al final del código lo establecemos para la actual (que viene como parámetro).

Quedando así:



4 comentarios:

  1. Sería bueno que subieses el código fuente que vas realizando.

    Gracias por compartir tus conocimientos.

    ResponderEliminar
  2. Hay otros ejemplos en los cuales subo el código fuente, esto lo hago en la medida de lo posible y el tiempo. En este caso, como se aprecia en el video, es todo un proyecto y para complicarlo más, con bases de datos. Saludos.

    ResponderEliminar
  3. Seria bueno que ordene ASC y DESC

    ResponderEliminar