Web报表多个数据集之间的相互关联

我们在设计报表的时候,遇到要使用多个数据集的情况是再平常不过的。因此,随之而来的一个问题就是:如何对多个数据集进行相互关联?即:在一个数据集中使用另外数据集的查询结果。这在一些常见的报表工具中是很难处理的。

通过集智数据平台内的报表系统能轻松处理以上问题,实现一个报表内多数据集间的互动。
以下内容将通过一个比较简单的例子来展示集智数据平台报表系统实现上述应用,以下是详细步骤:
(本文的例子是基于报表系统内置的demo数据源,请连接后做如下操作)
第一步,我们在新建的报表文件中定义数据集ds1,SQL语句如下:
SELECT 订单.订单ID,订单.客户ID,订单.订购日期,订单.货主名称,订单.运货商,订单.运货费 FROM 订单
第二步,定义数据集ds2、ds3,SQL语句如下:
ds2:SELECT 订单明细.订单ID,订单明细.单价,订单明细.折扣 FROM 订单明细 WHERE 订单ID>?
(注:其中”?”代表sql语句的参数)
ds3: SELECT 产品.产品名称,产品.产品ID FROM 产品
第三步(设置关联引用),在ds2的”参数”标签下增加一个参数(第二步中的sql语句中有几个问号,此处就要增加几个参数),写入表达式:ds1.select(订单ID,,str(订购日期)==”1997-05-02 00:00:00.0″),结果类型默认,如图所示:

第四步,设置单元格表达式,
B3: =ds2.select1(订单ID)
C3:=ds2.产品ID
设置显示值表达式为:ds3.select1(产品名称,产品ID==value())
D3: =ds2.单价
设置显示格式为:¥#0.00
E3:=ds2.数量
F2: =ds2.折扣
设置显示格式为:#0.00
具体页面格式如图所示:

第五步,发布报表后预览,效果如图所示,

本文只是一个简单需求的实现过程,来说明在集智数据平台报表系统数据集中引用其他数据集的方法,即在该数据集的参数表达式中写入另外一个数据集表达式,取得相关字段即可。以后再遇到类似的数据集间的引用就可以用这种方法解决了。

更多了解各种复杂问题的处理,可以参考:强大的报表计算功能,灵活处理各种复杂格式和计算企业收集数据、查询、报表、分析的一体化平台