天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3571|回复: 14

[已解决] 关于获取部门代码的问题

 关闭 [复制链接]
白沙烟草 发表于 2014-5-29 14:41:03 | 显示全部楼层 |阅读模式
本帖最后由 Jarod 于 2014-6-6 19:23 编辑

123.jpg
如上图示,我做了一个部门选择框,默认取当前用户所属部门名称。但我还同时需要取到当前用户所属部门的部门代码。我参考了:http://www.teemlink.com/bbs/view ... F%C3%C5%B1%E0%C2%EB,将这段代码放在了部门代码文本框-属性-值-脚本处,但是在预览时报了异常错误。
我想问的是,我这样处理是不是哪里不对?
nice 发表于 2014-5-29 14:55:07 | 显示全部楼层
本帖最后由 nice 于 2014-5-29 15:00 编辑

上面那个帖子里面没有获取部门id.
var deptid=getWebUser().getDefaultDepartment();
 楼主| 白沙烟草 发表于 2014-5-29 16:12:36 | 显示全部楼层
非常感谢,问题解决。
nice 发表于 2014-5-29 16:20:08 | 显示全部楼层
谢谢回帖,结贴
 楼主| 白沙烟草 发表于 2014-6-4 15:15:22 | 显示全部楼层
本帖最后由 白沙烟草 于 2014-6-4 15:45 编辑

这个问题没有最终解决,还需要修改。
这个部门名称会随着流程所在节点的用户部门的变化而发生变化。打个比方,新建流程的人部门是信息中心,但走到人力资源部审批时,这个部门就变成了人力资源部,这显然不对。于是我想通过当前用户的角色来控制这个部门的显示,在部门选择框的值脚本上写了如下代码:
var roles = getWebUser().getRoles();
var rtn="";
var valu = "";
for(var it = roles.iterator();roles!=null && it.hasNext();){
   var role = it.next();
   rtn+=role.getName();
}
if (rtn.indexOf("部门培训管理员")>-1)
            {               
                var user = getWebUser();
                var depts = user.getDepartments();
                for (var iter = depts.iterator(); iter.hasNext();) {
                var dept = iter.next();
                valu = dept.getName();
                }
valu;
            }



但是以上代码却没有起作用,流程流转到人力资源部审批人环节时,部门名称变为人力资源部。请问,我的代码哪里有问题?
 楼主| 白沙烟草 发表于 2014-6-5 09:26:52 | 显示全部楼层
123.jpg
上图为我对部门选择框的基本属性设置,昨天根据群里一位朋友提示,在值脚本里修改代码如下:
var name = getItemValue("dept_name");
if (name==null ||name.trim().length()<=0)
            {               
                var user = getWebUser();
                var depts = user.getDepartments();
                for (var iter = depts.iterator(); iter.hasNext();) {
                var dept = iter.next();
                name = dept.getName();
                }
            }
name;

但是很奇怪,还是没有起作用,部门名称依然会随着用户部门的变化而变化。
伊示雅 发表于 2014-6-5 09:50:46 | 显示全部楼层
可改为如下:

  1. var name = getItemValue("dept_name");
  2. if (name==null ||name.trim().length()<=0)
  3.             {               
  4.                 var user = getCurrentDocument().getAuthor();
  5.                 var depts = user.getDepartments();
  6.                 for (var iter = depts.iterator(); iter.hasNext();) {
  7.                 var dept = iter.next();
  8.                 name = dept.getName();
  9.                 }
  10.             }
  11. name;
复制代码
 楼主| 白沙烟草 发表于 2014-6-5 10:01:51 | 显示全部楼层
伊示雅,非常感谢你,我试了下,还是老样子。但是还是非常感谢了!!
 楼主| 白沙烟草 发表于 2014-6-5 10:04:36 | 显示全部楼层
伊示雅,非常感谢你,我试了下,还是老样子。但是还是非常感谢了!!
伊示雅 发表于 2014-6-5 10:12:31 | 显示全部楼层
突然看到,我觉得你没必要设置默认值。

这些应该直接在值脚本里设置才是。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 15:25

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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