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

在上讲中《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等。

参考的官方博客:

时间: 2024-09-30 16:15:28

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

ActiveReports 9实战教程(1): 手把手搭建好开发环境Visual Studio 2013 社区版

ActiveReports9刚刚公布3天.微软就公布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows.Android 和 iOS 应用.支持:C++, Python, HTML5, JavaScript, 和 C#,VB, F# 语言的开发.提供设计器.编辑器.调试器和诊断工具. 最牛逼的在于你全然能够免费使用该工具: 能够正大光明的免费使用visual studi

ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版

ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows.Android 和 iOS 应用.支持:C++, Python, HTML5, JavaScript, 和 C#,VB, F# 语言的开发,提供设计器.编辑器.调试器和诊断工具. 最牛逼的在于你完全可以免费使用该工具: 可以正大光明的免费使用visual stud

ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013

ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows.Android 和 iOS 应用.支持:C++, Python, HTML5, JavaScript, 和 C#,VB, F# 语言的开发,提供设计器.编辑器.调试器和诊断工具. 最牛逼的在于你完全可以免费使用该工具: 可以正大光明的免费使用visual stud

ActiveReports 9实战教程(3): 图文并茂的报表形式

基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI设计工作,当遇到一个布局非常复杂的报表,往往会花上两.三时间才能完成报表的UI设计工作.造成这一问题的原因除了报表本身比较复杂之外,其中一个主要原因就是报表设计器没有提供足够多的功能来辅助报表的UI设计工作.       ActiveReports 是一个非常容易使用控件,可有一些功能却经常被遗忘-

BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系

前面我们使用过数据源向导.数据源视图向导.Cube向导来创建相应的对象. 本篇我们将学习使用维度向导来创建维度. 通过前面几个向导的学习,我们归纳一下共同点,主要分成两步 1. 使用某种对象类型的向导创建对象,完成主要结构搭建 2. 使用相应的设计器完成最终对象的修改和细化 有点像送快递,先通过大的物流(创建对象向导)把货物送到相应的城市,再通过快递员(设计器进行细化)送到具体顾客手中. 同样的,我们使用维度向导以一种通用的方式来创建维度,然后根据自己的业务需求,使用维度设计器将创建的维度放置到

ActiveReports 报表应用教程 (2)---清单类报表

原文:ActiveReports 报表应用教程 (2)---清单类报表 在大多报表系统中都有清单类报表的身影,比如:客户清单.商品信息清单.设备清单.物品采购清单.记账凭证.货品发货清单.员工清单等等.清单类报表看视乎比较简单,但是,由清单类报表演变而来的报表类型却十分丰富,在清单类报表中可以加入数据统计.数据分栏.数据分组,以及交互式报表和数据可视化功能. 本文将展示两种布局的清单类报表,表格式清单报表和自由布局清单报表.   1.表格式清单报表--客户信息清单 在客户信息清单报表中以表格形式

BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,即部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏览多维数据集 1. 部署项目 在Solution Explorer中,直接右键项目名称并选择Deploy. 当部署AS项目时,SSDT首先会构建你已经创建的项目,并检查初步的警告和错误,例如无效的定义. 如果项目定义不存在任何错误,SSDT会将你在项目中所创建的所有对象和定义打包,并将其发送到AS

BI之SSAS完整实战教程7 -- 设计维度、细化维度中 :浏览维度,细化维度

上篇文章我们已经将Dim Geography维度设计好. 若要查看维度的成员, AS需要接收该维度的详细信息(包括已创建的特性.成员属性以及多级层次结构), 通过XMLA与AS的实例进行通信. 今天我们将维度部署到AS上进行查看. 文章提纲 补充背景知识 浏览维度,细化维度 总结 补充背景知识 XMLA是一种基于简单对象访问协议(SOAP)的XML应用程序编程接口的行业标准, 设计用于OLAP和数据挖掘. XMLA规范定义了两个函数,即Execute和Discover, 这两个函数用于向主机实例

mybatis实战教程(mybatis in action),mybatis入门到精通

转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibat