Função DBGrid
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!!!
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
Curtidas 0
Respostas
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
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
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
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.
ClientDataSet.Filtered := true;
quando ver todos
ClientDataSet.Filtered := false;
Espero ter ajudado.
GOSTEI 0
Brunodsr
19/05/2008
Use a dica do amigo Enio Marconcini.
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.
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