Ir para conteúdo
Fórum Script Brasil
  • 0

Como Resolver Esse Problema?


Carlos Rocha

Pergunta

Tenho em um formulario de pesquiza:

1 edit um combobox e um dbgrid

Com o Edit eu digito um nome ou CPF ou CNPJ

Com a combobox eu escolho qual consulta fazer na tabela se é por Nome ou se é por CPF_CNPJ na query.

No DBGrid eu listo os registros da tabela.

O que eu quero fazer é o seguite:

Quando abrir o form, o DBGrid mostra todos os registros da tabela porem eu queria validalos.

Tem um campo Tipo, que valida F 'Física' ou J 'Jurídica' e um campo CPF_CNPJ, que traz o value do campo

O Código que to usando é o seguite nesse form:

Estou usando usando o código abaixo que esta dando certo, porem esta dando um loop infinito, a barra lateral do DBGrid fica "Doida", subindo e descendo direto e não sei como parar isso.

Código:

procedure TPCli.BitBtnProcurarClick(Sender: TObject);
begin
 if EditNomeCPF_CNPJ.Text='' then
    begin
      showmessage('Digite algum texto para ser pesquisado!');
      abort;
    end
    else if QryClientes.IsEmpty then
            begin
             ShowMessage('Não há registro!');
             Abort;
            end;
end;

procedure TPCli.BitBtnSelecionarClick(Sender: TObject);
begin
 CClientes.QryClientes.Locate('Nome',dbgriddados.SelectedField.AsString,[]);
 close;
end;

procedure TPCli.BitBtnCancelarClick(Sender: TObject);
begin
 Close;
end;

procedure TPCli.EditNomeCPF_CNPJChange(Sender: TObject);
begin
  if ComboboxEscolha.Text='' then
  begin
    showmessage('Escolha o tipo da Pesquiza!');
    ComboboxEscolha.setfocus;
    Abort;
  end;
  QryClientes.Close;
  QryClientes.SQL.Clear;
  QryClientes.SQL.Add('select * from Clientes where '+ComboboxEscolha.Text+' like:vardigito order by Nome');
  QryClientes.Parambyname('vardigito').asstring:= EditNomeCPF_CNPJ.text +'%';
  QryClientes.Open;
end;

procedure TPCli.QryClientesTipoGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
// Aqui funciona mas da loop quando entro com a linha da mascara
  if Sender.Value = 'F' then
   begin
    Text := 'Pessoa Física';
    QryClientesCPF_CNPJ.EditMask :='999\.999\.999\-99;0;_';
  end
  else
    if Sender.Value = 'J' then
       begin
         Text := 'Pessoa Jurídica';
         QryClientesCPF_CNPJ.EditMask :='99\.999\.999\/9999\-99;0;_';
       end
end;

procedure TPCli.QryClientesTipoSetText(Sender: TField; const Text: String);
begin
// Aqui funciona mas da loop quando entro com a linha da mascara
  if Text = 'Pessoa Física' then
    begin
     Sender.Value := 'F';
       QryClientesCPF_CNPJ.EditMask :='999\.999\.999\-99;0;_';
    end
  else
    if Text = 'Pessoa Jurídica' then
       begin
         Sender.Value := 'J';
         QryClientesCPF_CNPJ.EditMask :='99\.999\.999\/9999\-99;0;_';
      end
end;

end.

Como resolver esse problema?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...