Função DBGrid

19/05/2008

1

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!!!


Responder

Posts

19/05/2008

Eniorm

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



Responder

24/05/2008

Rafael Silva

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.


Responder

24/05/2008

Joaoshi

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.


Responder

28/05/2008

Brunodsr

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.


Responder