1. 问题描述

情形一:一张模板定义了两个数据集ds1ds2,分别是从oraclesqlserver中取数,想通过参数控制报表数据是从ds1取的还是ds2取的;

情形二:有一张模板,里面的样式都是一样的,但是数据都是取自最终客户各个子公司自身的数据库,要求各子公司访问的是各子公司自己的数据;

情形三:数据集ds1ds2来自不同的数据源,结构相同,需要将量表中的数据合并起来。

以上情形都可以使用关联数据集来实现,下面我们就以情形一为例说明关联数据集的使用方法。

2. 示例

2.1 定义数据集

定义数据集ds1ds2,分别来自数据库oraclesqlserver

2.2 使用关联数据集进行合并

在数据集面板中新建>关联数据集

此时将会列出该报表所有可用的报表数据集、服务器数据集和存储过程,勾选需要的数据集,如这里的ds1ds2

并且添加条件,如ds1对应的条件是$db="oracle",即当参数dboracle的时候就用ds1

同样可以给ds2添加条件$db="sqlserver",当参数dbsqlserver的时候就用ds2

注:同一时间有多个数据集满足条件时,最终的结果就是所有满足条件的数据集合并后的结果,合并规则如下:

如果几个字段名不完全相同的数据集进行合并时,从第一个数据集自上而下合并,相同的字段的内容匹配到同一个字段中,出现不同字段名的,新增字段名,合并前没有此字段的数据集,合并后字段值用空值代替,如下图:

3. 版本更新说明

该关联数据集定义界面为7.0.1版本,7.0版本的关联数据集分为合并及依条件选择。

其中数据集的合并兼容,而依条件选择不兼容,需要重新定义。