真正的水晶报表详细使用步骤

来源:互联网 发布:wwe直播软件 编辑:程序博客网 时间:2024/05/21 21:02

ASP.NET中水晶报表的使用

       报表类型

我们在设计报表时,最好使用Crystal Reports的报表向导,它会按照不同类型的报表给以不同的指导,帮助您正确得设计出您想要的报表雏形,此处就不详细讲解报表的具体设计过程,下面仅针对于不同类别报表设计时的一些技巧予以提示共享.

交叉表

Crystal Reports把每个交叉表看作一个交叉表对象,所谓的交叉表对象很简单,它是由几部分组成的,包括:,,汇总字段,行总计,列总结以及总计.交叉表可以有多个行,多个列以及多个汇总字段, 如果需要您也可以在一个报表中插入多个“交叉表”对象,但“交叉表”对象必须插入报表页眉或报表页脚或者插入组页眉或组页脚中, 当然您可以将“交叉表”对象放在子报表中。当要引用来自其他报表中的结果时,这一点很有用.另外当交叉表的汇总字段有多个时,而且不同的汇总字段要按照不同的方法进行汇总,这时候交叉表对象的行总计和列总计以及总计就失去了作用,那么怎么办呢?我们可以直接在数据库中算好把他们呈现出来,而这里需要把交叉表本身的总计都隐藏掉,方法很简单右击交叉表对象选择交叉表专家,选择自定义样式标签,勾选抑制显示行总计,抑制显示列总计复选框即可,当然在此你也可以进行其它尝试,比如抑制显示空行抑制显示空列等等.其它的设置请参阅联机指南.

图表

Crystal Reports 使您可以在报表中包含复杂的、多彩的图表。任何时候都可以使用这些图表来增加报表的可用性. 您可以根据以下内容绘制图表: 汇总和小计字段, 详细资料、公式和运行总计字段, 交叉表汇总, OLAP 数据。通常在组级根据汇总和小计信息绘制图表。但是,根据所用数据类型,您可以为报表创建高级图表、交叉表图或 OLAP 网格图表

子报表

子报表是报表中的报表。创建子报表的过程与创建常规报表的过程相似。子报表有报表的大多数特性,包括它自己的记录选择条件。子报表与主报表之间的唯一区别是子报表多节报表是作为对象插入到主报表中;它不能独立存在(但可以将子报表另存为主报表),它可以放置在报表的任意一节内,整个子报表将在该节中打印, 它不能包含另一个子报表,也不要包含页眉或页脚节.使用子报表的情况很多比如: 将不相关的报表组合到单个报表中, 协调本无法链接的数据,在单个报表中显示相同数据的不同视图, 从在查阅字段上没有索引的字段中执行一对多查阅等等,您可以根据自己的实际需要进行设计

拉和推模型
为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型
 
 

在拉模型中,驱动程序将连接到数据库并根据需要将数据进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型

相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。

 

 

    实例1(拉模式):

1.      首先要创建一个报表,点击网站添加新项,然后创建一个CrystalReport.rpt报表文件

2.      然后双击报表按标准创建一个新的连接,可以选别的这里选择OLEDB连接选择SQL SERVER然后选择数据库,输入用户名,密码等,然后下一步完成

3.      然后点刚刚建立的连接这里是NET12选择TP_ZD(数据库)打开表选择一个表如:S_Child

4.      选择要显示字段(这里选择AutoCodesTitle

5.      选择分组依据(分组是:对数据字段进行排序分组这里选择AutoCode

6.      选择汇总字段进行统计

7.      排序类型

8.      最后可以选择是否选择图表,可以选择一个图表

9.      选择一个样式,这里选择最后一个

10.   最后一步对话框是选择是否进行筛选

这样一个报表就创建完了

然后在WEB页面添加一个报表显示(CrystalReportViewer)和一个报表数据源控件(CrystalReportSource)并在.cs页面进行数据绑定:

CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));

        CrystalReportViewer1.ReportSource = CrystalReportSource1;

        CrystalReportViewer1.DataBind();

 

现在双击报表可以对报表进行一些修改:

1.      删除Section3(详细资料)中的AutoCodeSection2中的AutoCode

2.     仰制显示GroupFooterSection1Section4

3.     修改组1的样式(设定对象格式)

运行后如下:

 

接着可以给报表添加新的功能如,内容的查询或数据的修改

点击报表页面打开报表右键点击sTitle打开设置对象格式选择超级连接-internet上的网站- 点击

输入以下代码:

stringVar x := CStr({S_Child.AutoCode},0,"");

x := "Add_Del_Up.aspx?AutoCode=" + x + "&Table=S_Child"

这时点击sTitle字段就可是页面重定向,实现查看和添删改功能.

 

 

实例2(推模式.保存打印功能):

The_DataBind("select * from dbo.S_Child where dTime between '" + DateTime.Parse(this.TextBox1.Text).ToString() + "' and '" + DateTime.Parse(this.TextBox2.Text).ToString() + "'");

        Response.ClearContent();

        Response.ClearHeaders();

        Response.Clear();

        Response.ContentType = "application/excel";

        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Exceltest.xls");

        Stream stream = CrystalReportSource1.ReportDocument.ExportToStream(ExportFormatType.Excel);

        byte[] dataArray = new byte[stream.Length];

        stream.Read(dataArray, 0, Convert.ToInt32(stream.Length));

        Response.BinaryWrite(dataArray);

        Response.Flush();

        Response.Close();

(附带一个gridview的添删该)实例下载地址:http://d.download.csdn.net/down/454218/sunchaohuang

原创粉丝点击