Fórum Como ordenar os campos do DBGrid atraves da colunas #252041
25/09/2004
0
correspondete do campo, sem usar ClientDataSet e sem usar Query.
- Estou utilizando Delphi 6 / ADO / Access 2000
AdoConnect - AdoTable - DataSource
Desde já obrigado.
Canastra
Curtir tópico
+ 0Posts
25/09/2004
Rômulo Barros
procedure TForm1.DBGrid1CellClick(Column: TColumn); begin ClientDataSet1.IndexFieldNames := Column.FieldName; end;
:wink: :wink: :wink: :wink: :wink:
Gostei + 0
25/09/2004
Joao_schroeder
Ao clicar no título do DBGrid ele irá ordenar pelo campo clicado.
procedure TF_con_cadcli.DBGrid1TitleClick(Column: TColumn);
var
posicao: integer;
begin
with IBQuery1 do
begin
if active then
Close;
with SQL do
begin
posicao := pos(´ORDER BY´, UpperCase(Text));
if posicao = -1 then
Add(´ORDER BY ´ + Column.FieldName)
else
Text := Copy(Text, 1, Posicao - 1) + ´ORDER BY ´ + Column.FieldName;
end;
Open;
end;
// column.Font.color:=clblue;
esta última linha faz com que mude a cor da coluna clicada.
Gostei + 0
25/09/2004
Canastra
configurar o componente ClientDataSet.
Se puder me explicar usando AdoTable, ótimo, caso contratio favor
me explicar quais as configurações das propriedades e código dos
eventos.
Desde já O B R I G A D O ...........
Gostei + 0
25/09/2004
Uildenei
no evento OnTitleclick poe o codigo abaixo ...
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
if (Pos(Column.FieldName, tb.IndexFieldNames) > 0)and(Pos(´DESC´, tb.IndexFieldNames) = 0) then
tb.IndexFieldNames:=tb.IndexFieldNames + ´ DESC´
else
tb.IndexFieldNames:=Column.FieldName;
end;
senao pode usar a propriedade TIndexDefs
e criar os indices e fazer o tratamento necessario.
Gostei + 0
25/09/2004
Canastra
Fiz como falou, e deu tudo certo.
O B R I G A D O.........................
Gostei + 0
22/03/2007
Ezequias_rocha
Segue código abaixo:
Var posicao, i:integer;
begin
inherited;
With (dsPrincipal.DataSet as TQuery).SQL do
Begin
posicao := pos(´ORDER BY´, UpperCase(Text));
if posicao = -1 then
Add(´ORDER BY ´ + Column.FieldName)
else
(dsPrincipal.DataSet as TQuery).SQL.text := Copy((dsPrincipal.DataSet as TQuery).SQL.text, 1, Posicao - 1) + ´ORDER BY ´ + Column.FieldName;
dsPrincipal.DataSet.Open;
end;
column.Color:= clBlack;
Gostei + 0
13/05/2019
Danilo Oliveira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)