oliveiras 0 Denunciar post Postado Dezembro 14, 2009 Caros Tenho um RadioGroup 'Status' onde nesse RadioGroup aparece os Seguintes Status de uma Pessoa: Ativo, Inativo Na mesma Tela eu tenho um DBGrid onde eu tenho todo mundo que está Cadastrado no sistema. Preciso montar uma condição (if) onde se eu clicar no Status Ativo, deve aparecer todos que estão Ativo e se no RadioGroup eu clicar em Inativo, deve mostrar no DBGrid só as pessoas Inativas. Como eu poderia montar essa Condição no Delphi? Para carregar o DBGrid utilizo um ADO Query... Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Dezembro 14, 2009 Obrigatoriamente você será forçado a refazer a consulta no seu BD a cada mudança de click no grid... basicamente, você terá que montar sua consulta dinamicamente e de acordo com a opção selecionada filtrar os resultados seguindo esta ordem: -Fechar a query associada ao dbgrid. -Limpar a query. -Adicionar a nova query com os filtros desejados -Abrir a query novemente. No fórum tem muitos exemplos de como montar uma query dinamicamente.... dê uma pesquisada e qualquer coisa poste novamente. []'s Compartilhar este post Link para o post Compartilhar em outros sites
itepi 0 Denunciar post Postado Dezembro 14, 2009 Na verdade se ele estiver utilizando o componente ClientDataSet ele pode fazer uma consulta geral e utilizando a propriedade Filter e Filtered filtrar os dados que serão exibidos do DBGrid evitando que seja necessario abrir e fechar a query a cada mudança. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
echo "VINICIUS" 3 Denunciar post Postado Dezembro 14, 2009 pra esse tipo de filtro num tem outro jeito você tem qeu fazer seleçoes SQL eu trabalho utilizando os elementos da paleta ADO utlizo o DATASOURCE, ADOCONECTION E ADOQUERY. veja como fica para fazer a selecao qeu deseja: procedure TForm1.FormCreate(Sender: TObject); var help:string;//variavel que concatenara o campo marcado ela serve como aspas, tentei colocar as aspas mas num da certo, assim eh gabiarra mas funciona begin help:=''''; form1.ADOQuery1.Active:=false;//desative a query form1.ADOQuery1.SQL.Clear; //limpa o codigo SQL existente form1.ADOQuery1.SQL.Add('select * from cliente WHERE NOME_DO_CAMPO ='+help+radiobutton.caption+help); //ou seja o radio marcado indicará a condicao do filtro form1.ADOQuery1.Active:=true; // e selecionará de acordo com o que foi marcado, nesta linha ativa-se novamente a query end; pode fazer que eh tiro e queda sempre uso este tipo de procedimento para filtrar campos de pesquisa ou de seleção valeu ..ate qualquer duvida continua postando.. Compartilhar este post Link para o post Compartilhar em outros sites