起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 426|回复: 4

代码取当前操作者**

[复制链接]
发表于 2008-3-5 10:59:05 | 显示全部楼层 |阅读模式
请问在代码中获取当前操作者姓名,要使用什么语句,即达到在数据字典中使用OperatorName()的效果
回复

使用道具 举报

发表于 2008-3-5 11:14:15 | 显示全部楼层
如何获取当前操作员相关信息

在系统中获取当前操作员信息有两种方式:(第二种方法只适用于X3的版本,COM+不适用)
1、通过当前环境来获取,要求当前环境链中必须要有人员信息
var
lContextCurrent: Business.Model.TContextCurrent;
begin
  lContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
  try
    cPersonID := lContextCurrent.Operator.ID;           //当前操作者ID
    cGW       := lContextCurrent.PositionMember.ID;  //当前操作者岗位ID
    cDeptID   := lContextCurrent.Dept.ID;               //当前操作者部门ID
  finally
    lContextCurrent.Free;

      以上方法在系统中很多地方都用到,例如:表达式编辑器中用来作表达式参数的组织机构函数等,都是通过环境来取人员相关信息的。

2、使用系统函数
   在“ 业务模型\系统空间\系统运行库\系统核心库”中
   TSystemCore.Operator
      在主界面中需要获取用户信息时,由于还没有环境信息,所以必须使用此种方法。
  TSystemCore.Operator.Positions[0].PersonMember.ID  //当前操作者ID
    TSystemCore.Operator.Positions[0].PositionMember.ID  //当前操作者岗位ID
    TSystemCore.Operator.Positions[0].PositionMember.Parent.ID  //当前操作者部门ID
  TSystemCore.Operator.Positions[0].PositionMember.Parent.Parent.ID //当前操作者机构ID
回复 支持 反对

使用道具 举报

发表于 2008-3-5 11:15:55 | 显示全部楼层
lContext := TContextCurrent.Create(Context);
personID := lContext.Operator.id;

或者你用
variant.vartostr(SystemUtils.TContextUtils.GetParam(Context,'参数组的url', '参数id').value)
调用出你数据字典中写当前操作者的参数值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-5 11:31:50 | 显示全部楼层
在项目中引用了系统核心库-SystemCore,但在编译 TSystemCore.Operator.Positions[0].PersonMember.ID  时, 提示无法识别TSystemCore,   请问该如何引用
回复 支持 反对

使用道具 举报

发表于 2008-3-5 11:53:16 | 显示全部楼层
点击项目管理的对应对象,右键点击配置项目属性-引入
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 23:12 , Processed in 0.038189 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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