GARANTIR DESCONTO

Fórum DBNavigator - Agregando Funções aos Botões... #326231

26/07/2006

0

Bom Pessoal... preciso fazer o seguinte...

Quando eu clicar no botão ´Post´ do DBNavigator... ele tem que testar se o DBEdit1 está vazio ou não... se estiver vazio ele tem que dar uma mensagem ´Digite o Cliente´... e dar o SetFocus no DBEdit1... Caso contrátrio grava o arquivo no Banco de Dados...

Via Button1 eu sei fazer mas utilizando o DBNavigator não Funcionou...

Agradeço a atenção... Um Abraço...


Adelor Silva

Adelor Silva

Responder

Posts

27/07/2006

Aroldo Zanela

Colega,

Você até pode fazer isso nos manipuladores de evento do dbNavigator, mas o mais apropriado seria no evento OnValidate do objeto TField ou no BeforePost do DataSet. Desta forma, independe do controle que está sendo utilizado para disparar o método Post.


Responder

Gostei + 0

27/07/2006

Adelor Silva

No BeforePost, eu tentei da seguinte forma mas não obtive resultado...

begin
if (edit1.text = null) then
begin
showmessage (´Digite o Cliente´)
end;
end.

(a escrita pode não estar correta, é que não estou no micro que tem delphi)... mas peguei de um outro projeto que estava funcionando...

aguardo retorno... Obrigado...


Responder

Gostei + 0

27/07/2006

Aroldo Zanela

Colega,

Qual é o banco de dados e o mecanismo de acesso (BDE, IBX, DBX, ADO, Zeus, etc)?


Responder

Gostei + 0

27/07/2006

Paullsoftware

coloque esse código no evento OnClick do DbNavigator, veja se é isso que vc quer?
case Button of
 nbFirst:
  begin

  end;
 nbPrior:
  begin

  end;
 nbNext:
  begin

  end;
 nbLast:
  begin

  end;
 nbLast:
  begin

  end;
 nbInsert:
  begin

  end;
 nbDelete:
  begin

  end;
 nbEdit:
  begin

  end;
 nbPost:
  begin

  end;
 nbCancel:
  begin

  end;
 nbCancel:
  begin

  end;
 nbRefresh:
  begin

  end;
end;

espero ter ajudado :wink:


Responder

Gostei + 0

27/07/2006

Marco Salles

No BeforePost, eu tentei da seguinte forma mas não obtive resultado...


begin
if (edit1.text = null) then 
begin 
showmessage (´Digite o Cliente´) 
end;  
end.


esta instrução edit1.text = null nen deve compilar , porque ser nil é diferente de Vazio. Na verdade nada a ver.
Mas mesmo que voce façã o teste no BeforePost Do Seu DataSet , [b:ef16ffd56b]uma mensagem somente não [/b:ef16ffd56b]impede que o registro seje gravado.

[b:ef16ffd56b]Voce deve lançar mão de uma exceção[/b:ef16ffd56b]

if (edit1.text = ´´) then 
raise exception.Create(´Codigo não pode ser Vazio);


Porém , o mais indicado para isto é o evento OnValidade do Campo ou criar Constraints no DataSets



Responder

Gostei + 0

27/07/2006

Adelor Silva

a noite vou testar as dicas...

mas pra todos os casos... eu utilizo MySQL e para conectar o Banco Zeus...


Responder

Gostei + 0

27/07/2006

Adelor Silva

No BeforePost coloquei o código que você me passou...

if (FrmCadMaquina.DBEdit2.Text = ´´) then
begin
raise Exception.Create(´Digite a Descrição da Nova Máquina´);
FrmCadMaquina.DBEdit2.SetFocus;
end;

Agora ficou perfeito... Muito obrigado...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar