Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maryanne

Filtro de pesquisa RadioGroup

Recommended Posts

Olá estou necessitando de ajuda, preciso fazer uma pesquisa utilizando RadioGroup.

O que ocorre é que não sei como fazer, pois é meu primeiro contato no Banco de Dados envolvendo o Delphi.
Eu gostaria de "perguntar" qual foi a opção marcada no RadioGroup, e depois pesquisar e aparecer somente aqueles que possuem a caracteristica marcada.

O que eu consegui fazer foi:

 

Até agr fiz:

 

Código: 2:begin
if RadioGroup2.ItemIndex = 0 then
begin
sql[1] := 'Matutino';
end;
end;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode montar o sql dinamicamente e depois executar a pesquisa. Segue um exemplo:

 

 

procedure TfrmPrincipal.PesquisaXML;
var sSQL,
    sAviso : String;
begin
   sSQL := 'SELECT  TSD.DT_SITUACAO_DOCUMENTO, TSD.NM_PROPONENTE, ' +
                    'TSD.DS_XML.value(' + QuotedStr('(/controle/estudo/corretor)[1]') + ', ' +
                                          QuotedStr('VARCHAR(10)')                    + ') AS CORRETOR,'  +
                    'TSD.DS_XML.value(' + QuotedStr('(/controle/estudo/sucursal)[1]') + ', ' +
                                          QuotedStr('VARCHAR(10)')                    + ') AS SUCURSAL,'  +
                    'TSD.DS_XML '       +
            'FROM   TB_SEGURO_DOCUMENTO TSD WITH(NOLOCK) ';

   //Monta o SQL de acordo com os filtros            
   case rgFiltroPesquisa.ItemIndex of
      0 : begin //Pesquisa por Nome
             sAviso := 'Informe o nome a ser pesquisado para continuar...';
             sSQL   := sSQL + 'WHERE    TSD.NM_PROPONENTE LIKE ' + QuotedStr('%' + edtFiltroPesquisa.Text + '%');
          end;
      1 : begin //Pesquisa por CPF
             sAviso := 'Informe o CPF a ser pesquisado para continuar...';
             sSQL   := sSQL + 'INNER JOIN TB_SEGURO TS WITH(NOLOCK) ON TS.ID = TSD.PID_SEGURO '           +
                              'INNER JOIN TB_CLIENTE TC WITH(NOLOCK)ON TC.ID = TS.PID_ESTIPULANTE '       +
                              'INNER JOIN TB_PESSOA TP WITH(NOLOCK) ON TP.ID = TC.PID_PESSOA '            +
                              'WHERE    TP.NU_CPF_CNPJ = ' + Trim(edtFiltroPesquisa.Text);
          end;
   end;

   if (Trim(edtFiltroPesquisa.Text) = EmptyStr) then
   begin
      ShowMessage(sAviso);
      Exit;
   end;

   with ADOQryPesquisa do
   begin
      if Active then
         Close;
      SQL.Clear;
      SQL.Add(sSQL);
      Open;
   end;


end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.