1. 问题描述
首先,要了解关联数据集,我们就需要了解一下使用关联数据集的场景。
场景一:我们需要在不同的数据源进行筛选取数,例如:在一张模板下定义了两个不同的数据集 ds1 和 ds2,分别是从 Oracle 和 SQL Server 中取数,而我们需要利用一个参数 db 来控制我们是用 ds1 还是 ds2;
场景二:我们需要不同公司访问各自的数据库,例如:有一张模板,里面的样式都是一样的,但是数据都是取自最终客户各个子公司自身的数据库,要求各子公司访问的是各子公司自己的数据;
场景三:我们需要利用来自不同的数据源,形成一个数据集,例如:数据集 ds1、ds2 来自不同的数据源,结构相同,需要将两表中的数据合并起来。
以上场景都可以使用
来实现,而在实际使用中,其实我们做的方法都是一样的。2. 示例编辑
2.1 定义数据集
首先,我们新建两个数据集 ds1 和 ds2,我们利用 FRdemo 数据源进行新建 ds1 和 ds2 查询,ds1 数据集如下图所示:
ds1:select distinct 地区,销售员 from 销量
同理,ds2 数据集如下:
ds2:select distinct 地区,产品 from 销量
2.2 使用关联数据集进行合并
在数据集面板中新建>关联数据集:
此时,我们会看到如下所示对话框:
2.2.1 无参数据集
注:同一时间有多个数据集满足条件时,最终的结果就是所有满足条件的数据集合并后的结果,合并规则如下: 如果几个字段名不完全相同的数据集进行合并时,从第一个数据集自上而下合并,相同的字段的内容匹配到同一个字段中,出现不同字段名的,新增字段名,合并前没有此字段的数据集,合并后字段值用空值代替,如下图:
2.2.2 有参数据集
以下为有参数据集结果:
我们可以利用 db 参数来进行控制关联数据集的结果,上图中,已经自动新建了参数为 dsname 的参数,那么我们预览一下结果:
点击后,弹窗效果如下,此时我们需要输入参数值为 ds1:
根据我们刚刚设置的结果,我们应该得到数据集 ds1 相同的结果,结果如下:
同理,当参数值为 ds2 时,我们得到数据集 ds2 相同的结果。
3. 版本更新说明编辑
该关联数据集定义界面为 10.0 最新版本,10.0 版本的关联数据集分为合并及依条件选择。
其中 8.0 和 9.0 的数据集的合并兼容,但是条件选择不兼容,如果用 9.0 设计器打开 8.0的关联数据集报表条件选择需要重新设置 。