`

ASP.NET报表技术

    博客分类:
  • .NET
 
阅读更多

 

水晶报表

我们先来看看在ASP.NET中使用水晶报表需要哪些组件:CrystalReportViewer,CrystalReportSource及以

rpt为扩展名的报表文件。

我们可以将以上组件拿来与数据绑定控件,数据源控件来做一个类比:

CrystalReportViewer就相当于数据绑定控件,用来显示最后的报表。

CrystalReportSource就相当于数据源控件,但不是直接在它身上直接配置数据源,而是通过rpt报表文件。

在页面上拖入上述俩控件就会自动引入CrystalDecisions.Web

rpt报表文件,创建该文件后就可以在报表设计器中配置数据源了,创建该文件后就会自动引入

CrystalDecisions.CrystalReports.Engine,CrystalDecisions.Enterprise.Framework,CrystalDecision

s.Enterprise.InfoStore,CrystalDecisions.Shared

使用水晶报表有两种模式:

1.PULL模式(拉模式)

被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。 

创建rpt报表文件后,在VS左侧就会出现"字段资源管理器",在"字段资源管理器"中右键"数据库专家"->"创

建新连接"->然后将你选的数据库里的表添加进来。

2.PUSH模式(推模式)

参考:

http://www.cnblogs.com/xumingming/archive/2008/07/31/1257106.html

http://blog.csdn.net/chuxue1342/article/details/1935948

http://dotnet.chinaitlab.com/ASPNET/530751.html

http://topic.csdn.net/u/20090626/17/8090bf70-bed9-41ac-9e09-c0a6a7ab4cb8.html?59922

 

 

RDLC报表

虽然水晶报表功能很强大,但由于其使用过于复杂并且需要付费,RDLC报表的优势凸显出来:微软自家的东西,使用简单,功能也很好。

首先创建RDLC报表文件(后缀名是.rdlc),之后VS左侧就会出现"网站数据源",而且你打开工具箱看看,会发现工具箱里都是些"文本框"、"表"、"折线图"、"矩阵"等。在"网站数据源"上添加新数据源(该过程会创建一个dataset文件,你可以在设计器里拖入你想要显示的表),或者你随便创建一个dataset文件都会在"网站数据源"内显示。rdlc报表文件实际上是一个XML文件,可以用记事本打开看看。

之后你就可以在"网站数据源"的dataset里拖动我们想要的字段到rdlc报表里了。

添加reportviewer控件:在.NET Framework组件选项卡下选中命名空间为Microsoft.Reporting.WebForm下的ReportViewer。

然后在reportviewer控件的任务列表里选择刚才建立的rdlc报表文件,这时VS会根据你的rdlc报表文件生成相应的ObjectDataSource来为其提供数据,注意有时会出现 未能找到在 ObjectDataSourc的 TypeName 属性中指定的类型  的错误  不知是为什么这是其TypeName的命名空间不对(可能是不全或其他原因),所以还是人工查找该TypeName指向的类的完全命名空间吧。

运行后貌似对chrome浏览器不是很支持,添加的字段都挤在一起了。

向报表添加报表项(表,矩阵等。在下面链接中被称为"数据区域")

http://msdn.microsoft.com/zh-cn/library/ms252086(v=vs.80).aspx

表数据区域    http://msdn.microsoft.com/zh-cn/library/ms251659(v=vs.80).aspx

矩阵数据区域 http://msdn.microsoft.com/zh-cn/library/ms251709(v=vs.80).aspx

                   http://www.cnblogs.com/Gerry-BJ/archive/2008/05/13/1195450.html

列表数据区域 http://msdn.microsoft.com/zh-cn/library/ms251742(v=vs.80).aspx

图表             http://msdn.microsoft.com/zh-cn/library/ms252128(v=vs.80).aspx

在将图表添加到报表时,需要将某些字段拖到某些位置:

数据字段(通常的Y轴,代表"值",如多少分数 或 多少销售量)

类别字段(通常的X轴,代表"谁",如某同学 或 某公司)

序列字段(如果"谁"只有一个"值"就无所谓了,但如果有多个"值"(如多门课 或 多季度),如果不指定序列字段就会将"谁"的这些"值"全加在一处  如果指定了  就很清晰(如小明语文多少分数学多少分 或 某公司第一季度销售量是多少第二季度销售量是多少))

RDLC表达式 http://www.cnblogs.com/jack86514/archive/2009/10/17/1585254.html

                  http://www.cnblogs.com/hubcarl/archive/2009/10/08/1579029.html

有时可能需要使用联合查询得到的数据源,可以在上面建立的dataset文件中右键"添加"->"TableAdapter"然后在查询生成器里使用联合查询的语句。这时别忘了为reportviewer控件重新根据你的rdlc报表文件生成相应的ObjectDataSource。

但是如果按照上面的方法生成报表的话,我们就很难与之有个交互性,这就需要使用RDLC报表自定义数据集了http://www.cnblogs.com/luozhanbin/archive/2008/07/13/1241991.html

代码很简单,但有几点要说

 protected void Button1_Click(object sender, EventArgs e)

        {

            SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial 

 

Catalog=GA_ONLINEEXAM.MDF;Integrated Security=True");

            SqlCommand cmd = new SqlCommand("select st.sname,sc.thescore from student 

 

st,score sc where sc.sid=st.id and paperid=@paperid", conn);

            cmd.Parameters.AddWithValue("paperid", TextBox1.Text);   此处有个交互性

            conn.Open();

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            DataSet ds = new DataSet();

            da.Fill(ds);

            conn.Close();                设置报表文件,要用物理路径

            this.ReportViewer2.LocalReport.ReportPath = Server.MapPath("Report2.rdlc");

            ReportViewer2.LocalReport.DataSources.Clear(); 清空原先的数据源

            ReportDataSource rds = new ReportDataSource();  新的数据源类  using Microsoft.Reporting.WebForms

此处名字要注意,它是数据集里的一个表名,自动命名就是数据集名_表名(这个可以通过切换到rdlc报表文件界面-菜单栏-报表-数据源 里查看和重命名)

            rds.Name = "DataSet1_DataTable1";

            rds.Value = ds.Tables[0];

            ReportViewer2.LocalReport.DataSources.Add(rds);  添加新数据源

            ReportViewer2.LocalReport.Refresh();   刷新显示报表

        }

但有个问题,我们如何控制报表的样式格式呢?所以我们之前其实还是要通过建立数据源(按照此处的话有个表名是DataSet1_DataTable1)然后把我们想要的字段拖到报表设计器中来设置样式格式的,只不过我们在真正用时不是使用这个数据源,而是使用程序中创建的数据源,所以我们自定义的数据集中也必须出现我们在报表设计器中拖动的字段,否则会出错。

参考:

 

http://wangjierui.blog.51cto.com/186879/39772

http://www.cnblogs.com/waxdoll/archive/2006/02/27/339115.html

http://blog.csdn.net/huc87/article/details/4021080

http://www.cnblogs.com/jack86514/category/204494.html

 

 

分享到:
评论

相关推荐

    asp.net 报表(套用Excel模板)打印

    ASP.NET报表技术是一种用于在Web应用程序中生成和呈现数据的强大工具。在"asp.net 报表(套用Excel模板)打印"这个主题中,我们主要关注如何利用ASP.NET结合Excel模板来创建动态、格式化的报表,并实现打印功能。这...

    asp.net报表源码

    ASP.NET报表源码是开发基于Web的业务应用中不可或缺的一部分,尤其在数据分析、统计和展示环节。本资源“asp.net报表源码”提供了一个利用ASP.NET框架与Crystal Reports结合实现的示例项目,名为“CrystalTest”。这...

    关于asp.net报表制作

    ASP.NET报表制作是Web应用程序开发中的重要组成部分,用于展示数据并提供数据分析能力。在这个领域,开发者需要理解如何有效地设计和实现各种类型的报表,包括表格、图表、交叉表、仪表盘等,以满足业务需求。本篇...

    ASP.NET报表设计源代码

    通过研究这个源代码,我们可以深入了解ASP.NET报表开发的技术细节和最佳实践。 1. ASP.NET基础:ASP.NET是微软公司开发的Web应用程序框架,它基于.NET Framework,提供了丰富的功能来构建动态网站、Web应用和服务。...

    ASP.net报表系统

    ASP.NET报表系统是一种基于微软的ASP.NET框架构建的用于生成、展示和管理数据报表的应用程序。这个技术允许开发者创建交互式、动态的报表,能够从各种数据源获取数据,并以直观的方式呈现给用户。在ASP.NET报表系统...

    ASP.Net报表控件

    ASP.NET报表控件是开发Web应用程序时用于生成和展示数据报表的重要工具。这些控件能够帮助开发者快速且高效地创建各种复杂的数据可视化效果,如图饼、过程线和各种报表,以便用户可以清晰地理解统计数据和查询结果。...

    asp.net实现报表功能

    为了进一步增强报表的功能,你可以使用第三方报表工具,如Crystal Reports或DevExpress的ASP.NET报表组件。这些工具提供更丰富的报表设计和格式化选项,以及复杂的计算和过滤功能。它们通常有拖放式的报表设计器,...

    葡萄城ASP.NET报表控件

    【葡萄城ASP.NET报表控件】是专门为ASP.NET开发者设计的一款高效、强大的报表工具,它提供了丰富的报表设计功能,能够帮助开发人员轻松实现各种复杂的报表布局和数据分析展示。这款控件100%可用,表明它经过了严格的...

    ASP.NET导出报表

    在ASP.NET中,报表是展示数据的重要方式,尤其在数据分析、业务监控和决策支持等方面起着关键作用。本篇文章将详细讲解ASP.NET中涉及的XLS报表、水晶报表、PDF导出以及饼状图和柱状图的生成。 1. **XLS报表**: - ...

    [源代码] 《ASP.NET夜话》 随书源代码

    ☆ 资料说明:☆ 《ASP.NET夜话》 周金桥 著 随书源代码 ☆ 章节清单:☆ ...第18章 — ASP.NET报表技术 第19章 — .NET的文件IO体系和静态页面生成技术 第20章 — 数据安全技术 第22章 — 综合实例

    ASP.NET 报表插件 MsChart报表安装文件

    在ASP.NET报表中,饼状图和柱形图是非常常见的图表类型。饼状图用于表示各部分占总体的比例,通过扇形区域的大小直观展示数据的分布情况。而柱形图则适合比较不同类别的数据值,每个柱子的高度代表一个类别的数值,...

    Asp.net 报表图(实现)

    Asp.net 报表图(实现),经常会用到的实用报表图的实现,统计报表,业绩报表。

    asp.net 图形报表

    1. AJAX支持:为了提高用户体验,可以使用ASP.NET AJAX技术实现图表的异步更新,无需刷新整个页面。 2. 移动优化:考虑到移动设备的屏幕尺寸,可能需要调整报表布局,使之适应不同分辨率的设备。 3. 报表交互性:...

    ASP.NET简单报表实例

    这个"ASP.NET简单报表实例"显然包含了多种用于数据展示和处理的技术,其中包括GridView、CheckBoxList、Excel导出以及JavaScript的应用。下面我们将逐一探讨这些知识点。 1. GridView: GridView是ASP.NET中的一个...

    asp.net 报表 rdlc官方例子下载

    ASP.NET中的RDLC(Report Definition Language for Client Applications)报表是一种强大的工具,用于在Web应用程序中创建和展示数据报告。RDLC报表与微软的SQL Server Reporting Services(SSRS)紧密关联,但它们...

    asp.net水晶报表 示例

    ASP.NET水晶报表是一种广泛用于创建和展示数据报告的工具,尤其在Web应用程序中。它结合了强大、灵活的报告设计功能和高效的数据显示能力,使得开发者能够轻松地在ASP.NET环境中生成复杂的业务报告。本示例将详细...

    asp.net水晶报表视频教程二

    【ASP.NET水晶报表详解】 ASP.NET水晶报表是用于在Web应用程序中生成动态、交互式报告的强大工具。这个视频教程系列,特别是"ASP.NET水晶报表视频教程二",旨在帮助开发者深入理解和熟练掌握如何在Visual Studio...

    asp.net报表FusionCharts资料文档

    ASP.NET报表设计是Web开发中的一个重要领域,它用于呈现数据以供分析和决策。FusionCharts是一款流行的JavaScript图表库,可以与ASP.NET结合使用,为Web应用提供丰富的交互式图表功能。这款工具允许开发者轻松地将...

    ASP.NET图形报表

    ASP.NET图形报表是一种在Web应用程序中展示数据的强大工具,它能够以图表...通过以上这些技术和方法,开发者可以使用ASP.NET构建出功能强大、美观易用的图形报表,满足企业或个人在数据分析和决策支持方面的各种需求。

    Asp.Net图形报表

    在IT行业中,Asp.Net是一种基于.NET Framework...综上所述,Asp.Net图形报表的开发涵盖了数据处理、可视化设计、交互性实现等多个方面,开发者需要掌握相关技术和工具,以创建出既实用又美观的图形报表,满足业务需求。

Global site tag (gtag.js) - Google Analytics