查看报表后台SQL进行自定义查询方案

【应用场景】
很多客户反馈星空产品标准报表查询不满足客户的需要,需要提供标准报表的查询sql或者某些功能的表关联关系
【案例演示】
查看用户业务对象权限报表是怎么计算用户的权限的
【实现步骤】
<1>打开用户业务对象权限报表,过滤中点击确定,显示当前查询条件下的数据

<2> 同时再键盘上按上 Shift+Ctrl+Alt +M 打开性能监控 然后点击已开启

<3>点击用户业务对象权限报表中的 刷新按钮刷新,等刷新后的数据出来后,点击性能监控中的 查看报告

<4>在打开的性能监控中 选择日志信息,找到 Create View tmpeXXX 这一条数据即是报表的最终的查询语句构建的临时表,里面的select 就是查询语句


去掉里面的 Create View tmpe989091e0d9d11ef81560050568 as 就是最终的查询语句
select t2.*,ROW_NUMBER() OVER(order by FUserName ASC,FOrgNumber ASC,FTopClassName ASC,FSubSystemName ASC,FObjectTypeName ASC,FPermissionItemName ASC,FPermissionStatusName ASC) FIDENTITYID from (
select t1.* from (
select u.FName FUserName,u.FUserID,u.FFORBIDSTATUS
,(CASE u.FFORBIDSTATUS WHEN 'B' THEN '是' ELSE '否' END) FForbidStatusName
,org1.FNumber FOrgNumber,org2.FName FOrgName,uo.FOrgID
,r2.FName FRoleName,p1.FRoleID
,t2.FName FTopClassName
,s2.FName FSubSystemName
,o2.FName FObjectTypeName
,p4.FName FPermissionItemName
,p2.FPERMISSIONSTATUS FPermissionStatusNumber,
(CASE p2.FPERMISSIONSTATUS WHEN '0' THEN '有权' WHEN '2' THEN '禁止' ELSE '无权' END) FPermissionStatusName ,
p3.FSEQ
from t_sec_FuncPermission p1 --授权
inner join t_sec_funcPermissionEntry p2 on p1.FItemID= p2.FItemID --授权明细
inner join T_SEC_PERMISSIONITEM p3 on p2.FPermissionItemID=p3.FItemID --权限项
inner join T_SEC_PERMISSIONITEM_l p4 on p3.FItemID=p4.FItemID and p4.FLOCALEID=2052 --权限项多语言
inner join t_sec_role r1 on p1.FRoleID = r1.FRoleID --角色
left join t_sec_role_l r2 on r2.FRoleID=r1.FRoleID and r2.FLOCALEID=2052 --角色多语言
inner join t_sec_userrolemap uor on uor.FROLEID= p1.FRoleID --用户角色关系
inner join T_SEC_USERORG uo on uo.FENTITYID=uor.FENTITYID --用户组织关系
inner join t_sec_User u on uo.FUserID=u.FUserID --用户
inner join t_org_organizations org1 on org1.FOr
查看报表后台SQL进行自定义查询方案
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



