按用户分配账套合并数据
【应用场景】
有多个表结构一致的数据库。例如:A库、B库,他们之间除了数据库命名的区别之外,库内的数据表及表结构、视图等完全一致。
基于上述特点,有时客户会要求能一张报表【实时】查询展示多个库的结果合并拼接显示。例如下图:
以上需求场景就需要使用到FASTBI的功能:数据库循环数据表和用户属性功能。
【实现步骤】
1.创建用户属性
用户属性界面创建一个用户属性,如下图:

2.给相关用户赋予属性值
用户名yh01可以看到数据库范围:AIS20121019142414和AIS20181024115131 ,则添加上一步创建的属性,然后给赋予值:AIS20121019142414,AIS20181024115131;
用户名yh02可以看到数据库范围:AIS20181024115131和AIS20141108144739,则添加上一步创建的属性,然后给赋予值:AIS20181024115131,AIS20141108144739;

3.创建一个参数
在参数管理模块,创建一个数据库查询范围的参数,配置如下图。

4.建立数据库连接
在数据源管理模块,创建一个数据库连接,连接测试成功后,点击【高级】。

在【高级设置】界面,选择【系统参数值】后,选择上一步创建的参数。之后点击确认,保存数据库连接。

5.创建一个数据库数据表
在数据表管理模块,创建一个数据库数据表模块,配置如下图。
注意:要开启【循环取数】。
---//下图为金蝶的软件示例
select *
from
(
select top 10 DB_NAME() as 数据库名, fyear as 年度,fperiod as 期间,FAccountID as 科目ID
from dbo.t_balance
group by fyear,fperiod,FAccountID
) as tt
where 1=1
and 数据库名 in ($(数据库范围))

6.做一张报表
在BI分析模块,创建一张报表,配置如下图。
关键点:
1.开启参数面板,参数的关联数据表,选择【用户属性表】,选择【数据库范围】。

7.查看效果
用户yh01可以看到权限范围内的2个账套数据。
