unit uBizDireccionesContacto; interface uses uDAInterfaces, uDADataTable, schContactosClient_Intf; const BIZ_CLIENT_DIRECCIONES_CONTACTO = 'Client.DireccionesContacto'; type IBizDireccionesContacto = interface(IDireccionesContacto) ['{CAE362D4-B148-4B54-A426-F178565EA3DE}'] function EsNuevo : Boolean; end; TBizDireccionesContacto = class(TDireccionesContactoDataTableRules, IBizDireccionesContacto) protected procedure BeforeInsert(Sender: TDADataTable); override; public function EsNuevo : Boolean; procedure OnNewRecord(Sender: TDADataTable); override; end; implementation uses Dialogs,uDataTableUtils, DB; { TBizDatosBancarios } procedure TBizDireccionesContacto.BeforeInsert(Sender: TDADataTable); var AMasterTable : TDADataTable; begin inherited; AMasterTable := DataTable.GetMasterDataTable; if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then AMasterTable.Post; end; function TBizDireccionesContacto.EsNuevo: Boolean; begin Result := (ID < 0); end; procedure TBizDireccionesContacto.OnNewRecord(Sender: TDADataTable); begin inherited; // ID := GetRecNo; // -1, -2, -3... end; initialization RegisterDataTableRules(BIZ_CLIENT_DIRECCIONES_CONTACTO, TBizDireccionesContacto); end.