`

数据报表的基本使用

阅读更多

近来,用vs2005开发一个asp.net项目,其中又有让人讨厌的报表。在vs2003下,集成了水晶报表,相信很多朋友对它已经非常熟悉,到了2005 ,可能是为了照顾开发人员的习惯,依然有水晶,但在部署时却会遇到不少麻烦,让人望而却步。而微软也正式推出了自己的报表工具,并将其做为sqlserver2005一个正式的产品,这就是Reporting Services,该报表如果只在客户端使用则被称为rdlc。
一、利用向导制作报表
利用向导可以很轻松地完成一个报表。首先新建一个“网站”,添加报表,向导会提示你创建一个数据源并打开数据库工具,根据提示,很容易就能生成一个数据源,做为报表的数据来源。在报表设计器中,可以根据需要画出想要的报表,并从“数据源”中选择想要的数据。这样,就完成了一个报表,接下来就可以使用ReportViewer控件来显示这个报表了。新建一个WebForm,从工具箱中拖一个ReportViewer控件到页面上,它会提示你选择报表,我们就选择刚才设计的报表。OK,运行程序就能看到想要的东西了。
二、利用程序动态加载报表
利用向导制作报表的确方便快捷,但作为程序员的我们,却并不甘心于此,因为实际需求千差万别,固定的报表往往并不能满足我们的需求。如何能做到像水晶报表那样,定义好报表的架构后,只需指定要绑定的DataSet数据,就能加载报表呢?因为我们对于这种方法非常熟悉也很容易理解,而且操作起来也会更加灵活,当然也有助于我们将数据访问类封装。经过仔细研究并结合网友的经验,找到了一种简易的办法。
观察一下ReportViewer,在给它指定要显示的报表后,它会自己生成一个ObjectDataSource,该对象会根据生成数据源时定义的方法,获取数据库中的数据。打开该页面的源代码,会发现这样的语句:

<LocalReportReportPath="Report.rdlc">
<DataSources>
<rsweb:ReportDataSourceDataSourceId="ObjectDataSource1"Name="DataSet1_DEPARTMENT"/>
</DataSources>
</LocalReport>
其中Name="DataSet1_DEPARTMENT"指明了报表数据源的名称,这个名字很关键,它是从哪里来的呢?打开报表的xml源文件就会发现它的定义:
<DataSets>
<DataSetName="DataSet1_DEPARTMENT">
所以,要想利用DataSet来加载报表,只需找到这个名字,在正在的定义数据源上指定其Name就为这个值,就可以用正常的代码方式加载了。典型代码如下:
ReportViewer1.LocalReport.ReportPath =MapPath("~/myrdlc.rdlc");
DataSetds=DataSetSel();//获取数据集的方法
//设置报表数据源
ReportDataSourcerds=newReportDataSource("DataSet1_DEPARTMENT",ds.Tables[0]);//注意这里的name和报表中的一致
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();

三、如何给参数赋值
在定义报表时,我们可以给这个报表添加参数,那么如何给这些参数赋值呢?对于自动生成的报表,赋值方法可以参照帮助文档,我这里说的是针对前面描述的方法,下面是代码片断:
ReportParameterp=newReportParameter("title","hello");//title是报表中定义的参数
ReportViewer1.LocalReport.SetParameters(newReportParameter[]...{p});

四、导出pdf出错但导出Excel正常
ReportViewer提供了一个导出按钮,可以方便地将报表导出为excel或pdf(但是没有象水晶那样提供一个打印插件,感觉有些遗憾),我在测试它导出为excel很正常,但导出pdf时却总是出错,慢慢我发现只要报表中有中文就会出错,从网上也找到一个解决方法说是更改为某一字体,但我试了不灵,但显然这个问题是由于pdf对中文的支持不够造成的。这个问题困扰了很长时间,在csdn社区里也发现不少网友碰到这个问题。昨天无意中就发现,如果采有前面讲的利用程序来加载报表,导出pdf时就不会出错了。呵呵,问题是解决了,只是没有想明白其中的原由?

五、另一种动态加载报表
前面所讲的动态加载报表的方法中,报表需要事先定义好,通过设置ReportPath来获取不同的报表,并且通过控制DataSet的内容来决定报表显示的内容。网上也提供了一种方法,可以通过在程序中加载定制的报表定义文件来达到加态加载的目的,这个我还没有用上,大家可以用关键字“rdlc”搜一下,很多这方面的文章。

这些都是我在初学rdlc报表时困惑过我的问题,我想有许多初学者也可能象我一样遇到这些问题,所以写出来和大家交流一下
分享到:
评论

相关推荐

    数据报表excel形式

    数据报表在IT行业中扮演着至关重要的角色,它用于呈现、分析和解释大量信息,帮助企业决策者理解业务状况。Excel作为一款强大的电子表格工具,被广泛应用于数据报表的创建和管理,因其灵活性、易用性和丰富的功能而...

    组态王创建一分钟数据报表 三相异步电动机

    《组态王创建一分钟数据报表三相异步电动机》 组态王是一款强大的工业自动化组态软件,常用于监控和数据采集系统。本实验详细介绍了如何利用组态王创建一个针对三相异步电动机的一分钟数据报表,涵盖了从工程创建到...

    WinCC 数据报表实现方法介绍.pdf

    ##### 5.1 在WINCC中使用VBS脚本通过EXCEL实现实时数据报表 使用VBS脚本可以实现实时报表的自动化生成。通过编写脚本来读取WinCC中的实时数据,并将其输出到Excel中,从而实现报表的实时更新。 ##### 5.2 如何使用...

    水晶报表基本入门

    **水晶报表基本入门** 水晶报表(Crystal Reports)是一款强大的报告设计工具,广泛应用于各类软件系统中,用于生成各种复杂的业务报告。在C#环境中,水晶报表可以与ASP.NET结合,提供用户友好的交互式报告。本教程...

    WinCC数据报表实现方法介绍

    **5.1 在WINCC中使用VBS脚本通过EXCEL实现实时数据报表** VBS脚本(Visual Basic Script)作为一种轻量级的编程语言,可以被WinCC轻松集成,用于数据提取和处理。通过VBS,用户可以自动地从WinCC的数据源中读取实时...

    数据报表与数据图表ppt课件.ppt

    数据报表设计是实现报表之前的重要步骤,需要根据业务需要和用户需求确定报表基本内容,列出信息大纲和布局,包括确定报表的总体目的和用途、确定报表布局、确定数据来源、明确数据处理方法、确定打印区域特性等。...

    旗舰店运营基本流程-目标-计划-数据报表模版.zip

    这份"旗舰店运营基本流程-目标-计划-数据报表模版.zip"压缩包文件,显然是为帮助电商运营者系统地理解和操作旗舰店的日常运营工作而设计的。其中的核心知识点包括以下几个部分: 1. **目标设定**:旗舰店运营的第一...

    在水晶报表中使用Access数据库

    在水晶报表(Crystal Reports)中使用Access数据库是一个常见的数据源集成场景,这主要涉及到报表设计、数据连接和查询优化等多个方面。...通过熟练掌握上述知识点,用户可以高效地创建、管理和分享数据报表。

    水晶报表使用教程 报表

    文档可能包括如何连接到数据源、设计报表布局、使用公式和函数、过滤和排序数据、分组和汇总信息以及自定义报表样式等方面的问题,这些问题的解答将帮助你解决实际操作中的疑惑。 20050908am--水晶报表的使用.pdf...

    润乾报表使用手册

    数据模型则涉及到报表中的数据组织方式,包括基本概念、多数据集模型等;运算模型关注于报表中数据的处理和计算方式,如主格模型、层次坐标等;子报表模型则是在报表中嵌入其他报表的处理方式。 在实际操作过程中,...

    NC报表开发_数据加工示例

    这个接口主要用于定义报表查询的基本操作,例如票据信息查询、票据池额度查询等。 ```java package nc.itf.fbm.paperbill.query; import nc.pub.smart.data.DataSet; import nc.vo.pub.BusinessException; import ...

    水晶报表10使用手册

    4. **子报表与嵌套数据**:对于复杂的数据结构,可以使用子报表将数据分块处理。子报表可以独立设计,也可以嵌套在主报表中。 5. **图表与图形**:水晶报表10支持多种图表类型,如柱状图、折线图、饼图等,用于直观...

    如何在水晶报表中过滤数据

    在水晶报表中过滤数据是一项基本但至关重要的技能,它允许用户根据特定条件筛选出所需的信息,以满足不同的业务需求。下面将详细介绍如何在水晶报表中进行数据过滤,并提供相关的实践步骤。 1. **创建水晶报表** ...

    WinCC数据报表实现方法介绍,wincc报表步骤实例,PDF源码.zip

    在工业生产过程中,数据报表的生成和分析是至关重要的,它可以帮助工程师监控生产过程,优化生产效率,及时发现并解决问题。本资料主要介绍了如何在WinCC中实现数据报表的功能,通过具体的步骤实例,帮助用户掌握...

    海运报表数据处理(纯JAVA)

    【海运报表数据处理(纯JAVA)】项目是一个利用Java编程语言设计的小型应用程序,它集成了网络通信、文件操作、流处理、多线程以及图形用户界面(GUI)设计等多个核心Java技术。以下是对这些技术的详细解释: 1. **...

    WPF程序中RDLC报表的使用及参数传递

    在VS2010中,你可以使用Report Designer创建和设计RDLC报表,通过拖放控件、设置布局和样式,以及配置数据绑定来实现所需的报表格式。 在WPF项目中使用RDLC报表,首先需要添加报表到项目中。这可以通过“添加新项”...

Global site tag (gtag.js) - Google Analytics