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

Dois Novos Problemas:


Carlos Rocha

Pergunta

1) Tenho a ídea de, ao clikar no botão gravar, sejam feitas algumas considerações;

A - Uma pesquiza usando uma query auxiliar no Form que retornara todos os dados da tabela Clientes onde o Campo cPF_CNPJ seja igual ao preenchido no DBEditCPF_CNPJ.Text.

B - Depois verifica o estado da Query principal do Form:

Caso seja dsInsert, e caso o CPF ou CNPJ digitado não tenha cadastro na tabela, aí dá um Post e grava. Até aí esta ok.

Caso seja dsEdit, e caso o CPF ou CNPJ digitado seja o mesmo do cadastro na tabela, aí dá um Post e grava. Até aí esta ok, depois verifica se

o CPF ou CNPJ digitado não seja o mesmo do cadastro na tabela e não tenha cadastro na tabela, aí não Posta e aborta. Aqui está dando erro, está gravando mesmo assim.

Esse é o Código que to usando:

procedure TCClientes.BitBtnGravarClick(Sender: TObject);
begin
   QryClientes2.Close;
   QryClientes2.Sql.Clear;
   QryClientes2.SQL.Add('Select * from Clientes where CPF_CNPJ = '+''''+DBEditCPF_CNPJ.Text+''''+'');
   QryClientes2.Open;
   if QryClientes.State in [dsInsert] then
      begin
        if not QryClientes2.Eof then //já existe cadastro
           begin
            ShowMessage ('Já existe Cadastrado com este CPF/CNPJ. Pesquize!');
            Abort;
           end
      else
        begin
         QryClientes.Post;
         ShowMessage ('Cadastrado efetuado com sucesso!');
        end
    end
    else if QryClientes.State in [dsEdit] then
            begin
                if QryClientesCPF_CNPJ.Value = DBEditCPF_CNPJ.Text then
                  begin
                   QryClientes.Post;
                   ShowMessage ('Alteração efetuada com sucesso!');
                  end
                else
                  begin
                    if not QryClientes2.Eof then //já existe cadastro - Aqui está dando erro, está gravando mesmo assim.
                      begin
                         ShowMessage ('Já existe Cadastrado com este CPF/CNPJ. Pesquize!');
                         Abort;
                      end
                  end
           end
end;
2) Outra coisa e que eu quero forçar o cara a digitar todos os dígitos do CPF ou CGC. To usando o código abaixo mas quando o cara não digita os digitos todos, ele anula o Post e fica aguardando o cara terminar de digitar pra liberar o Post em vez de dar mensagem, porem isso só esta acontecendo no estado dsEdit da Query. Eu usei o código abaixo mas num funciona com a query no estado dsEdit!
procedure TCClientes.QryClientesBeforePost(DataSet: TDataSet);
begin
if DBRadioGroupTipo.ItemIndex = 0 then
             begin
                if (Length(DBEditCPF_CNPJ.Text) <> 11) then
                    begin
                      ShowMessage('CPF tem 11 Dígitos');
                      DBEditCPF_CNPJ.SetFocus; // posiciona o cursor
                      Abort; // não grava e continua editando
                    end
             end
          else
             begin
                if (Length(DBEditCPF_CNPJ.Text) <> 14) then
                    begin
                      ShowMessage('CNPJ tem 14 Dígitos');
                      DBEditCPF_CNPJ.SetFocus; // posiciona o cursor
                      Abort; // não grava e continua editando
                    end
             end
end

Iteressantes que os 2 problemas acotecem no modo dsEdit.

Da uma força aí pessoal.

Oh pessoal. Da uma força ai!

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...