ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
2019独角兽企业重金招聘Python工程师标准>>>
在上讲中《ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版》,我们已经结合Visual Studio 2013搭建好了ActiveReports 9的开发环境,并完成了一个Hello World的RDL报表。 在本文,我们通过配置数据源进行报表实战,做过报表开发的报表达人知道,报表中的数据源分设计时数据源和运行时数据源。 如何理解呢?
这2类数据源,表结构是一样的,用途不一样:
1 设计时数据源,用于研发内部、报表小组进行配置、测试报表用。
2 运行时数据源,用于系统割接后在局方现场运行报表系统,如修改链接数据库的字符串。
从上面2点可看出,设计时数据源的运行比较广:配置报表、测试、运行报表。而运行时数据库切换数据库链接字符串即可无缝实现数据源在用户现场部署,相对比较容易。
下面用NWind_CHS.mdb数据源进行实战(AR9安装后,自带的数据源C:\Users\rogerwang\Documents\ComponentOne Samples\ActiveReports 9\Data\NWIND.mdb)。
设计时数据源
通过“视图--其他窗口--报表资源管理器 V9”,然后基于上讲的RdlReport1.rdlx文件,双击rdlx文件。
右键,添加数据源
在新创建的数据源DataSource1,右键添加数据集。
在弹出的添加数据集中,有2种办法添加数据。
方法一: 直接写SQL。 这种方式适合程序员、SQL比较强的人, 效率高。
方法二: 通过AR9新提供的VQD进行(可视化查询设计器)。这种方法适合产品经理、需求分析师等对技术不细究的人,灵活。
这里重点说一下方法二:VQD。
可视化查询设计器(VQD)包含以下关键特性:
过滤数据
使用自定义表达式
从数据库选择字段
分组和合计函数
使用内连接,左外连接和右外连接
设置已选字段和数据表的别名
数据排序和更多特性
生成的SQL语句:
select Products.*, Categories.* from Products inner join Categories on Products.CategoryID = Categories.CategoryID
如分别拖动Description、ProductID到报表,预览结果:
至此,完成了运行时数据源的添加,AR提供的配置数据源功能,非常灵活和方便,可有效的提高报表开发效率。
运行时数据源
我们在设计时配置的数据源,如果要迁移到用户现场,则需要可以动态修改数据源以适配用户的数据源环境。
可通过代码实现数据源切换(备注:数据库表结构是一模一样的)
private void 运行时数据源区域报表ToolStripMenuItem_Click(object sender, EventArgs e){SectionReport_DataSource_RunTime sReport1 = new SectionReport_DataSource_RunTime();sReport1.DataSource = GetDataSource();sReport1.Run();viewer1.Document = sReport1.Document;} private DataTable GetDataSource(){DataTable dt = new DataTable();dt.Columns.Add("产品编号");dt.Columns.Add("产品名称");dt.Columns.Add("单价");dt.Columns.Add("库存量");dt.Rows.Add("A10002", "苹果", 20, 50);dt.Rows.Add("A15681", "香蕉", 20, 50);dt.Rows.Add("A15681", "菠萝", 20, 50); return dt;}
在运行时通过 DataSource 属性设置数据源
private void 运行时数据源页面报表ToolStripMenuItem_Click(object sender, EventArgs e){GrapeCity.ActiveReports.PageReport pReport1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport_DataSource_RunTime.rdlx"));viewer1.LoadDocument(pReport1.Document); } private void Form1_Load(object sender, EventArgs e){viewer1.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(viewer1_LocateDataSource);} void viewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args){ if (args.DataSourceName == "DataSource1"){ if (args.DataSetName == "DataSet1"){args.Data = GetDataSource();}}} private DataTable GetDataSource(){DataTable dt = new DataTable();dt.Columns.Add("产品编号");dt.Columns.Add("产品名称");dt.Columns.Add("单价");dt.Columns.Add("库存量");dt.Rows.Add("A10002", "苹果", 20, 50);dt.Rows.Add("A15681", "香蕉", 20, 50);dt.Rows.Add("A15681", "菠萝", 20, 50); return dt;}
在运行时通过 LocateDataSource 事件加载数据源。
最后,顺便说一下:ActiveReport 可以和多种数据源交互,包括OLEDB, SQL, XML,Oracle、Sybase、Informix、SQL Server等。
参考的官方博客:
ActiveReports报表数据源:设计时数据源
ActiveReports报表数据源:运行时数据源
【ActiveReports】使用REST Web Service数据
AR 7 绑定数据源方式
绑定Oracle Database 到 ActiveReport
----------------------------------------------------------------------------------------------------------
ActiveReports 9实战教程目录:
ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
ActiveReports 9实战教程(3): 图文并茂的报表形式
ActiveReports 9实战教程(4): 交叉汇总与数据处理
ActiveReports 9实战教程(5): 漂亮的报表
ActiveReports 9实战教程(6): 让报表动起来
ActiveReports 9实战教程(7): 报表打印和报表导出
转载于:https://my.oschina.net/powertoolsteam/blog/347064
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)相关推荐
- ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版
ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 ...
- ActiveReports 9实战教程(3): 图文并茂的报表形式
基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI ...
- 《软件功能测试自动化实战教程》—第6章6.7节文件数据源的数据驱测试
本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.7节文件数据源的数据驱测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异 ...
- HQChart实战教程42 - 新浪期货数据源对接 - uniapp版本 (源码付费)
HQChart实战教程41 - HQChart实战教程42 - 新浪期货数据源对接 - uniapp版本 数据源 支持周期 期货品种 平台支持 demo安卓apk下载 源码售价 800元 效果截图 H ...
- HQChart实战教程41 -新浪+腾讯A股数据源对接 - uniapp版本 (源码付费)
HQChart实战教程41 -新浪+腾讯A股数据源对接 - uniapp版本 数据源 支持周期 平台支持 demo安卓apk下载 源码售价 580元 效果截图 HQChart代码地址 数据源 使用公开 ...
- ActiveReports 报表应用教程 (2)---清单类报表
在大多报表系统中都有清单类报表的身影,比如:客户清单.商品信息清单.设备清单.物品采购清单.记账凭证.货品发货清单.员工清单等等.清单类报表看视乎比较简单,但是,由清单类报表演变而来的报表类型却十分丰 ...
- mybatis实战教程(mybatis in action),mybatis入门到精通
目录(?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程 ...
- Shiro 实战教程
Shiro 实战教程 1.权限的管理 1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制 ...
- Windows下MySql主从配置实战教程
Windows下MySql主从配置实战教程 MySql的主从配置教程 主库MySql的安装 1.MySQL的下载 2.MySQL配置文件的编写 3.初始化数据库 4.安装服务 5.启动MySql 6. ...
最新文章
- 大道至简,回归到梦开始的地方。人生如此,编程亦如此。
- 手机软件:杀手游戏的法官助手,(人多的时候法官没有辅助,是很难记住各个角色的)...
- 俄罗斯方块新增行算法:不拘一格编程序之二
- 静态页中调用动态数据的三种办法
- 系统监理师备考经验分享
- 四元数和欧拉角的相互转换
- Python学习3 字符串和相关常用函数
- 苹果电脑强制结束任务,快捷键
- STL-vector容器
- 目标检测(二):OverFeat
- MybatisPlusException: Your property named “xxx“ cannot find the corresponding database column name!
- 2022年最新河北水利水电施工安全员模拟试题及答案
- Mysql数据库基础知识总结,结构分明,内容详细
- php+mysql系统网站,PHP+MYSQL 网址导航系统开源 网站分类目录管理系统
- 六脚自锁开关 引脚定义
- 聚苯乙烯负载酸性离子液体(P[Vim-PS][HSO4])|活性炭(AC)负载酸性离子液体[Hmim-BS][HSO4]齐岳
- HTML 元素学习指南
- 用计算机处理图像属于啥技术,计算机技术在图像处理中的应用
- (网络视频监控)面试题12
- 学遥感必读的十本专业书
热门文章
- 在服务器群集节点安装DHCP服务
- JavaScript常用验证代码(正则表达式)(转自cnblogs)
- 很多大企业都在用的Pentaho 商业分析软件中存在多个严重缺陷
- 详述 PyPI 中的远程代码执行漏洞,可引发供应链攻击
- CW3 Clarifications
- 拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载和const修饰的取地址操作符重载...
- 加载语音license command
- linux Apache启动提示 httpd: apr_sockaddr_info_get() failed f
- mac osx vi 设置tab 四个空格
- Smali动态调试方法