起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 204|回复: 6

[请求]系统日志样例的资源,导入不了,我们是2617版本.**

[复制链接]
发表于 2007-3-5 15:01:25 | 显示全部楼层 |阅读模式
以前提供的20051019-SystemLog.brp,不能导入.
回复

使用道具 举报

发表于 2007-3-5 15:34:48 | 显示全部楼层
应该是版本不匹配造成的。brp包的版本太低了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-5 15:48:03 | 显示全部楼层
能否提供一个 支持 2617版的 系统日志 brp包?
回复 支持 反对

使用道具 举报

发表于 2007-3-5 16:39:28 | 显示全部楼层
好像现在还没有这个版本的brp包
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-5 19:33:33 | 显示全部楼层
那你们的建议是什么?我们是新客户,没有老版本的X3.
回复 支持 反对

使用道具 举报

发表于 2007-3-6 13:45:37 | 显示全部楼层
楼主,系统日志的记录包括两部分内容,一是功能操作日志,一是业务数据的操作日志。
一楼的包是用来记录功能操作日志的。包括一个资源集(定义了记录日志的对象)和一个日志表。
对它的调用主要是在系统初始化功能和系统主界面中完成。
1、系统初始化功能
  记录登录系统和等出系统的时间。
  procedure TInit.DoRun;
  var
    ……
  begin
    ……
    SYSTEMLOGLIB.TSystemLog.Instance(self).SaveLog('登录系统');
  end;  

  procedure TInit.DoTerminate;
  begin
    SYSTEMLOGLIB.TSystemLog.Instance(self).SaveLog('登出系统');
    ……
  end;

2、系统主界面
  记录打开和关闭相关功能的信息。
procedure TSTANDARDSTYLEMAINFORM.DoFuncRun(Sender: TObject; AFunc: TFunc; Modal:

Boolean);
var
  I: Integer;
  lFuncContainer: TFuncContainer;
begin
  if AFunc.MainForm = nil then
    Exit;
//记录打开功能的信息
  SYSTEMLOGLIB.TSystemLog.Instance(self).SaveLog(AFunc.Context);

  procedure TSTANDARDSTYLEMAINFORM.DoFuncTerminate;
  在此过程中可以记录推出功能的信息
回复 支持 反对

使用道具 举报

发表于 2007-3-6 13:47:19 | 显示全部楼层
日志资源集代码:

unit SystemLogLib;

interface

uses
  Business.System, Business.Model, CommonComponentLibrary;

type
  TSystemLogLib = class(TBizLibrary)
  private
    {private declarations}
  public
    {public declarations}
  end;

  TSystemLog = class(TSQLDataSet)
  private

  public
    constructor Create(AOwner: TComponent);
    function SaveLog(context: TContext): boolean; overload;
    function SaveLog(strWhat: string): boolean; overload;
    function SaveLog(strWho: string; strWhen: string; strWhat: string): boolean;

overload;
    static function Instance(AOwner: TComponent): TSystemLog;
    static procedure FreeInstanceA;
  end;

var
  FSystemLog: TSystemLog;

const
  C_tblSystemLogSelect = 'select * from TSystemLog ';
  C_tblSystemLogDelete = 'Delete from TSystemLog ';
  C_tblSystemLogInsert = 'Insert into TSystemLog ';

implementation

static function TSystemLog.Instance(AOwner: TComponent): TSystemLog;
begin
  if FSystemLog = nil then
    FSystemLog := TSystemLog.Create(AOwner);
  result := FSystemLog;
end;

static procedure TSystemLog.FreeInstanceA;
begin
  if FSystemLog <> nil then
    FSystemLog.Free;
end;

constructor TSystemLog.Create(AOwner: TComponent);
begin
  inherited;
  Database.URL := 'Biz:\SYSTEM\System.DataBase';
end;

function TSystemLog.SaveLog(context: TContext): boolean;
var
  a: TContextCurrent;
begin
  result := true;
  a  := TContextCurrent.Create(context);
  with a do
  begin
    try
      SQL.Text := C_tblSystemLogInsert + 'values('
                                       + '''' + JSCommon.CreateGUIDStr + ''','
                                       + '''' + PersonMember.DisplayName + ''','
                                       + '''' + SysUtils.DateTimeToStr

(SysUtils.Now) + ''','
                                       + '''' + GetDefaultFunc.DisplayName +

''')';
      Execute;
    except
      result := false;
    end;
  end;
end;

function TSystemLog.SaveLog(strWho: string; strWhen: string; strWhat: string):

boolean;
begin
  result := true;
  try
    SQL.Text := C_tblSystemLogInsert + 'values('
                                     + '''' + JSCommon.CreateGUIDStr + ''','
                                     + '''' + strWho + ''','
                                     + '''' + strWhen + ''','
                                     + '''' + strWhat + ''')';
    Execute;
  except
    result := false;
  end;
end;

function TSystemLog.SaveLog(strWhat: string): boolean;
begin
  result := true;
  try
    SQL.Text := C_tblSystemLogInsert + 'values('
                                     + '''' + JSCommon.CreateGUIDStr + ''','
                                     + '''' +

TCommonComponentLibrary.UserSystem.CurrentPersonMember.DisplayName + ''','
                                     + '''' + SysUtils.DateTimeToStr

(SysUtils.Now) + ''','
                                     + '''' + strWhat + ''')';
    Execute;
  except
    result := false;
  end;
end;

end.


附件是相关的资源,可以使用studio的业务资源管理器拷贝到系统中。

log.rar

337.46 KB, 下载次数: 78

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-26 20:03 , Processed in 0.044110 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表