DBGrid em Ordem alfabética
Bom dia!
Como posso fazer para que minha Grid, mostre o registro dos NOMES em ordem alfabética, estou utilizando Table, desde já agradeço.
JuPa
Como posso fazer para que minha Grid, mostre o registro dos NOMES em ordem alfabética, estou utilizando Table, desde já agradeço.
JuPa
Jupa
Curtidas 0
Respostas
Pirasol
15/11/2003
Digite no evento OnTitleClick do DBGRID:
dmTabelas.OrdenaGrid(cdsClientes, Column);
procedure OrdenaGrid(cdsTabela: TClientDataSet; Column: TColumn);
var sColumn: string;
intX: integer;
begin
if cdsTabela.Eof then Abort;
sColumn := ´DEFAULT ORDER´;
// Caso Seja Campo Calculado, Desconsiderar
if (Column.Field.FieldKind = fkCalculated) or (Column.Field.FieldKind = fkLookup) then exit;
// Indice já em Uso
if (Column.Field.FieldName = cdsTabela.IndexName) then exit;
// Verifica a Existencia do Indice
cdsTabela.IndexDefs.Update;
for intX := 0 to cdsTabela.IndexDefs.Count -1 do
if cdsTabela.IndexDefs.Items[intX].Name = Column.Field.FieldName then
sColumn := Column.Field.FieldName;
// Caso Tenha Encontrado o Indice
if sColumn = ´DEFAULT ORDER´ then
try
cdsTabela.AddIndex(Column.Field.FieldName,Column.Field.FieldName,[],´´,´´,0);
finally
sColumn := Column.Field.FieldName;
end;
cdsTabela.IndexName := sColumn;
end;
Quando o usuário clicar em qualquer coluna, a mesma será ordenada automaticamente.
dmTabelas.OrdenaGrid(cdsClientes, Column);
procedure OrdenaGrid(cdsTabela: TClientDataSet; Column: TColumn);
var sColumn: string;
intX: integer;
begin
if cdsTabela.Eof then Abort;
sColumn := ´DEFAULT ORDER´;
// Caso Seja Campo Calculado, Desconsiderar
if (Column.Field.FieldKind = fkCalculated) or (Column.Field.FieldKind = fkLookup) then exit;
// Indice já em Uso
if (Column.Field.FieldName = cdsTabela.IndexName) then exit;
// Verifica a Existencia do Indice
cdsTabela.IndexDefs.Update;
for intX := 0 to cdsTabela.IndexDefs.Count -1 do
if cdsTabela.IndexDefs.Items[intX].Name = Column.Field.FieldName then
sColumn := Column.Field.FieldName;
// Caso Tenha Encontrado o Indice
if sColumn = ´DEFAULT ORDER´ then
try
cdsTabela.AddIndex(Column.Field.FieldName,Column.Field.FieldName,[],´´,´´,0);
finally
sColumn := Column.Field.FieldName;
end;
cdsTabela.IndexName := sColumn;
end;
Quando o usuário clicar em qualquer coluna, a mesma será ordenada automaticamente.
GOSTEI 0