ASP.NET中水晶报表的使用方法详解_实用技巧

前一段时间,由于在项目中要用到报表做统计,所以我学习了一下ASP.NET水晶报表的使用。水晶报表的执行模式(也就是取数据的方法)可以分为两种:

第一种是Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。

另外一种就是Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。

水晶报表中的报表类型也分为两种:

--StrongTyped 报表: 当你将报表文件加入到项目中去时,它就变成了一个了“ strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。

--UnTyped报表:这里的报表并不直接包含在项目中,因此称为‘un-typed' 报表。在这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立一个实例,并且”手动“地凋用报表。

使用Pull模式   我们将通过下面的这些步骤来通过Pull模式来执行水晶报表
  1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。
  2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
  3. 在代码中调用DataBind方法。

复制代码 代码如下:

ReportDocument  ReportDoc  = new  ReportDocument();
ReportDoc.Load(Server.MapPath("MyPullDemo.rpt"));
#region 解决登录错误问题
TableLogOnInfo  logonInfo  = new TableLogOnInfo();//
foreach( CrystalDecisions.CrystalReports.Engine.Table tb in ReportDoc.Database.Tables)
{
logonInfo = tb.LogOnInfo;
logonInfo.ConnectionInfo.ServerName = "(local)";
logonInfo.ConnectionInfo.DatabaseName = "myDatabase";//
logonInfo.ConnectionInfo.UserID = "sa";
logonInfo.ConnectionInfo.Password = "sa1234";//
tb.ApplyLogOnInfo(logonInfo);
}
#endregion
CrystalReportViewer1.ReportSource = ReportDoc;

CrystalReportViewer1.DataBind();

使用PUSH模式
  我们采用下面的几步使用Push模式执行水晶报表:
  1. 设计一个DataSet
  2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。
  3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
  4. 在代码中访问数据库并把数据存入DataSet
  5. 调用DataBind方法。

复制代码 代码如下:

ReportDocument ReportDoc = new ReportDocument();
ReportDoc.Load(Server.MapPath("MyPushDemo.rpt"));
string strProvider = "Server=(local);DataBase=myDatabase;UID=sa;PWD=sa1234";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from SaleOfCuntry";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);

--这里的ds与.rpt文件连接数据库所用的DataSet结构完全相同,名称可以不同

建立.rpt文件时DataSet的作用是为rpt文件提供一种架构。

这里 用dataadapter填充数据集的一个实例,作为报表的数据源。

复制代码 代码如下:

DataSet ds = new DataSet();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;

Crv.DataBind();

时间: 2024-10-18 05:16:46

ASP.NET中水晶报表的使用方法详解_实用技巧的相关文章

ASP.NET动态设置页面标题的方法详解_实用技巧

  ASP.NET为我们提供了一个控件类:System.Web.UI.HtmlControls.HtmlGenericControl.它可以实现HTML的元素的一个实例,比如在.cs代码中控制aspx中的<td>元素(注意,它不是<ASP:TableCell>).我们知道,页面标题是被包含在<TITLE></TITLE>中的,而<TITLE>也是一个HTML的元素,所以,我们就可以利用System.Web.UI.HtmlControls.Html

ASP.NET中readonly与const的区别详解_实用技巧

const是一个修饰常量的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性,它在程序设计中有着非常重要的作用,给开发人员带来非常方便的应用. 下面我们来建一个控制台应用程序作测试: public class Test { public readonly string name = "George"; public const string coname = "ABC Company LLC"; public Test(str

asp.net中session的原理及应用详解_实用技巧

Session简介丶特性 -------------------------------------------------------------------------------- 1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Sessi

ASP.NET刷新页面的几种方法详解_实用技巧

第一种: 复制代码 代码如下: private void Button1_Click( object sender, System.EventArgs e )   {     Response.Redirect( Request.Url.ToString( ) ); } 第二种: 复制代码 代码如下: private void Button2_Click( object sender, System.EventArgs e )   {     Response.Write( "     <

ASP.NET4 GridView的四种排序样式详解_实用技巧

与ASP.NET 的其他Web控件一能够,Gridview控件拥有很多不同的CSS样式属性设置,包括象CssClass,Font字体,ForeColor,BackColor,BackColor, Width, Height等等.Gridview还包括了一些应用在表格的行上的样式属性,比如RowStyle, AlternatingRowStyle, HeaderStyle,和PagerStyle,它们都提供了象CssClass和Font这些基本的属性设置.  在 ASP.NET 4.0中的Grid

ASP.NET生成图形验证码的方法详解_实用技巧

本文实例讲述了ASP.NET生成图形验证码的方法.分享给大家供大家参考,具体如下: 通常生成一个图形验证码主要 有3个步骤: (1)随机产生一个长度为N的随机字符串,N的值可由开发可由开发人员自行设置.该字符串可以包含数字.字母等. (2)将随机生成的字符串创建成图片,并显示. (3)保存验证码. 新建一个页面为default.aspx,  放置一个TextBox控件和一个Image控件,TextBox控件用于输入生成的字符串,Image控件用于显示字符串,它的图片就为生成的图形验证码image

解决在Web.config或App.config中添加自定义配置的方法详解_实用技巧

.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持.最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了.如果你已经对自定义配置了如指掌,请忽略这篇文章.言归正传,我们先来看一个最简单的自定义配置 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?> <configura

.net 中的SqlConnection连接池机制详解_实用技巧

正确的理解这个连接池机制,有助于我们编写高效的数据库应用程序. 很多人认为 SqlConnection 的连接是不耗时的,理由是循环执行 SqlConnection.Open 得到的平均时间几乎为0,但每次首次open 时,耗时又往往达到几个毫秒到几秒不等,这又是为什么呢? 首先我们看一下 MSDN 上的权威文档上是怎么说的 Connecting to a database server typically consists of several time-consuming steps. A

分析10个ASP.NET控件最有用的属性详解_实用技巧

1.ClientIDMode 渲染ASP.NET控件时会自动生成一个ID,当我们在客户端脚本中引用它们时,却会制造不少麻烦,虽然它是命名容器和ID的简单串联,但仍然无法预测生成的ID范围. ASP.NET 4.0使用ClientIDMode属性解决了这个问题,它允许你控制生成这些ID的方法,ClientIDMode有四个可选择的值:AutoID,Static,Predictable和Inherit.下面是这四个值的含义解释: AutoID – 和4.0以前的版本保持一致,自动生成ID. Stat