起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: jakek

【结】权限管理问题

[复制链接]
 楼主| 发表于 2010-9-14 17:35:38 | 显示全部楼层
管理权限的设置如下图。
现在的现象就是任务中心的组织机构过滤器按业务管理权限过滤了。请问是否有解决方法。

c.jpg

29.28 KB, 下载次数: 200

回复 支持 反对

使用道具 举报

发表于 2010-9-15 14:48:06 | 显示全部楼层
目前好像只有代码来做这样的事情了,就是搞一个参数,然后在“业务模型\协同平台\任务\任务中心信息”的
procedure TTASKCENTERINFO.TaskRefreshed(Force: Boolean);

这里面自己搞一个服务端过滤SQLFilter,把条件传进去,例如 任务类型 这个字段的值等于“工作记录”(FTYPENAME = '工作记录' )这样来做,
当然楼主应该把等号后面的值用参数来做,根据登陆的岗位或者人员来觉得这个值为多少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 09:38:05 | 显示全部楼层
不是在窗体的onCreate方法中写吗?TTASKCENTERINFO.TaskRefreshed(Force: Boolean)这个方法是什么时候执行的,有什么作用的呢?
回复 支持 反对

使用道具 举报

发表于 2010-9-16 10:17:48 | 显示全部楼层
不是,onCreate 的时候有些资源还没有准备好,且后面又变动过,楼主可以抽空研究一下代码

TaskRefreshed 从取名就能看出基本上是干啥用的,呵呵,这是任务刷新

另外,在回复12楼前,我在3088上已经测试过了,是ok的,不过再跟你确认一下,你是要实行在任务中心中显示 任务类型 符合某些 条件的任务吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 10:58:03 | 显示全部楼层
简单来说,我是想在最后一步对组织机构过滤器加参数。就是找地方加上上面的代码。
with (btbOrgFilter.ToolBarModule as TOrgFilterToolBar) do
  begin
    BizKinds := [''];  {bizkinds为''。表示按组织机构管理权限过滤,如果有内容则表示按对应内容的业务管理权限过滤}
  end;
  Inherited;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 11:10:59 | 显示全部楼层
我是指在表单oncreate的时候做
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 13:25:45 | 显示全部楼层
问题已经解决,请结贴。
解决方法如下,
修改 业务模型\协同系统\任务\任务中心资源 中的 function TFilterBuilder.GetSubordinationURLs: TStringList; 的代码
修改为
function TFilterBuilder.GetSubordinationURLs: TStringList;
begin
  if FSubordinationURLs = nil then
  begin
    FSubordinationURLs := TStringList.Create;
    //TContextUtils.GetSubordinationURLs(FContext, FSubordinationURLs);
    PUBFUNCTIONLIB.TOrgUtils.GetSubordinationURLs(FContext, FSubordinationURLs, ['']);  
  end;
  Result := FSubordinationURLs;
end;


与修改 业务模型\协同系统\任务\任务中心资源\事情常用过滤 中的  function TCIRCSCOMMONFILTER.GetSubordinationURLs: TStringList; 的代码。
修改为
function TCIRCSCOMMONFILTER.GetSubordinationURLs: TStringList;
begin
  if FSubordinationURLs = nil then
  begin
    FSubordinationURLs := TStringList.Create;
    //TContextUtils.GetSubordinationURLs(Self.Context, FSubordinationURLs);
    PUBFUNCTIONLIB.TOrgUtils.GetSubordinationURLs(Self.Context, FSubordinationURLs, ['']);  
  end;
  Result := FSubordinationURLs;
end;
----------------------------------------------------------------------------------------
说明
这里函数GetSubordinationURLs是用于获取管理权限用于过滤管理范围的,原来平台的函数GetSubordinationURLs不支持业务管理权限,
    所以要用PUBFUNCTIONLIB(公共函数库,路径为业务模型\业务系统\公共New\公共资源\公共函数库)中的GetSubordinationURLs代替,此函数第三个参数为bizKinds。bizKinds就是用于定义权限用的一个字符串数据集,‘’表示组织机构管理权限,‘XXX’表示业务管理权限为XXX的权限。
    要在任务中心资源与事情常用过滤中改GetSubordinationURLs的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 13:27:14 | 显示全部楼层
记得对 任务中心资源 引入 公共函数库。
回复 支持 反对

使用道具 举报

发表于 2010-9-16 15:26:01 | 显示全部楼层
谢谢共享,结
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 02:58 , Processed in 0.044377 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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