建模如何设置当前员工查看当前数据,某个员工查看所有
modedatacreater =$userid$ or $userid$ =1
一、建模查询页传参过滤数据
场景:建模查询页,通过URL增加参数来实现数据过滤。例如我现在开发了一个员工账号的列表。通过传入UserId来实现数据的过滤。最后添加在员工档案页签上。(建模过程忽略,直接附上数据过滤的方式)
打开建模的查询列表>>>>增加条件
然后在查询的预览页增加:/spa/cube/index.html#/main/cube/search?customid=162&employee=123
二、建模查询页传参过滤数据(优化版)
上次的设置方式会存在一个情况,如果不添加&employee=123会加载空白。原因很简单,因为执行的sql无数据。那如何实现,不添加&employee=123也能按页面的筛选条件过滤呢?
('PARM(employee)'='' AND 1=1)
OR
('PARM(employee)'!='' AND employee = 'PARM(employee)')
三、建模查询页传参过滤数据(权限版)
场景:虚拟表单的建模查询页,某个角色范围内可查看所有数据,角色范围外仅能查看当前登录人信息
(
'PARM(employee)'=''
AND 1=1
)
OR
(
'PARM(employee)'!=''
AND (
---当前员工可查阅
(employee = '$UserId$'
and not EXISTS (
select rm.resourceid from hrmroles r
left join hrmrolemembers rm on r.id=rm.roleid
where r.rolesmark='员工系统用户管理员' and rolelevel=2
and rm.resourceid='$UserId$'
)
)
---某个角色能查阅
or (
EXISTS (
select rm.resourceid from hrmroles r
left join hrmrolemembers rm on r.id=rm.roleid
where r.rolesmark='员工系统用户管理员' and rolelevel=2
and rm.resourceid='$UserId$'
) and employee = case when 'PARM(employee)' = '$UserId$' then '$UserId$' else 'PARM(employee)' end
)
)
)