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

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

[视图-数据&查询] 视图列表过滤出自己申请和审批过的数据,总经理看到全部(列表 视图 过滤 角色 )

[复制链接]
karrman 发表于 2016-3-7 13:49:36 | 显示全部楼层 |阅读模式
A:单据,希望是发起人和审批人是可以看到的,另外想让总经理也能看到所有。权限如何设置?
Q:如果是过滤出发起人和审批的数据,则在视图-设计-系统筛选条件,则可以简单的配置,如果需要加上角色的控制,则需要用sql模式,参考如下
  1. /*过滤出自己提交申请或者自己审批过的单据*/
  2. //获取查询条件的值
  3. var s_appno=getItemValueAsString("s_appno");
  4. var s_applicant=getItemValueAsString("s_applicant");
  5. var s_AccruedMonth=getItemValueAsString("s_AccruedMonth");
  6. var s_appdate=getItemValueAsDate("s_appdate");
  7. var s_DataModified=getItemValueAsString("s_DataModified");
  8. var s_ReverseOrNot=getItemValueAsString("s_ReverseOrNot");
  9. println("s_appno=================="+s_appno);
  10. var sql="SELECT * FROM tlk_OtherExpense_Accrual_Header ";
  11. var userid =getWebUser().getId();
  12. var vuser=getUserById(userid);
  13. var roles=vuser.getRoles();
  14. var name="";
  15. //获取当前登录用户所有角色
  16. if(roles !=null){
  17.   for(var iter = roles.iterator();iter.hasNext();){
  18.        var roler = iter.next();
  19.         name+=roler.getName();
  20. }}
  21. //如果当前用户的角色包括总经理或者总监,则看到所有信息
  22. if(name.indexOf("总经理")>=0||name.indexOf("总监")>=0){
  23.     sql+=" where 1=1";
  24.         }else{
  25.                  sql+=" where author='"+userid+"'  or id in(select doc.id from  T_DOCUMENT  doc,T_FLOWSTATERT fs,T_ACTORRT actor  where  doc.id =fs.docid and fs.id =actor.flowstatert_id and doc.issubdoc is null and doc.parent is null and doc.state is not null and doc.statelabel is not null   and actor.actorid ='";
  26.                 sql += userid;
  27.                 sql += "' union select doc.id from  T_DOCUMENT  doc,T_ACTORHIS ahis,T_RELATIONHIS rhis where doc.id=rhis.docid and rhis.id = ahis.nodehis_id  and doc.issubdoc is null and doc.parent is null and doc.state is not null and doc.statelabel is not null  and ahis.actorid='";
  28.                 sql += userid ;
  29.                 sql +="')";

  30.                 }
  31. //根据查询条件进行过滤
  32.                 if(s_appno!=null&&s_appno.trim().length()>0){
  33.                         sql+=" and item_appno like '%"+s_appno+"%'";
  34.                 }
  35.                 if(s_applicant!=null&&s_applicant.trim().length()>0){
  36.                         sql+=" and cast(item_applicant as nvarchar(50)) = '"+s_applicant+"'";
  37.                 }
  38.                 if(s_AccruedMonth!=null&&s_AccruedMonth.trim().length()>0){
  39.                         sql+=" and item_AccruedMonth ='"+s_AccruedMonth+"'";
  40.                 }
  41.                 if(s_appdate!=null&&s_appdate!=""){
  42.                         sql+=" and item_appdate >= '"+s_appdate+"'";
  43.                 }
  44.                 if(s_DataModified!=null&&s_DataModified.trim().length()>0){
  45.                         sql+=" and item_DataModified='"+s_DataModified+"'";
  46.                 }
  47.                 if(s_ReverseOrNot!=null&&s_ReverseOrNot.trim().length()>0){
  48.                         sql+=" and item_ReverseOrNot = '"+s_ReverseOrNot+"'";
  49.                 }

  50.        
  51. println("sql==========================="+sql);
  52. sql;
复制代码

本版积分规则

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

GMT+8, 2026-8-12 07:26

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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