1 动态数据源解决什么问题?

当我们遇到这种场景时,就可以使用动态数据源,我们有多个数据库,里面的某些表结构一样,只是数据不一样。当我们做报表的时候使用这些数据表,希望某些人能看到这个数据库的数据,另外一些人看到另外一个数据库的数据,这时就需要动态切换数据源。

2 实现方案

帆软报表里数据源就是数据连接,不同的数据库就是不同的数据连接。

这里定义某个人再访问某张报表是,如果他的角色是A,就使用数据连接A,如果他的角色是B,就使用数据连接B。

如何确认某个人的角色,这里规定了两种方案,第一种是访问报表时,URL带一个role参数来表示这个人目前的角色。第二种就是跟决策系统里的角色进行挂钩。第一种方案与第二种方案单点区别就是第一种方案不要求当前人登录决策系统,第二种要求需要先登录决策系统,只有登录了才能拿到他的角色。目前两种方案只能选择一种来使用,不能两种同时使用。

3 使用方案

使用安装2.0的插件包,安装好之后以admin身份登录决策系统,再菜单种会看到如下菜单:

点开之后看到:

这里可以对报表进行配置,如图,这里显示了那两种方案,一种是角色的数据来源于URL上的role变量,另外一种是来源于决策系统种的角色。

如上图种配的来源于决策系统的两条数据表示,当访问报表 动态数据源\查假期数据.cpt时,如果当前登录人角色是zhangsan,就使用myfindb这个数据连接,如果当前登录人角色是lisi,就使用finedb这个数据连接。

我有两个数据库都有一张demo_holiday_entity的表。

他们的descn里的内容不一样。

制作的报表:

报表默认使用finedb中的demo_holiday_entity来制作的报表。

这种报表默认会显示finedb中的demo_holiday_entity的数据。

现在再决心系统创建两个用户,他们的角色分别是zhangsan,lisi。

然后分别用gb102101,gb102102用户登录决心系统后查看报表,结果为;

可以看到描述这一列改变了。

下面将配置改成从URL上来传角色。

分别再URL上加参数role=roleA, role=roleB

http://localhost:8075/webroot/decision/view/report?viewlet=%25E5%258A%25A8%25E6%2580%2581%25E6%2595%25B0%25E6%258D%25AE%25E6%25BA%2590%252F%25E6%259F%25A5%25E5%2581%2587%25E6%259C%259F%25E6%2595%25B0%25E6%258D%25AE.cpt&role=roleA

http://localhost:8075/webroot/decision/view/report?viewlet=%25E5%258A%25A8%25E6%2580%2581%25E6%2595%25B0%25E6%258D%25AE%25E6%25BA%2590%252F%25E6%259F%25A5%25E5%2581%2587%25E6%259C%259F%25E6%2595%25B0%25E6%258D%25AE.cpt&role=roleB

结果为:

有需要2.0插件的,加wx aiyowa1021

帆软报表动态数据源插件2.0使用教程相关推荐

  1. 帆软报表多源数据过滤为何不显示数据

    写下来,给自己提个醒喔! 昨天改个别人做的帆软报表,数据源来自于两个数据库:一个oracle一个sqlserver. 在进行数据过滤的时候发现咋都出不来,以为是自己的过滤方法错了,查了下官方文档关于过 ...

  2. 帆软报表插件开发之fine-decision中的ControllerRegisterProvider扩展

    1 用于在帆软报表中编写自己的cocntroller处理 2 接口定义 package com.fr.decision.fun;import com.fr.stable.fun.mark.Mutabl ...

  3. 帆软报表插件开发之fine-decision中的GlobalRequestFilterProvider扩展

    1 之前说了EmbedRequestFilterProvider只能对/decision/*下的url进行过滤,如果是我们自己再帆软报表开发的请求也需要过滤器功能,就可以扩展GlobalRequest ...

  4. FineReport 7.0:帆软报表展示数据时,数据只有一页,但是多出一页空白页。

    帆软报表展示数据时,数据只有一页,但是多出一页空白页. 问题图片: 问题原因:报表中存在空白数据列. 解决方法:选中空白数据列,右键,选中删除列即可. 问题图片: 问题原因:报表中存在空白数据列. 例 ...

  5. 帆软报表导出excel为0字节问题

    1.检查表头是否过长,超出页面宽度范围,如果有,调整页面大小可以覆盖全部表头: 2.重启帆软报表下载

  6. 帆软报表调用python脚本_帆软报表(finereport)实现自动滚屏效果

    例如Demo:IOS平台年度数据报表. 展示内容丰富,一个页面中存在多个图表.内容,超出了浏览器窗口的大小导致内容展示不全. 为了能够预览这个报表的全部内容,可以使用JS滚屏效果来实现. 操作步骤: ...

  7. 解决帆软报表Access数据库连接失败问题

    转载的文章,原链接https://help.finereport.com/finereport9.0/doc-view-2121.html 实测方法二有效,方法二配置完成后需要重启帆软报表软件 1. ...

  8. 帆软报表如何实现开始时间-结束时间-时间间隔(时,日、周、月、年)分段显示数据

    帆软报表如何实现开始时间-结束时间-时间间隔(时,日.周.月.年)分段显示数据 1.效果展示 时间间隔:全部.时.日.周.月.年 按小时 按日 按周 按月 按年 如果这是你想要的,可以继续查看如何实现 ...

  9. 积木报表对比帆软报表有什么区别?

    自从积木报表的开源1.0-beta版本发布,广大开发者备受喜爱,同时还总会问起:"积木报跟帆软有什么区别?" 我们从内心不愿做这样的对比,只想做好 自己的产品,不愿去评判同行产品的 ...

最新文章

  1. vue中如何画饼状图
  2. spring整合struts2时作用域scope解析
  3. ES语法及-IK分词器
  4. 论java中可变参数
  5. android自定义view案例,Android自定义View的实现方法实例详解
  6. 冒泡、选择、插入、希尔、归并、快速排序、排序的稳定性、测试算法时间消耗
  7. springboot+mybatis+druid 多数据源整合
  8. 如何将Excel保存为TXT格式文件
  9. 关于LinkList和LNode*
  10. Windows虚拟内存不足问题的处理
  11. 史上最全无线通信频率分配表
  12. aardio - 时钟例程
  13. IP地址的简明计算方法
  14. 小程序FMP优化实录,附小技巧
  15. Proteus-中英文对照
  16. 微信小程序wepy自定义card控件封装
  17. python random seed,python - 字符串重排:固定seed()下利用random.shuffle()简化代码
  18. 8个iPhone防盗秘籍 为手机和资料安全保驾护航
  19. 虚拟商品帐号交易平台源码_支持个人二维码收款
  20. 《电气工程制图与读图》

热门文章

  1. E-mail Marketing 的特点及其利弊
  2. abaqus黑盒猜测和理论学习: S4R 单元的实现方式 板壳、梁理论
  3. AI全自动车辆外观视觉检测
  4. ESR传感器状态ESR-SENS
  5. 项目数据字典数据导入导出
  6. 【经典蓝牙】蓝牙AVRCP协议分析
  7. 软考复盘:我的一些复习经验分享
  8. Kubernetes--k8s---进阶--AWS托管式容器服务EKS--EKS全面介绍和安装使用
  9. 人工智能导论 王万良pdf_人工智能导论 14520450722 马航空.pdf
  10. 计算机专业毕业论文安卓毕业设计源码基于Uniapp+SSM实现的Android的健康食谱交流app[包运行成功]