Auto numerar...

17/09/2004

Amigos estou tentando fazer com que esta rotina funcione mas não sei o que esta dando errado:
procedure TFrmCad_Cliente.BtnovoClick(Sender: TObject);
var
  valor:Integer;
begin
     Dmbasedados.IBTab_Cliente.Last;
     Valor:=DmBasedados.IBTab_ClienteCOD_CLIENTE.Value;
     Dmbasedados.IBTab_ClienteCOD_CLIENTE.Value:=(Valor +1);
     Dmbasedados.IBTab_Cliente.Open;
     Dmbasedados.IBTab_Cliente.Append;
end;


Vejam bem; Neste caso quero que o campo cod_cliente, toda vez que seja acionado ele receba o valor que esta nele somando (+1).
O IbTab_Cliente esta aberto para inserção e outras auterações só que da um erro dizendo que não é possivel fazer que ele não esta em modo de edição e também não se dirreciona para o último registro.
alguém pode me ajudar com isto?
Peninha.


Peninha

Respostas

17/09/2004

Vinicius2k

Colega,

Vc só poderá passar o novo valor ao campo após colocar o DataSet em modo de inserção, no caso, após aplicação do Append..
E vc precisa abrir o DataSet antes de tentar se movimentar pelos registros (.Last) :
procedure TFrmCad_Cliente.BtnovoClick(Sender: TObject);
var
  valor:Integer;
begin
     Dmbasedados.IBTab_Cliente.Open;
     Dmbasedados.IBTab_Cliente.Last;
     Valor:=DmBasedados.IBTab_ClienteCOD_CLIENTE.Value;
     Dmbasedados.IBTab_Cliente.Append;
     Dmbasedados.IBTab_ClienteCOD_CLIENTE.Value:=(Valor +1);
end;


Espero ter ajudado...
T+


Responder Citar

17/09/2004

Peninha

Vinicius2K muito obrigado por ter me ajudado nesta tarefa e também por me mostrar que por muitas vezes o erro é mais banal do que imaginamos.
Obrigado, Peninha.


Responder Citar