文档章节

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

葡萄城技术团队
 葡萄城技术团队
发布于 2014/11/21 09:13
字数 1165
阅读 631
收藏 8

在上讲中《ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版》,我们已经结合Visual Studio 2013搭建好了ActiveReports 9的开发环境,并完成了一个Hello World的RDL报表。 在本文,我们通过配置数据源进行报表实战,做过报表开发的报表达人知道,报表中的数据源分设计时数据源和运行时数据源。 如何理解呢?

image

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

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

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

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

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

设计时数据源

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

image

右键,添加数据源

image

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

image

 

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

image

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

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

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

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

  • 过滤数据

  • 使用自定义表达式

  • 从数据库选择字段

  • 分组和合计函数

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

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

  • 数据排序和更多特性

image

 

image

 

生成的SQL语句:

select Products.*, Categories.* from Products inner join Categories on Products.CategoryID = Categories.CategoryID

 

image

 

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

image

 

image

至此,完成了运行时数据源的添加,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 9实战教程目录:

 

© 著作权归作者所有

葡萄城技术团队

葡萄城技术团队

粉丝 402
博文 570
码字总数 878823
作品 20
西安
高级程序员
私信 提问
加载中

评论(1)

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

ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境。 Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows、Android 和 iOS 应用。支持:C++...

葡萄城控件技术团队
2014/11/18
942
1
ActiveReports 9实战教程(3): 图文并茂的报表形式

基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源。在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享。 以往做报表相关的工作时,最害怕...

葡萄城控件技术团队
2014/12/08
472
0
activereports报表控件7.0免费下载使用教程功能介绍大全

ActiveReports For .NET 6.0是一款强大的.NET报表控件,可以同时用于Windows Forms 和Web Forms平台下,具有自定义、高性能、高质量、多语言支持功能,可以进行报表设计,打印,浏览,转换,...

kongjianxuanxing
2014/04/28
258
0
ActiveReports 8 SP1 新特性介绍

ActiveReports 8 SP1 新特性介绍 ActiveReports 8 SP1 新特性 地图控件支持多种地图提供器 地图控件(Map)使用新增的地图提供器来支持数据虚拟化功能,包含Bing Map,Google Map,MapQuest,...

葡萄城技术团队
2014/08/18
727
0
ActiveReports V11 SP2 版本正式发布

ActiveReports V11 SP2 于今日正式发布,本次版本集中完善复杂报表设计,主要增加了单元格自动合并,数据钻取增强等多项功能,只需一步设置即可实现困扰多年报表界难题。 ActiveReports 11 的...

葡萄城技术团队
2017/07/25
1K
9

没有更多内容

加载失败,请刷新页面

加载更多

CSS盒子模型

一、什么叫框模型 页面元素皆为框(盒子) 定义了元素框处理元素内容,内边距,外边距以及边框的计算方式 二、外边距 围绕在元素边框外的空白距离(元素与元素之间的距离) 语法:margin,定...

wytao1995
今天
4
0
Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部