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

1. 问题描述


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

  • 场景一:我们需要在不同的数据源进行筛选取数,例如:在一张模板下定义了两个不同的数据集 ds1 和 ds2,分别是从 Oracle 和 SQL Server 中取数,而我们需要利用一个参数 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. 版本更新说明编辑

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

其中 8.0 和 9.0 的数据集的合并兼容,但是条件选择不兼容,如果用 9.0 设计器打开 8.0的关联数据集报表条件选择需要重新设置 。