历史版本14 :关联数据集 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:


目录:

1. 问题描述编辑

首先,要了解关联数据集,我们就需要了解一下使用关联数据集的场景。

场景一:我们需要在不同的数据源进行筛选取数,例如:在一张模板下定义了两个不同的数据集ds1和ds2,分别是从oracle和sqlserver中取数,而我们需要利用一个参数db来控制我们是用ds1  还是ds2;
场景二:我们需要不同公司访问各自的数据库,例如:有一张模板,里面的样式都是一样的,但是数据都是取自最终客户各个子公司自身的数据库,要求各子公司访问的是各子公司自己的数据;
场景三:我们需要利用来自不同的数据源,形成一个数据集,例如:数据集ds1、ds2来自不同的数据源,结构相同,需要将两表中的数据合并起来。
以上场景都可以使用关联数据集来实现,而在实际使用中,其实我们做的方法都是一样的。

2. 示例编辑

2.1 定义数据集
首先,我们新建两个数据集ds1和ds2,我们利用FRdemo数据源进行新建ds1和ds2查询,ds1数据集如下图所示:
ds1:select distinct 地区,销售员 from 销量
222

同理,ds2数据集如下:
ds2:select distinct 地区,产品 from 销量
222

2.2 使用关联数据集进行合并
在数据集面板中新建>关联数据集
222

此时,我们会看到如下所示对话框:
222
此时我们需要分析一下自己需要的场景,我们分为无参关联数据集和有参数据集,下面会进行比较。
2.2.1 无参数据集
现在我们开始比较一下,下图为无参关联数据集结果:

注:同一时间有多个数据集满足条件时,最终的结果就是所有满足条件的数据集合并后的结果,合并规则如下: 如果几个字段名不完全相同的数据集进行合并时,从第一个数据集自上而下合并,相同的字段的内容匹配到同一个字段中,出现不同字段名的,新增字段名,合并前没有此字段的数据集,合并后字段值用空值代替,如下图:

222

222

222
 
无参关联数据集会将ds1和ds2的列全部展示,会通过字段相同列“地区”进行关联,得到的结果集为ds1中不存在销售员的字段,那么在关联数据集中的“销售员”字段与ds1相关的即为空,在ds2数据集中不存在“产品”字段,那么在关联数据集中“产品”字段与ds2相关的即为空。

2.2.2 有参数据集
以下为有参数据集结果:
222
我们可以利用db参数来进行控制关联数据集的结果,上图中,已经自动新建了参数为dsname的参数,那么我们预览一下结果:
222

点击后,弹窗效果如下,此时我们需要输入参数值为ds1:

222


根据我们刚刚设置的结果,我们应该得到数据集ds1相同的结果,结果如下:
222

同理,当参数值为ds2时,我们得到数据集ds2相同的结果。

3. 版本更新说明编辑

该关联数据集定义界面为9.0最新版本,9.0版本的关联数据集分为合并及依条件选择。
其中8.0和9.0的数据集的合并兼容,但是条件选择不兼容,如果用9.0设计器打开8.0的关联数据集报表条件选择需要重新设置。