Array
(
)

Auto numerar...

Peninha
   - 17 set 2004

Amigos estou tentando fazer com que esta rotina funcione mas não sei o que esta dando errado:#Código

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.


Vinicius2k
   - 17 set 2004

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) :
#Código

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+


Peninha
   - 17 set 2004

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.