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.
Pergunta
Carlos Rocha
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:
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.