视图导入-导入配置用户选择框值脚本¶
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f27ftcc61b7c
脚本说明¶
该脚本用于在视图导入配置中设置用户选择框的值。当进行视图数据导入时,可以通过脚本动态设置用户选择框的默认值或可选值。
常见实现方式¶
方式1:设置当前用户为默认值¶
方式2:设置当前用户的部门¶
(function(){
var currentUser = getWebUser();
var department = currentUser.getDepartment();
if(department != null){
return department.getId();
}
return "";
})();
方式3:根据条件设置用户¶
(function(){
var condition = getParameter("条件参数");
var userId = "";
if(condition != null && condition === "类型1"){
userId = "用户ID1";
}else if(condition != null && condition === "类型2"){
userId = "用户ID2";
}else{
userId = getWebUser().getId(); // 默认当前用户
}
return userId;
})();
方式4:设置角色下的用户列表¶
(function(){
var roleName = "角色名称";
var users = getUsersByRole(roleName);
var userIds = "";
if(users != null && users.size() > 0){
var idList = [];
for(var i = 0; i < users.size(); i++){
idList.push(users.get(i).getId());
}
userIds = idList.join(";");
}
return userIds;
})();
扩展示例¶
示例1:设置当前用户及上级¶
(function(){
var currentUser = getWebUser();
var userId = currentUser.getId();
// 获取上级用户
var superior = currentUser.getSuperior();
var userIds = userId;
if(superior != null){
userIds = userId + ";" + superior.getId();
}
return userIds;
})();
示例2:根据部门设置用户¶
(function(){
var departmentName = getParameter("部门名称");
var userIds = "";
if(departmentName != null && departmentName.trim().length > 0){
var department = getDepartmentByName(departmentName);
if(department != null){
var users = department.getUsers();
if(users != null && users.size() > 0){
var idList = [];
for(var i = 0; i < users.size(); i++){
idList.push(users.get(i).getId());
}
userIds = idList.join(";");
}
}
}else{
// 默认当前用户
userIds = getWebUser().getId();
}
return userIds;
})();
示例3:设置多个角色的用户¶
(function(){
var roleNames = ["角色1", "角色2", "角色3"];
var allUserIds = [];
for(var i = 0; i < roleNames.length; i++){
var users = getUsersByRole(roleNames[i]);
if(users != null && users.size() > 0){
for(var j = 0; j < users.size(); j++){
var userId = users.get(j).getId();
if(allUserIds.indexOf(userId) < 0){
allUserIds.push(userId);
}
}
}
}
return allUserIds.length > 0 ? allUserIds.join(";") : "";
})();
示例4:根据当前文档设置用户¶
(function(){
var doc = getCurrentDocument();
var userIds = "";
if(doc != null){
// 从当前文档获取用户字段值
var docUser = doc.getItemValueAsString("用户字段");
if(docUser != null && docUser.trim().length > 0){
userIds = docUser;
}else{
// 默认当前用户
userIds = getWebUser().getId();
}
}else{
userIds = getWebUser().getId();
}
return userIds;
})();
示例5:设置用户并格式化显示¶
(function(){
var currentUser = getWebUser();
var userId = currentUser.getId();
var userName = currentUser.getName();
// 返回格式:用户ID|用户名称(用于显示)
return userId + "|" + userName;
})();
关键函数说明¶
getWebUser(): 获取当前登录用户对象getWebUser().getId(): 获取当前用户IDgetWebUser().getName(): 获取当前用户姓名getWebUser().getDepartment(): 获取当前用户部门getUsersByRole(roleName): 根据角色获取用户列表getDepartmentByName(name): 根据部门名称获取部门对象department.getUsers(): 获取部门下的用户列表user.getSuperior(): 获取用户的上级
用户选择框值格式¶
单个用户¶
多个用户¶
带显示名称(如果支持)¶
注意事项¶
- ⚠️ 用户ID格式: 多个用户ID用分号(;)分隔
- ⚠️ 用户存在性: 确保返回的用户ID存在且有效
- ⚠️ 空值处理: 如果没有符合条件的用户,返回空字符串
- ⚠️ 权限控制: 确保用户有访问权限
- 视图导入配置中的用户选择框值脚本用于设置默认值或可选值
- 返回的用户ID会被用于导入时的用户字段填充
- 建议根据实际业务需求设置合适的用户
使用场景¶
- 视图导入时设置默认用户
- 根据条件动态设置用户
- 批量导入时设置用户
- 用户权限控制
- 数据关联用户
如需查看完整脚本代码,请访问源文档链接。