62 lines
1.3 KiB
ObjectPascal
62 lines
1.3 KiB
ObjectPascal
|
|
unit uBizContactosPersonal;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
uses
|
||
|
|
uDAInterfaces, uDADataTable,
|
||
|
|
schContactosClient_Intf;
|
||
|
|
|
||
|
|
const
|
||
|
|
BIZ_CLIENT_CONTACTO_PERSONAL = 'Client.ContactosPersonal';
|
||
|
|
|
||
|
|
type
|
||
|
|
IBizContactoPersonal = interface (IPersonalContacto)
|
||
|
|
['{9FFEFD2E-1EED-4FA2-80D7-81B1541B122C}']
|
||
|
|
end;
|
||
|
|
|
||
|
|
TBizContactoPersonal = class(TPersonalContactoDataTableRules, IBizContactoPersonal)
|
||
|
|
private
|
||
|
|
ContIdAux: Integer;
|
||
|
|
protected
|
||
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
||
|
|
procedure BeforeInsert(Sender: TDADataTable); override;
|
||
|
|
public
|
||
|
|
constructor Create(aDataTable: TDADataTable); override;
|
||
|
|
end;
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
{ TBizContactoPersonal }
|
||
|
|
|
||
|
|
uses
|
||
|
|
DB;
|
||
|
|
|
||
|
|
procedure TBizContactoPersonal.BeforeInsert(Sender: TDADataTable);
|
||
|
|
var
|
||
|
|
AMasterTable : TDADataTable;
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
AMasterTable := DataTable.GetMasterDataTable;
|
||
|
|
if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then
|
||
|
|
AMasterTable.Post;
|
||
|
|
end;
|
||
|
|
|
||
|
|
constructor TBizContactoPersonal.Create(aDataTable: TDADataTable);
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
ContIdAux := -1;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TBizContactoPersonal.OnNewRecord(Sender: TDADataTable);
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
ID := ContIdAux; // -1, -2, -3...
|
||
|
|
Dec(ContIdAux);
|
||
|
|
end;
|
||
|
|
|
||
|
|
initialization
|
||
|
|
RegisterDataTableRules(BIZ_CLIENT_CONTACTO_PERSONAL, TBizContactoPersonal);
|
||
|
|
|
||
|
|
end.
|
||
|
|
|