如何取$fine_position的数

比如$fine_position的数值是 

{"departments":"XXX有限公司,北京供水所,朝阳营业厅","jobTitle":"台账系统"},

 {"departments":"XXX有限公司,上海供水所,静安营业厅","jobTitle":"工会查看系统"},

 {"departments":"XXX有限公司,珠海供水所,香洲营业厅","jobTitle":"工会查看系统"}

我想取出 jobTitle值为:”工会查看系统“的departments的最后一个值,也就是”静安营业厅”和“香洲营业厅“,求大佬解惑

FineReport Zzzg 发布于 2021-11-4 17:24 (编辑于 2021-11-4 17:39)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
杨朝健Lv5中级互助
发布于2021-11-4 17:36

权限细粒度参数控制-https://help.fanruan.com/finereport/doc-view-865.html

可以用这个公式:

joinarray(maparray(GETUSERDEPARTMENTS(),INDEXOFARRAY(REVERSEARRAY(split(item,",")),1)),"','")

如果多个部门,则返回 静安营业厅','XX营业厅

最佳回答
0
做个好梦Lv6见习互助
发布于2021-11-4 17:30

我做权限都是用$fine_username,也就是登录名写SQL代入到这些职务权限表中取的,你可以试一下

最佳回答
0
luojian0323Lv7资深互助
发布于2022-5-4 14:57

获取用户所在一级部门是:GETUSERDEPARTMENTS(1)

二级部门是:GETUSERDEPARTMENTS(2)

三级部门是:GETUSERDEPARTMENTS(3)

依此类推。

根据部门名称查询 职位 或根据职位名称查询部门信息,可以连接finedb数据库查询

参考下面完整sql:

select a.id,a.username 用户名,b.userid,b.roleid,a.realname 姓名,d.name 部门,f.name 职位名,e.name 角色 from  PUBLIC.fine_user a left join   PUBLIC.fine_user_role_middle b on a.id=b.userid left join  PUBLIC.fine_dep_role c on b.roleid=c.id left join  PUBLIC.fine_post f on c.postid=f.id left join  PUBLIC.fine_department d on c.departmentid=d.id left join  PUBLIC.fine_custom_role e on b.roleid=e.id where f.name='XXX'  order by a.username

以下是finedb中用户表及相关表的关系图:

用户表.png

  • 4关注人数
  • 469浏览人数
  • 最后回答于:2022-5-4 14:57
    请选择关闭问题的原因
    确定 取消
    返回顶部