Pesquisar somente nos registros que aparecem no dbgrid
Olá Pessoal,
Como faço para ao clicar numa coluna do dbgrid, ter como fazer uma consulta somente sobre os dados que estão aparecendo no dbgrid e nessa coluna? Por exemplo, tenho uma coluna onde aparece o campo USUARIO de uma tabela, e no grid está aparecendo digamos 30 registros (30 linhas). Como faço para ao clicar em uma das linhas na coluna USUARIO aparecer uma janela onde o usuario pode fazer uma consulta pelo nome do usuario somente ness30 registros (30 linhas que estão aparecendo no grid)? Não sei se deu para entender.
Luiz
Como faço para ao clicar numa coluna do dbgrid, ter como fazer uma consulta somente sobre os dados que estão aparecendo no dbgrid e nessa coluna? Por exemplo, tenho uma coluna onde aparece o campo USUARIO de uma tabela, e no grid está aparecendo digamos 30 registros (30 linhas). Como faço para ao clicar em uma das linhas na coluna USUARIO aparecer uma janela onde o usuario pode fazer uma consulta pelo nome do usuario somente ness30 registros (30 linhas que estão aparecendo no grid)? Não sei se deu para entender.
Luiz
L_carlos
Curtidas 0
Respostas
Woinch
09/01/2009
Não está muito claro. Você quer clicar no título de alguma coluna? Onde especificamente? Um clique? Dois cliques? Você quer filtrar o resultado daquele grid ou quer montar o resultado da busca em um outro grid?
Pode explicar melhor?
Pode explicar melhor?
GOSTEI 0
L_carlos
09/01/2009
Pode ser um clique na coluna (não seria no titulo da coluna, seria direto na coluna no grid), e abriria uma janela para pesquisar nos registros dessa coluna que estão no grid (somente os que estão no grid), e o resultado apareceria no mesmo grid.
Luiz
Luiz
GOSTEI 0
Woinch
09/01/2009
Se seu Grid estiver vinculado a um DataSource, então tente colocar o código a seguir no evento OnCellClick do DBGrid:
Para remover o filtro basta utilizar o seguinte código:
Se não for bem isso que você queria basta postar novamente, espero que sirva pelo menos como exemplo.
Abraços...
with DBGrid1.DataSource.DataSet do begin Filter := Column.FieldName + ´ like ´´¬´ + InputBox(´Filtrar pela coluna ´ + Column.Title.Caption, ´Digite algo:´, ´´) + ´¬´´´; Filtered := True; end; //with
Para remover o filtro basta utilizar o seguinte código:
Filtered := True;
Se não for bem isso que você queria basta postar novamente, espero que sirva pelo menos como exemplo.
Abraços...
GOSTEI 0
L_carlos
09/01/2009
Olá Woinch. tentei usar o seu codigo mas está dando erro ao compilar:
UNDECLARED IDENTIFIER COLUMN
Tem certeza que esse codigo é valido?
Grato
Luiz
UNDECLARED IDENTIFIER COLUMN
Tem certeza que esse codigo é valido?
Grato
Luiz
GOSTEI 0
L_carlos
09/01/2009
Woinch, consegui usar o codigo, só que ele retorna no grid os mesmos registros que estavam antes da pesquisa.
Luiz
Luiz
GOSTEI 0
Woinch
09/01/2009
Amigo, o que esse código faz é filtrar com o que foi digitado tudo o que você tiver no DataSet pela coluna que ele capturar ao efetuar o clique no Grid. Quando você clica no Grid e aparece uma janela de Dialogo, você digitou o que?
GOSTEI 0
Pestana_
09/01/2009
Não sei se entendi, mas você não esta querendo um relacionamento mestre-detalhe?
Ao clicar no registro no dbGrid retornar todos os detalhes?
Ao clicar no registro no dbGrid retornar todos os detalhes?
GOSTEI 0
L_carlos
09/01/2009
Não consegui, tentei fazer como o cologa Woinch colocou abaixo mas apos digitar a que desejo pesquisar o grid mostra exatamente o que estava mostrando antes, não filtra pelo que pedi.
with gridagenda.DataSource.DataSet do
begin
Filter := Column.FieldName + ´ =´ +
InputBox(´Filtrar pela coluna ´ + Column.Title.Caption, ´Digite algo:´, ´´) + ´¬´´´;
Filtered := True;
end; //with
o meu grid está com uma query ligada ao datasource, não sei se isso pode impedir que o filtro acima funcione.
Luiz
Luiz
with gridagenda.DataSource.DataSet do
begin
Filter := Column.FieldName + ´ =´ +
InputBox(´Filtrar pela coluna ´ + Column.Title.Caption, ´Digite algo:´, ´´) + ´¬´´´;
Filtered := True;
end; //with
o meu grid está com uma query ligada ao datasource, não sei se isso pode impedir que o filtro acima funcione.
Luiz
Luiz
GOSTEI 0
Leonardo_age
09/01/2009
Amigo, tá difícil de entender.. rs
Vamos fazer o seguinte, informa quais os dados e tabelas que você está manipulando para que possamos tentar trocar experiência.
Abraços
Vamos fazer o seguinte, informa quais os dados e tabelas que você está manipulando para que possamos tentar trocar experiência.
Abraços
GOSTEI 0