A:单据,希望是发起人和审批人是可以看到的,另外想让总经理也能看到所有。权限如何设置?
Q:如果是过滤出发起人和审批的数据,则在视图-设计-系统筛选条件,则可以简单的配置,如果需要加上角色的控制,则需要用sql模式,参考如下
- /*过滤出自己提交申请或者自己审批过的单据*/
- //获取查询条件的值
- var s_appno=getItemValueAsString("s_appno");
- var s_applicant=getItemValueAsString("s_applicant");
- var s_AccruedMonth=getItemValueAsString("s_AccruedMonth");
- var s_appdate=getItemValueAsDate("s_appdate");
- var s_DataModified=getItemValueAsString("s_DataModified");
- var s_ReverseOrNot=getItemValueAsString("s_ReverseOrNot");
- println("s_appno=================="+s_appno);
- var sql="SELECT * FROM tlk_OtherExpense_Accrual_Header ";
- var userid =getWebUser().getId();
- var vuser=getUserById(userid);
- var roles=vuser.getRoles();
- var name="";
- //获取当前登录用户所有角色
- if(roles !=null){
- for(var iter = roles.iterator();iter.hasNext();){
- var roler = iter.next();
- name+=roler.getName();
- }}
- //如果当前用户的角色包括总经理或者总监,则看到所有信息
- if(name.indexOf("总经理")>=0||name.indexOf("总监")>=0){
- sql+=" where 1=1";
- }else{
- 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 ='";
- sql += userid;
- 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='";
- sql += userid ;
- sql +="')";
- }
- //根据查询条件进行过滤
- if(s_appno!=null&&s_appno.trim().length()>0){
- sql+=" and item_appno like '%"+s_appno+"%'";
- }
- if(s_applicant!=null&&s_applicant.trim().length()>0){
- sql+=" and cast(item_applicant as nvarchar(50)) = '"+s_applicant+"'";
- }
- if(s_AccruedMonth!=null&&s_AccruedMonth.trim().length()>0){
- sql+=" and item_AccruedMonth ='"+s_AccruedMonth+"'";
- }
- if(s_appdate!=null&&s_appdate!=""){
- sql+=" and item_appdate >= '"+s_appdate+"'";
- }
- if(s_DataModified!=null&&s_DataModified.trim().length()>0){
- sql+=" and item_DataModified='"+s_DataModified+"'";
- }
- if(s_ReverseOrNot!=null&&s_ReverseOrNot.trim().length()>0){
- sql+=" and item_ReverseOrNot = '"+s_ReverseOrNot+"'";
- }
-
- println("sql==========================="+sql);
- sql;
复制代码 |