GARANTIR DESCONTO

Fórum Codigo botao salvar está com algum erro #202821

24/12/2003

0

Tenho um banco com paradox, utilizando dbedits, datamodules, ttable e datasource.

Fiz os botoes pra incluir, alterar, excluir,salvar e cancelar.

O próprio usuário digita o código. Levei um certo tempo pra conseguir fazer com que o sistema não deixe o usuário repetir o mesmo código(chave primaria), porém, se eu for alterar somente um nome de um determinado cadastro, o sistema emite a mensagem dizendo que este código já esta cadastrado (porém eu não estou adicionando um novo cadastro e sim editando um já existente). Abaixo vai o código para quem quiser me ajudar.

procedure TFrmcadfunc.btnsalvarClick(Sender: TObject);
begin
If udmdados.tbdadosfuncCodfunc.IsNull =true then begin
showmessage (´Código não pode ser vazio!´);
dbedit1.SetFocus;
exit;
end;
If not udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])
then
begin
try
udmdados.tbdadosfunc.Append;
pdados.Enabled:=false;
btnincluir.Enabled:=true;
btnalterar.Enabled:=true;
btncancelar.Enabled:=false;
btnsalvar.Enabled:=false;
btnexcluir.Enabled:=true;
btnsair.Enabled:=true;
udmdados.tbdadosfunc.Cancel;
except
showmessage(´Errro ao gravar dados´);
end;
end
else begin
showmessage(´Código já existe!´);
dbedit1.SetFocus;
//udmdados.tbdadosfunc.Cancel;
end;
end;


Wagsilvasilva

Wagsilvasilva

Responder

Posts

24/12/2003

Marcos Conceição

Vc tem um botão salvar somente para quando for fazer inclusão??
Foi isso que entendi na rotina abaixo.

[u:6278a675a6]botao salvar[/u:6278a675a6]

Activecontrol:=nil; // é importante colocar no botões para tirar o foco do dbedit
If modo=alteracao then begin


end;
if modo=inclusao then begin

end;

Espero que ajude em algo,
sem mais,

Marcos


Responder

Gostei + 0

24/12/2003

Wagsilvasilva

Tenho apenas um botao salvar. ele serve tanto para salvar uma alteracao quanto uma inclusao.


Responder

Gostei + 0

24/12/2003

Wagsilvasilva

Cara, entendi tua lógica. Acho que deve ser isso ai. Vou tentar fazer isso no meu sistema. Valeu


Responder

Gostei + 0

24/12/2003

Wagsilvasilva

Emerson, fiz o q tu sugeriu, contudo apareceu um erro que não faço idéia de como corrigir.
Operator not applicable to this operand type


Responder

Gostei + 0

24/12/2003

Moonlight

Emerson, fiz o q tu sugeriu, contudo apareceu um erro que não faço idéia de como corrigir. Operator not applicable to this operand type


Vai ser nessa parte:

If (udmdados.tbdadosfunc.State = dsInsert) and 
            not udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[]) 


Coloca parenteses em cada uma das expressoes, assim:

If ((udmdados.tbdadosfunc.State = dsInsert) and 
            not (udmdados.tbdadosfunccons.locate(´Codfunc´,dbedit1.Text,[])) )



Responder

Gostei + 0

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

Aceitar