天天看点

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

这2类数据源,表结构是一样的,用途不一样:

1 设计时数据源,用于研发内部、报表小组进行配置、测试报表用。

2 运行时数据源,用于系统割接后在局方现场运行报表系统,如修改链接数据库的字符串。

从上面2点可看出,设计时数据源的运行比较广:配置报表、测试、运行报表。而运行时数据库切换数据库链接字符串即可无缝实现数据源在用户现场部署,相对比较容易。

下面用NWind_CHS.mdb数据源进行实战(AR9安装后,自带的数据源‪C:\Users\rogerwang\Documents\ComponentOne Samples\ActiveReports 9\Data\NWIND.mdb)。

通过“视图--其他窗口--报表资源管理器 V9”,然后基于上讲的RdlReport1.rdlx文件,双击rdlx文件。

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

右键,添加数据源

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

在新创建的数据源DataSource1,右键添加数据集。

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

在弹出的添加数据集中,有2种办法添加数据。

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

方法一: 直接写SQL。 这种方式适合程序员、SQL比较强的人, 效率高。

方法二: 通过AR9新提供的VQD进行(可视化查询设计器)。这种方法适合产品经理、需求分析师等对技术不细究的人,灵活。

这里重点说一下方法二:VQD。

可视化查询设计器(VQD)包含以下关键特性:

过滤数据

使用自定义表达式

从数据库选择字段

分组和合计函数

使用内连接,左外连接和右外连接

设置已选字段和数据表的别名

数据排序和更多特性

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

生成的SQL语句:

select Products.*, Categories.* from Products inner join Categories on Products.CategoryID = Categories.CategoryID
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

如分别拖动Description、ProductID到报表,预览结果:

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

至此,完成了运行时数据源的添加,AR提供的配置数据源功能,非常灵活和方便,可有效的提高报表开发效率。

我们在设计时配置的数据源,如果要迁移到用户现场,则需要可以动态修改数据源以适配用户的数据源环境。

可通过代码实现数据源切换(备注:数据库表结构是一模一样的)

在运行时通过 DataSource 属性设置数据源

在运行时通过 LocateDataSource 事件加载数据源。

最后,顺便说一下:ActiveReport 可以和多种数据源交互,包括OLEDB, SQL, XML,Oracle、Sybase、Informix、SQL Server等。

参考的官方博客:

<a target="_blank" href="http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_DesignTime.aspx">ActiveReports报表数据源:设计时数据源</a>

<a target="_blank" href="http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_RunTime.aspx">ActiveReports报表数据源:运行时数据源</a>

<a target="_blank" href="http://blog.gcpowertools.com.cn/post/2013/03/03/%E3%80%90ActiveReports%E3%80%91%E4%BD%BF%E7%94%A8REST-Web-Service%E6%95%B0%E6%8D%AE.aspx">【ActiveReports】使用REST Web Service数据</a>

<a target="_blank" href="http://blog.gcpowertools.com.cn/post/2012/11/15/AR-7-%E7%BB%91%E5%AE%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E6%96%B9%E5%BC%8F.aspx">AR 7 绑定数据源方式</a>

<a target="_blank" href="http://blog.gcpowertools.com.cn/post/2012/11/15/%E7%BB%91%E5%AE%9AOracle-Database-%E5%88%B0-ActiveReport-.aspx">绑定Oracle Database 到 ActiveReport</a>