Ver Mensaje Individual
  #4  
Antiguo 14-07-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Reputación: 0
Anyu Va por buen camino
Este es el procedimiento que se ejecuta con el boton de agregar para los detalles, en el boton editar formulario, esta el remi.Edit pero en el boton de nuevo formulario tengo remi.append, entonces en lugar de eso tiene que ser remi.insert verdad?, quizas por eso agrega pero me lanza ese error...


procedure Tf_remision2.AgregarClick(Sender: TObject);
var
idremision: integer;
cantidad: real;
begin
if remi.State=dsInsert then
begin
remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text);
remi.Fields[2].AsDateTime:=feini.Date;
remi.Fields[3].AsDateTime:=fefin.Date;
remi.Fields[4].AsString:=DBMotivo.Text;
remi.Fields[5].AsString:=DBRazon.Text;
remi.Fields[6].AsString:=DBRUC.Text;
remi.Fields[7].AsString:=DBDestino.Text;
remi.Fields[8].AsString:=DBPartida.Text;
remi.Fields[9].AsString:=f_menu.nomusu.Text;
remi.Fields[10].AsDateTime:=now();
remi.Fields[11].AsString:=DBLocal.Text;
remi.Fields[12].AsInteger:=strtoint(DBRemision.Text);
remi.Post;
remi.ApplyUpdates;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Last;
end;
if remi.State=dsEdit then
begin
remi.Fields[1].AsInteger:=strtoint(DBComprobante.Text);
remi.Fields[2].AsDateTime:=feini.Date;
remi.Fields[3].AsDateTime:=fefin.Date;
remi.Fields[4].AsString:=DBMotivo.Text;
remi.Fields[5].AsString:=DBRazon.Text;
remi.Fields[6].AsString:=DBRUC.Text;
remi.Fields[7].AsString:=DBDestino.Text;
remi.Fields[8].AsString:=DBPartida.Text;
remi.Fields[9].AsString:=f_menu.nomusu.Text;
remi.Fields[10].AsDateTime:=now();
remi.Fields[11].AsString:=DBLocal.Text;
remi.Post;
remi.ApplyUpdates;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Locate('id_remision',idremision,[]);
end;
des;

try
cantidad:=strtofloat(Cant.Text);
except
cantidad:=0;
end;

if cantidad <= merca.Fields[3].AsInteger then
begin
detalle.Append;
detalle.Fields[1].AsInteger:=remi.Fields[0].AsInteger;
detalle.Fields[3].AsInteger:=merca.Fields[0].AsInteger;
detalle.Fields[2].AsFloat:=strtofloat(cant.Text);
detalle.Post;
detalle.ApplyUpdates;
idremision:=remi.Fields[0].AsInteger;
f_menu.conex.Commit;
remi.Close;
remi.Open;
remi.Locate('id_remision',idremision,[]);
end
else
begin
showmessage('No se agregaron detalles, no hay cantidad suficiente o se modifico la cabecera');
Cant.SetFocus;
end;
abredetalle;

end;
Responder Con Cita