动态数据源,依条件查看数据,动态查看数据,数据的动态查看,多表依条件选择,数据集关联,动态连接数据库表,动态切换数据库表,关联数据集。
1. 问题描述
同一张报表,希望不同的人登录查看,报表使用的数据库连接不一样,两个数据库中的表结构相同,但数据不同。如总部用户登录,报表使用数据库A的数据,分部用户登录,报表使用数据库B的数据。
2. 解决方案
每个数据库表分别定义一个数据集,然后在单元格中使用if($fr_authority=='boss',ds1.select(某个字段),ds2.select(某个字段))来实现。
每个数据库表分别定义一个数据集,使用关联数据集-依条件选择,将不同数据库的数据集进行合并,报表中不需要写复杂的公式,直接使用合并后的数据集,且可以依条件选择,根据不同角色选择数据集。
下面介绍详细用法。
3. 实现步骤
3.1 定义数据集
假设报表的数据可能来自两个数据库A、B,分别定义数据集ds1、ds2:
3.2 定义关联数据集
点击报表>模板数据集,点击模板数据集窗口的左上角的
按钮,选择关联数据集,然后点击依条件选择,如下图所示设置: 注:条件公式的参数是自动获取的,不需要手动添加,并且不能修改参数名只能修改参数值。
可以点击
按钮,对条件显示的数据集进行删除。 3.3 使用关联数据集制作报表
此时,我们直接使用关联数据集Multi1制作报表模板即可,不需要再写复杂的公式,制作报表的时候也不需要再担心数据库问题:
可以想象,若登录用户的角色为boss的话,关联数据集Multi1用数据库A的数据,否则用数据库B的数据。
注:该例直接以角色参数讲解,若为其他参数,使用过程相同。
返回顶部