de poderse... se puede, pero si el campo recibo es parte de la llave primaria, como supongo que será, tenes el inconveniente que Delphi será incapaz de localizarlo después de realizada la inserción, pues su valor cambia en la base de datos y no hay forma de recuperarlo. Por ello, quizas es conveniente que utilices la misma lógica, pero desde el evento BeforePost de la tabla, cuando esta se encuentre en modo de inserción. Algo como lo siguiente (donde he inventado el nombre de todas las variables y objetos, que espero se deduzcan sus tipos).
Código:
if tRecibo.State = dsInsert Then
Begin
if tReciboEmpresa.AsString = 'C' then
Begin
spGen_ReciboC.ExecProc;
tReciboRecibo.AsInteger := spGen_ReciboC.ParamByName('id').AsInteger;
end
else Begin
spGen_ReciboA.ExecProc;
tReciboRecibo.AsInteger := spGen_ReciboA.ParamByName('id').AsInteger;
end;
end;
Hasta luego.