ordenar dbgrid vinculado a TTable

25/03/2003

0

Pessoal,

estou com dificuldades para alterar a exibição de um dbgrid, ordenando o conteúdo através do clique nos cabeçalhos. Minha base é dbf e não sei trabalhar com índices.

Detalhe: algumas funções do sistema estão vinculadas a este grid e a este table, portanto, para eu mudar pra uma query e ordenar no select fica difícil, pois teria que atualizar todo o sistema.

Fico grato a quem puder ajudar.
:oops:


Anonymous

Anonymous

Responder

Posts

25/03/2003

Anonymous

tambem nao sei identificar em qual coluna do Dbgrid o usuário clicou. E se acaso o usuário alterar a ordem das colunas?

ih... me perdi todo...

já vi que nao vou conseguir... :(


Responder

25/03/2003

Murphi

Você pode usar o próprio título da coluna do dbgrid.
No evento TitleClick vc. pode colocar o seguinte código:
if not DBGrdConsulta.Columns[ Column.Index ].ReadOnly then
begin
iPosCbx := CbxCampo.Items.IndexOf(Column.Title.Caption);
CbxCampo.ItemIndex := iPosCbx;
ClientConsulta.IndexFieldNames := Column.FieldName;

if DBGrdConsulta.Columns[ Column.Index ].PickList.Text = ´´ then
sCampoPesquisa := Column.FieldName
else
sCampoPesquisa := DBGrdConsulta.Columns[ Column.Index ].PickList.Text;

if ((Column.Title.Caption)= ´Site´) or ((Column.Title.Caption)= ´E-mail´) then
EdtPesquisa.CharCase := ecLowerCase
else
EdtPesquisa.CharCase := ecUpperCase;
end;


Responder

26/03/2003

Anonymous

obrigado pela ajuda,

adaptei seu codigo para meu sistema, mas no entanto aparentemente não esta ocorrendo o evento do clique no titulo...

tem ideia do que pode ser???


Responder

26/03/2003

Anonymous

Que eu saiba o dbgrib só ordena se já existir um índice mesmo que secundário, porém quanto mais arquivos de índice você tiver mais problemas vai ter a base de dados


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar