unit uBizDetallesFacturaCliente; interface uses uDAInterfaces, uDADataTable, schFacturasClienteClient_Intf; const BIZ_CLIENT_DETALLES_FACTURA_CLIENTE = 'Client.DetallesFactura.Cliente'; type IBizDetallesFacturaCliente = interface(IFacturasCliente_Detalles) ['{6C1BDF6E-242E-4921-819F-096278C3331C}'] end; TBizDetallesFacturaCliente = class(TFacturasCliente_DetallesDataTableRules, IBizDetallesFacturaCliente) private ContIdAux: Integer; protected procedure OnNewRecord(Sender: TDADataTable); override; procedure BeforeInsert(Sender: TDADataTable); override; public constructor Create(aDataTable: TDADataTable); override; end; implementation uses DB, SysUtils, Dialogs; { TBizDetallesFacturaCliente } procedure TBizDetallesFacturaCliente.BeforeInsert(Sender: TDADataTable); var AMasterTable : TDADataTable; begin ShowMessage('BeforeInsert'); inherited; AMasterTable := DataTable.GetMasterDataTable; if not Assigned(AMasterTable) then showmessage('No estoy asignao') else showmessage('estoy asignao'); if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then begin AMasterTable.Post; showmessage('Hago post'); end; end; constructor TBizDetallesFacturaCliente.Create(aDataTable: TDADataTable); begin ShowMessage('Create Biz'); inherited Create(aDataTable); // ContIdAux := -1; end; procedure TBizDetallesFacturaCliente.OnNewRecord(Sender: TDADataTable); begin ShowMessage('OnNewRecord'); inherited; // ID := ContIdAux; // -1, -2, -3... // Dec(ContIdAux); end; initialization RegisterDataTableRules(BIZ_CLIENT_DETALLES_FACTURA_CLIENTE, TBizDetallesFacturaCliente); end.