ActiveReports 12 新特性 (2)—无需ETL处理,即可实现跨数据源分析数据

发布时间:2017/11/20 00:11 发布者:Lenka.Guo

返回博客中心

 

在大型企业中,可能会同时应用多个业务数据系统来存储数据,如CRM 存储客户信息,SCM存储销售订单信息,ERP存储企业订单,资本等信息,如果需要汇总分析多方数据,技术人员需要先将所有数据整合到一个数据库中,这个中间需要处理很多跨平台的数据兼容性及关联性,在数据整合完毕之后,还需要设计布局合理的报表来展示和挖掘整合的业务数据。如此一来发出一份业务分析报告,是非常慢的。如果可以直接根据设计报表,同时展示多个数据源,且能够解决复杂样式,就可以解决大问题了。

特殊样式设置常常会用到控件嵌套,而控件嵌套最大的限制是同时只能设定一个数据集,只能在控件里面嵌套子报表,而嵌套子报表,面临着要设计多个报表文件,不便于管理,而且样式调整不容易,容易错乱。常常需要多个文件调整对比。

ActiveReports 12 支持多数据控件嵌套,将各控件的优点结合,如矩表嵌入表格中,可使得表格具有动态列的效果,如果将图表嵌入表格中,可为表格嵌入可视化的效果。 且在实现数据嵌套过程,每一个数据控件都可以绑定独立的数据集,而且在嵌套过程中,不同数据集既可以保持独立,也可以通过设置DataSetParameters  进行关联。可谓将嵌套功能做到极致。数据控件嵌套+多数据集支持=无限样式。

  1. 支持范围 页面/RDL报表
  2. 可用控件矩表,列表,图表,带状列表,表格,迷你图

 

今天我们就来学习,如何使用ActiveReports 进行控件嵌套,并进行数据关联。

1. 新建RDL/页面报表

image

 

2. 添加数据源并创建数据集

注:这个数据集中间存在关联关系。

image

创建【产品】数据集

select *
from dbo.产品

创建【订单】数据集

select dbo.订单.*, dbo.订单明细.产品ID
from dbo.订单 inner join dbo.订单明细 on dbo.订单.订单ID = dbo.订单明细.订单ID

创建【客户】数据集

select *
from dbo.客户

产品 与订单 :产品ID 关联  订单与客户:客户ID关联

3. 添加表格 Table1,选择【产品】数据集

image

效果图:

image

 

 

4. 添加Table 2,设置数据集【订单】

image

效果图

image

 

5. 添加Table3 选择【客户】数据集

image

 

效果图

image

 

6. 去除 Table3 的表尾行,选中【表格详细数据行】,右键单击,取消选中【表尾】,删除多余列

image

效果图

image

7. 开始嵌套

注:嵌套前最好先预留好,父表格的尺寸。

7.1 将Table3 嵌套到Table2 的表格【详细数据行】中

image

 

7.2  整体调整Table2,将Table2嵌套至 Table1中

image

此时预览,会发现三个表格确实都加载了不同的数据集,但确各不相关。

我们只是刚把嵌套完成,还未设置数据关联。

 

8.设置数据关联

8.1 设置表格的Filters属性

Table1【产品表】 -产品ID--Table2【订单表】-客户ID- Table3【客户表】 

因此我们需要在Table 2 上面添加 Filter属性,设置[产品ID]=[产品ID];

8.1.1 选中Table2,点击【属性对话框】

image

image

 

image

8.1.2 同样设置 Table 3 过滤属性

image

 

预览:

image

 

8.2  使用 DataSetParameter 实现数据关联。

DataSetParameter 和创建过滤器都可以实现数据关联,我们可以根据自己的应用场景来灵活选择任意一种方式。

选中Table2 设置DataSetParameters 属性

image

 

8.2.1 设置数据集 DataSet2

添加参数后,修改查询语句:

select dbo.订单.*, dbo.订单明细.产品ID
from dbo.订单 inner join dbo.订单明细 on dbo.订单.订单ID = dbo.订单明细.订单ID
where 产品ID=@Parameter1

image

 

8.2.2 设置Table3 的DataSetParameters 属性

设置DataSet3 的查询语句

select *
from dbo.客户
where 客户ID=@Parameter1

image

 

控件嵌套在设计复杂报表样式时应用非常广泛,如下图,实现表格与图表控件嵌套

image2017-11-16_19-30-23

 

了解ActiveReports产品更多特性:

/developer/activereports

下载产品体验产品功能:

/download/?pid=16


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网