|

楼主 |
发表于 2009-6-29 14:45:44
|
显示全部楼层
static procedure TSYSTEMCORE.AddSystemLog(AContext: TContext;AType, ADescription: string);
const
cSQL = 'Select * From TSYSLOG ';
var
lQuery: TQuery;
lComputerIP: string;
IsSystemManager: Boolean;
lOperatorPosition: TOperatorPosition;
begin
if not TSettingLib.GetDefaultConfig.RecordSystemLog or not (SysUtils.AnsiPos('SYSTEM', TSettingLib.GetDefaultConfig.SystemLogKinds) > 0) then
Exit;
// lComputerIP := JSSysUtils.GetComputerIPStr(JSSysUtils.GetComputerName);
lOperatorPosition := TContextUtils.FindOperatorPosition(AContext);
if (lOperatorPosition = nil) and not Opr.IsSystemManager(TSystemCore.Operator.ID) then
lOperatorPosition := TSystemCore.Operator.DefaultPosition;
lComputerIP := JSSysUtils.GetLocalIPStr;
lQuery := TQuery.Create(AContext.Owner);
try
lQuery.ConnectionString := cSysDatabaseConnectionString;
lQuery.CommandText := cSQL;
lQuery.Open;
lQuery.Append;
lQuery.FieldByName('FTYPE').AsString := AType;
lQuery.FieldByName('FDESCRIPTION').AsString := ADESCRIPTION;
lQuery.FieldByName('FCOMPUTER').AsString := lComputerIP;
lQuery.FieldByName('FGUID').AsString := jsCommon.CreateGUIDStr;
lQuery.FieldByName('FDATE').AsDateTime := DateUtils.DateOf(SysSrv.SysService.Time);
lQuery.FieldByName('FTIME').AsDateTime := DateUtils.TimeOf(SysSrv.SysService.Time);
if Opr.IsSystemManager(TSystemCore.Operator.ID) then
begin
lQuery.FieldByName('FUSER').AsString := 'System';
lQuery.FieldByName('FUSERCaption').AsString := '系统管理员';
end
else
begin
lQuery.FieldByName('FUSER').AsString := TSystemCore.Operator.ID;
lQuery.FieldByName('FUSERCaption').AsString := TSystemCore.Operator.DisplayName;
lQuery.FieldByName('FSTATION').AsString := lOperatorPosition.PositionID;
lQuery.FieldByName('FDEPT').AsString := lOperatorPosition.DeptID;
lQuery.FieldByName('FURL').AsString := lOperatorPosition.PersonMember.BizURL.URL;
lQuery.FieldByName('FSTATIONCation').AsString := lOperatorPosition.Position.DisplayName;
lQuery.FieldByName('FDEPTCation').AsString := lOperatorPosition.PersonMember.Parent.Parent.DisplayName;
end;
lQuery.Post;
lQuery.ApplyUpdates;
finally
lQuery.Free;
end;
end; |
|