Função DBGrid

Delphi

19/05/2008

Olá pessoal,

Estou com o seguinte problema, tenho um ClientDataSet onde carrego os dados de uma tabela e um DBGrid onde eu os visualizo, neste DBGrid tenho a opção de selecionar vários registros. Nevessito de uma função onde eu possa clicar em um botão e visualizar somente os registro selecionados e outro botão para visualizar todos novamente.


Deste já agradeço a atenção!!!


Rafael Silva

Rafael Silva

Curtidas 0

Respostas

Eniorm

Eniorm

19/05/2008

O DBGrid, caso esteja ativado a opção [b:bd1732b2b6]Multiselect [/b:bd1732b2b6]permite a seleção de várias linhas.

Vc terá essa informação na propriedade SelectedRows
vc poderá usar um [b:bd1732b2b6]for [/b:bd1732b2b6]para capturar as linhas
for i := 0 to DBGrid1.SelectedRows.Count -1



GOSTEI 0
Rafael Silva

Rafael Silva

19/05/2008

Sim, até essa parte eu sei, mas se uso essa função para deletar os que não estão selecionados, não consigo voltar eles, porque preciso desta função não para manipular, mas o cliente visualizar, ele quer selecionar alguns registro, visualizar SOMENTE OS SELECIONADOS e depois voltar para a visualização normal. Mas ainda não consegui fazer isso sem deletar os registros.


GOSTEI 0
Joaoshi

Joaoshi

19/05/2008

Colega, você poderia criar um field no ClientDataSet, quando o usuário selecionar o registro você grava a field com [b:37222cb36b]S[/b:37222cb36b] quando ele desmarcar grava com [b:37222cb36b]N[/b:37222cb36b]. Para visualizar os marcados ClientDataSet.Filter := Field = ´S´
ClientDataSet.Filtered := true;

quando ver todos

ClientDataSet.Filtered := false;


Espero ter ajudado.


GOSTEI 0
Brunodsr

Brunodsr

19/05/2008

Use a dica do amigo Enio Marconcini.

for i := 0 to DBGrid1.SelectedRows.Count -1


Percorra os dados selecionados e insira-os no CDS auxiliar (sem provider, apenas em memoria). Com o novo CDS carregado, vc exibe os dados em tela a partir do mesmo.

Assim vc consegue manter os dados do CDS original.

Espero ter ajudado.


GOSTEI 0
POSTAR