水晶 表的使用经验和资料总结
资料:
Asp.Net中使用水晶 表(上)
www.dotnet8.com 2002-9-6 DotNet吧
[HTML]在我们对VS.Net中的水晶 表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。一周以后,在阅读了大量的”HOWTO”文档之后,我们成功地将一些简单的 告加入到了我们的Asp.net程序中,并得到了一些小决窍。
这篇文章教你如何在.Net Web应用中使用水晶 表,也可以让你在学习过程中少走一些弯路。为了得到最好的效果,读者最好需要有一些基础的Asp.Net访问数据库的知识以及使用VS.Net的开发经验。
简介
水晶 表可以由很多的方法得到,其中一个就是使用VS.Net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用VS.Net开发.Net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在VS.Net中了。
优点:
VS.Net水晶 表有下面一些主要的优点:
快速的 表开发
能够导出成为复杂的交互性图表
可以与其它控件一起在WebForm中使用
能够动态地将 表导出成为.pdf,.doc,xls,html,rtf等多种格式
结构:
一些组件组成了水晶 表的二层结构,需要的Web应用有:
客户端 :
客户端仅需要一个可以访问嵌入aspx页面 表的游览器就可以了
服务器 :
– 水晶 表引擎(Crystal Report Engine (CREngine.dll))
通过它可以完成一些任务,如在 告文件中合并数据,转换 告为其它格式等。也正是因为 告引擎的作用,才可以将Asp.Net中的水晶 表转换成为普通HTML格式
– 水晶 表设计器(Crystal Report Designer (CRDesigner.dll))
水晶 表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子 表等。
– .rpt 表文件
执行 表中的第一步就是在水晶 表设计器接口创建此 表,在默认安装中微软已经提供了一些现成的.rpt例子。
– Data Source
.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶 表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到 表文件。
– 水晶 表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))
水晶 表查看控件是一个WebForm控件,可以将它看成是一个在.aspx页面中存放 表的容器。 注意:在一些复杂的操作中, 表服务器与Web服务器可能不在同一物理主机上,Web服务器将HTTP请求传送到 表服务器上去。水晶 表也可以当做WebService来执行。
执行模式
水晶 表取数据可以使用下面的方法实现:
– Pull 模式:
被请求时,水晶 表直接根据指定的驱动连接数据库然后组装这些数据。
– Push 模式 :
此时开发表不得不自己编写代码连接数据并组装DataSet,同时将它传送至 表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用 表性能最大化。
表类型:
水晶 表设计器能够直接包含 表至工程也能够使用独立的 表对象。
- Strongly-typed 表 :
当你将 表文件加入到项目中去时,它就变成了一个了” strongly-typed” 表。在这些情况下,你将拥有直接创建 表的对象的权力,这将减少一些代码并且能够提供一些性能。
- Un-Typed 表 :
这里的 表并不直接包含在项目中,因此称为’un-typed’ 表。在这种情况下,你不得不使用水晶 表的”ReportDocuemt”对象建立一个实例,并且”手动”地凋用 表。
其它注意事项
- Un-Typed 表 :
- 尽管水晶 表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。
– VS.Net中的水晶 表如果没有注册,那么它只能使用30次,30次后,”保存”功能就不能再使用了。为了避免这个,你不是不在 http://www.crystaldecisions.com/这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持)
让我们感受一下----在Asp.net中使用一个现成的水晶 表文件
1) 从WebForm工具栏中拖动水晶 表查看器控件(Crystal Report Viewer)至.aspx页面中。
2) 调出水晶 表查看器控件的属性窗口
3) 点击[…]按钮查看”Data Binding”属性,并弹出了DataBinding窗口。
4) 从左边的”Bindable属性”区中选择”Report Source”
5) 选中”自定义绑定表达式”单选按钮,在右边的底部的窗口中指定.rpt文件的文件名和路径,例如:”C:Program FilesMicrosoft Visual Studio.NETCrystal ReportsSamplesReportsGeneral BusinessWorld Sales Report.rpt”,然后”确定”
注意:文件”World Sales Report.rpt”文件是在VS.Net安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。
上面的步骤中实际上是插入了下面这些代码至Asp.Net文件中:
以及:
Asp.Net中使用水晶 表(中)
[HTML]使用Pull模式
我们将通过下面的这些步骤来通过Pull模式来执行水晶 表
1.首先创建rpt文件,并使用水晶 表设计接口设置一些必须的数据连接。
2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
3. 在代码中调用DataBind方法。
创建 .rpt 文件:
1) 在右击”解决方案游览器”,在弹出的菜单中选择”添加”--”添加新项”-->”Crystal Report”
2) 在”Crystal Report 库”中选择”作为空白 表”单选按钮,最后单击”确定”。
3)这里将弹出水晶 表设计器。
4) 右击 表中的”详细资料区”,选择”数据库”->”添加/删除数据库…”
5) 在弹出的”数据库专家”中,扩展”OLE DB(ADO)”选项,此时会弹出另外一个”OLE DB(ADO)”窗口。
6) 在 “OLE DB (ADO)” 弹出窗口中,选择 “Microsoft OLE DB Provider for SQL Server” 然后 “Next”
13) 保存,这样我们就有了一个水晶 表文件。
创建 CrystalReportViewer 控件
14) 回到前面的WebForm中,拖放一个Crystal Report Viewer控件到页面中去。
15) 调出Crystal Report Viewer控件的属性窗口,选择”DataBindings”区点击[…]
16) “Crystal Report Viewer 数据绑定窗口”中,在右边的”可绑定属性”中选择”ReportSource”,并选择右下角的”自定义绑定表达式”中指定.rpt文件路径。
17) 此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的 表文件的预览。
注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
Code Behind 程序设计
18) 在Page_Load方法中调用DataBind方法。
执行你的程序
19) 创建并运行你的程序!
您现在就可以直接在Web页面中使用水晶 表内置的一些功能,如页面导航,缩放等。
[/HTML]
Asp.Net中使用水晶 表(下)
www.dotnet8.com 2002-9-6 DotNet吧
[HTML]我们采用下面的几步使用Push模式执行水晶 表:
1. 设计一个DataSet
2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。
3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
4. 在代码中访问数据库并把数据存入DataSet
5. 调用DataBind方法。
设计一个DataSet
1) 右击”解决方案浏览器”,选择”添加”–”添加新项”–>”数据集”
2) 从”服务器资源管理器”中的”SQL Server”中拖放”Stores”表(位于PUBS数据库中)。
3) 此时在数据集中就会有一个Stores表的结构图。
- .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
创建 .rpt 文件 :
4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
5)建立.rpt文件之后,右击”详细资料”–>”添加/删除数据库”
6) 在”数据库专家”窗口中,展开”项目数据”(代替以前的OleDb),展开”ADO.Net数据集”–“DataSet1”,选择”Stores”表。
7) 将”Stores”表添加到”选定的表”中,点击”OK”
8) 使用PULL模式下的方法,建立一个WebForm
建立一个Crystal Report Viewer 控件
9) 建立一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。
Code Behind 代码:
10) 在Page_Load方法中使用下面的子函数:
VB.Net代码:
Sub BindReport()
Dim myConnection As New SqlClient.SqlConnection()
myConnection.ConnectionString= “server= (local)NetSDK;database=pubs;Trusted_Connection=yes”
Dim MyCommand As New SqlClient.SqlCommand()
MyCommand.Connection = myConnection
MyCommand.CommandText = “Select * from Stores”
MyCommand.CommandType = CommandType.Text
Dim MyDA As New SqlClient.SqlDataAdapter()
MyDA.SelectCommand = MyCommand
Dim myDS As New Dataset1()
‘这就是我们在设计模式上使用的DataSet
MyDA.Fill(myDS, “Stores”)
‘你不得不使用与你前面DataSet相同名字。
Dim oRpt As New CrystalReport1()
’ 水晶 表绑定
oRpt.SetDataSource(myDS)
’ 设定水晶 表的ReportSource
CrystalReportViewer1.ReportSource = oRpt
End Sub
C#代码:
private void BindReport()
{
string strProvider = “Server=(local);DataBase=pubs;UID=sa;PWD=”;
CrystalReport1 oCR = new CrystalReport1();
Dataset1 ds = new Dataset1();
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = “Select * from Stores”;
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,”stores”);
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
}
注意:在上面的代码中,你得注意一下oRpt是”Strongly Typed”的 表文件。如果你需要使用”UnTyped” 表,你得使用ReportDocument对象,然后再调用 表文件。
运行你的程序。
11) 运行你的程序
将 表文件导出成为其它格式
你能够将 表文件导出成为下列格式:
1. PDF (Portable Document Format)
1. 2. DOC (MS Word Document)
2. 3. XLS (MS Excel Spreadsheet)
3. 4. HTML (Hyper Text Markup Language – 3.2 or 4.0 compliant)
4. 5. RTF (Rich Text Format)
使用Pull模式导出 表
当导出使用Pull模式创建的文件时,水晶 表准确地打开所需要的数据,下面是执行导出功能的代码:
C#代码:
VB.Net代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myReport As CrystalReport1 = New CrystalReport1()
‘注意:这里我们建立一个strong-typed的水晶 表实例。
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions()
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
’ 导出成为其它文件时也需要这个选项
’ 如Microsoft Exchange, MAPI等.
myReport.ExportOptions.ExportFormatType = CrystalDecisions. [Shared].ExportFormatType.PortableDocFormat
‘这里我们导出成为.pdf格式文件,你也能选择上面的其它类型文件
DiskOpts.DiskFileName = “c:Output.pdf”
‘如果你不指定确切的目录,那么文件就会保存到[Windows]System32目录中去了
myReport.ExportOptions.DestinationOptions = DiskOpts
‘水晶 表文件不包含直接的FileName属性,因此你不能直接指定保存的文件名
‘所以你不得不使用DiskFileDestinationOptions对象,设置它的DiskFileName属性
‘为你想要的路径,最后将水晶 表的DestinationsOptions属性指定为上面的DiskFileDestinationOption
myReport.Export()
‘上面的代码将完成导出工作。
End Sub
使用PUSH模式导出水晶 表
当导出的 表是由PUSH模式建立的时,第一步就是通过编程建立连接并组装DataSet,设置 表的的SetDataSource属性。再下面的步骤就有Pull模式一样的了。
[/HTML]
.NET环境下水晶 表使用总结
水晶 表是一个优秀的 表开发工具,本人在开发通用管理系统的时候,所有 表都使用水晶 表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶 表使用手记呈现给大家。
一、在使用自带的水晶 表时,请注册,否则只能使用30次
水晶 表注册码
注册 :6707437608
密码:AAP5GKS0000GDE100DS
二、使用CrystalReportViewer进行预览
CrystalReportViewer控件允许在应用程序中查看 Crystal Report。ReportSource 属性用于设置要查看哪个 表。该属性设置之后, 表显示在查看器中。 表源可以是ReportDocument、 表文件的路径,也可以是强类型 表。
-
打开”工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。
-
通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。
-
当运行应用程序时, 表将显示在查看器中。
三、创建新 表
-
指向”添加”,单击”添加新项”。
-
在”添加新项”对话框中,从”模板”区域选择 Crystal Report,将 表命名为rptClient,单击”打开”。
-
在 Crystal Report 库中,选择下列选项之一:
· 使用 表专家 – 指导您完成 表的创建过程,并将您的选择添加到 Crystal Report Designer。
· 作为空白 表 – 打开 Crystal Report Designer。
· 来自于现有的 表 – 创建新 表,它与指定的另一 表设计相同。
注意 Crystal Report 库包含许多专家,可以指导您完成数个特定类型 表的创建工作。您可能希望使用专家来创建最初的 表,以确定哪种 表构造方法适合您的需要。
- 单击”确定”按钮。
如果选择使用” 表专家”,便会出现” 表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成” 表专家”选项卡界面上的操作,然后单击”完成”来访问 Crystal Report Designer 和您的 表
四、是否需要动态设置数据源/p>
Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。
拉和推模型
为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型
在拉模型中,驱动程序将连接到数据库并根据需要将数据”拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型
相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与 表中的字段匹配的记录集或数据集,并且将该对象传递给 表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。
四、从 ADO.NET 数据集制作 表
从数据库创建数据集对象
- 在项目中新建一个架构文件:
a. 在解决方案资源管理器中,右击项目名,指向”添加”,然后单击”添加新项”。
b. 在”添加新项”对话框的”类别”区域,展开文件夹,然后选择”数据”。
c. 在”模板”区域选择”数据集”。
d. 接受默认名称 Dataset1.xsd。
这就创建了一个新的架构文件 (Dataset1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在 ADO.NET 数据集设计器中。
- 指定数据库位置:
a. 在服务器资源管理器中,右击”数据连接”并选择”添加连接”。
b. 在”数据链接属性”对话框中,单击”提供程序”选项卡,然后选择一个提供程序(例如 Microsoft OLE DB Provider for SQL Server)。
c. 单击”连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。
d. 单击”确定”按钮。
此时,您的数据库及其表和字段就出现在服务器资源管理器的”数据连接”节点下面。
- 在解决方案资源管理器中,双击 Dataset1.xsd (如果它尚不是活动视图)。
Dataset1.xsd 现在应显示在”数据集”选项卡中。
-
若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到 Dataset1.xsd 的”数据集”选项卡上。
-
单击”保存 Dataset1.xsd”来保存”Dataset1.xsd”文件。
-
在”生成”菜单上,单击”生成”为项目生成数据集对象。
ADO.NET 数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的”数据库专家”从 ADO.NET 数据集对象添加表。
请在使用” 表专家”创建新 表时调用”数据库专家”。或者,要从一个已经使用 ADO.NET 建立好的 表中访问”数据库专家”,请在 Report Designer 中右击,指向”数据库”,然后单击”添加/删除数据库”。
将 表连接到 ADO.NET 数据集对象
-
在”数据库专家”中,展开”项目数据”文件夹。
-
展开”ADO.NET 数据集”文件夹。
-
选择所需数据集对象。
例如,如果当时使用的是从项目”WindowsApplication1”的架构文件”Dataset1.xsd”中生成的数据集对象,则应该选择”WindowsApplication1.Dataset1”。
- 选择要向 表中添加的表,和使用其他数据源一样。
五、动态改变数据源的代码
注意 FillDataSet 方法可连接到指定的数据库,提取数据,然后断开数据库连接。如果您希望将数据库中的多个表添加到 表中,请使用 SQL JOIN 语句将这些表联接在一起;然后在 FillDataSet 方法中指定一个结果表
六、创建主从 表
在 表中,有许多 表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种 表可利用其分组功能实现,
-
新建一个工程
-
往FORM1中添加一个CrystalReportViewer控件
-
在服务噐资源管理器中连接到SQL SERVER 2000上的Northwind数据库
-
添加一个数据集Dataset1,将服务器资源管理器中的Orders和 Order Details加入到数据集中。
-
添加一个水晶 表,使用 表专家,在项目数据中选择”ADO.NET数据集”,插入表Orders和 Order Details,”链接”中是关联字段的链接,在”字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表OrdersID字段,总计,图表,选择(可进行筛选),样式(可设置 表标题),可自行设置。设置完后,点击完成。
-
在 表设计器中调整需要显示的字段的位置、宽度等。
-
在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
8、运行程序
七、用程序改变 表中text的文本
代码如下:
总结:水晶 表具有非常强大的功能,还可进行导出WORD、EXCEL、RTF等文件,还可生成复杂、漂亮图表,是进行WEB和WINDOWS 表开发的利器。
(此文部分资料来自MSDN)
Author:李洪根
E-MAIL:lihonggen0@163.com
CSDN – 专家门诊 – .NET技术 ASP.NET问题
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 保存 | 关闭窗口
主 题: 有关水晶 表的使用经验和资料总结,欢迎各位使用过水晶 表的同仁把自己在使用过程中的总结、经验、体会同大家共享!!
作 者: foxtoo (阿里巴巴和四十大盗)
等 级:
信 誉 值: 100
所属论坛: .NET技术 ASP.NET
问题点数: 0
回复次数: 56
发表时间: 2003-6-10 23:04:39
资料:
Asp.Net中使用水晶 表(上)
www.dotnet8.com 2002-9-6 DotNet吧
[HTML]在我们对VS.Net中的水晶 表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。一周以后,在阅读了大量的”HOWTO”文档之后,我们成功地将一些简单的 告加入到了我们的Asp.net程序中,并得到了一些小决窍。
这篇文章教你如何在.Net Web应用中使用水晶 表,也可以让你在学习过程中少走一些弯路。为了得到最好的效果,读者最好需要有一些基础的Asp.Net访问数据库的知识以及使用VS.Net的开发经验。
简介
水晶 表可以由很多的方法得到,其中一个就是使用VS.Net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用VS.Net开发.Net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在VS.Net中了。
优点:
VS.Net水晶 表有下面一些主要的优点:
快速的 表开发
能够导出成为复杂的交互性图表
可以与其它控件一起在WebForm中使用
能够动态地将 表导出成为.pdf,.doc,xls,html,rtf等多种格式
结构:
一些组件组成了水晶 表的二层结构,需要的Web应用有:
客户端 :
客户端仅需要一个可以访问嵌入aspx页面 表的游览器就可以了
服务器 :
– 水晶 表引擎(Crystal Report Engine (CREngine.dll))
通过它可以完成一些任务,如在 告文件中合并数据,转换 告为其它格式等。也正是因为 告引擎的作用,才可以将Asp.Net中的水晶 表转换成为普通HTML格式
– 水晶 表设计器(Crystal Report Designer (CRDesigner.dll))
水晶 表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子 表等。
– .rpt 表文件
执行 表中的第一步就是在水晶 表设计器接口创建此 表,在默认安装中微软已经提供了一些现成的.rpt例子。
– Data Source
.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶 表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到 表文件。
– 水晶 表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))
水晶 表查看控件是一个WebForm控件,可以将它看成是一个在.aspx页面中存放 表的容器。 注意:在一些复杂的操作中, 表服务器与Web服务器可能不在同一物理主机上,Web服务器将HTTP请求传送到 表服务器上去。水晶 表也可以当做WebService来执行。
执行模式
水晶 表取数据可以使用下面的方法实现:
– Pull 模式:
被请求时,水晶 表直接根据指定的驱动连接数据库然后组装这些数据。
– Push 模式 :
此时开发表不得不自己编写代码连接数据并组装DataSet,同时将它传送至 表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用 表性能最大化。
表类型:
水晶 表设计器能够直接包含 表至工程也能够使用独立的 表对象。
– Strongly-typed 表 :
当你将 表文件加入到项目中去时,它就变成了一个了” strongly-typed” 表。在这些情况下,你将拥有直接创建 表的对象的权力,这将减少一些代码并且能够提供一些性能。
– Un-Typed 表 :
这里的 表并不直接包含在项目中,因此称为’un-typed’ 表。在这种情况下,你不得不使用水晶 表的”ReportDocuemt”对象建立一个实例,并且”手动”地凋用 表。
其它注意事项
– 尽管水晶 表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。
– VS.Net中的水晶 表如果没有注册,那么它只能使用30次,30次后,”保存”功能就不能再使用了。为了避免这个,你不是不在 http://www.crystaldecisions.com/这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持)
– 默认安装的水晶 表只能支持5个用户,为了支持更多的用户,你不得不在 http://www.crystaldecisions.com/中购买许可证。
让我们感受一下----在Asp.net中使用一个现成的水晶 表文件
1) 从WebForm工具栏中拖动水晶 表查看器控件(Crystal Report Viewer)至.aspx页面中。
2) 调出水晶 表查看器控件的属性窗口
3) 点击[…]按钮查看”Data Binding”属性,并弹出了DataBinding窗口。
4) 从左边的”Bindable属性”区中选择”Report Source”
5) 选中”自定义绑定表达式”单选按钮,在右边的底部的窗口中指定.rpt文件的文件名和路径,例如:”C:Program FilesMicrosoft Visual Studio.NETCrystal ReportsSamplesReportsGeneral BusinessWorld Sales Report.rpt”,然后”确定”
注意:文件”World Sales Report.rpt”文件是在VS.Net安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。
上面的步骤中实际上是插入了下面这些代码至Asp.Net文件中:
以及:
[/HTML]
回复人: foxtoo(阿里巴巴和四十大盗) ( ) 信誉:100 2003-6-10 23:04:53 得分:0
Asp.Net中使用水晶 表(中)
www.dotnet8.com 2002-9-6 DotNet吧
[HTML]使用Pull模式
我们将通过下面的这些步骤来通过Pull模式来执行水晶 表
1.首先创建rpt文件,并使用水晶 表设计接口设置一些必须的数据连接。
2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
3. 在代码中调用DataBind方法。
创建 .rpt 文件:
1) 在右击”解决方案游览器”,在弹出的菜单中选择”添加”--”添加新项”-->”Crystal Report”
2) 在”Crystal Report 库”中选择”作为空白 表”单选按钮,最后单击”确定”。
3)这里将弹出水晶 表设计器。
4) 右击 表中的”详细资料区”,选择”数据库”->”添加/删除数据库…”
5) 在弹出的”数据库专家”中,扩展”OLE DB(ADO)”选项,此时会弹出另外一个”OLE DB(ADO)”窗口。
6) 在 “OLE DB (ADO)” 弹出窗口中,选择 “Microsoft OLE DB Provider for SQL Server” 然后 “Next”
13) 保存,这样我们就有了一个水晶 表文件。
创建 CrystalReportViewer 控件
14) 回到前面的WebForm中,拖放一个Crystal Report Viewer控件到页面中去。
15) 调出Crystal Report Viewer控件的属性窗口,选择”DataBindings”区点击[…]
16) “Crystal Report Viewer 数据绑定窗口”中,在右边的”可绑定属性”中选择”ReportSource”,并选择右下角的”自定义绑定表达式”中指定.rpt文件路径。
17) 此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的 表文件的预览。
注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
Code Behind 程序设计
18) 在Page_Load方法中调用DataBind方法。
执行你的程序
19) 创建并运行你的程序!
您现在就可以直接在Web页面中使用水晶 表内置的一些功能,如页面导航,缩放等。
[/HTML]
Asp.Net中使用水晶 表(下)
www.dotnet8.com 2002-9-6 DotNet吧
[HTML]我们采用下面的几步使用Push模式执行水晶 表:
1. 设计一个DataSet
2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。
3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
4. 在代码中访问数据库并把数据存入DataSet
5. 调用DataBind方法。
设计一个DataSet
1) 右击”解决方案浏览器”,选择”添加”–”添加新项”–>”数据集”
2) 从”服务器资源管理器”中的”SQL Server”中拖放”Stores”表(位于PUBS数据库中)。
3) 此时在数据集中就会有一个Stores表的结构图。
- .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
创建 .rpt 文件 :
4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
5)建立.rpt文件之后,右击”详细资料”–>”添加/删除数据库”
6) 在”数据库专家”窗口中,展开”项目数据”(代替以前的OleDb),展开”ADO.Net数据集”–“DataSet1”,选择”Stores”表。
7) 将”Stores”表添加到”选定的表”中,点击”OK”
8) 使用PULL模式下的方法,建立一个WebForm
建立一个Crystal Report Viewer 控件
9) 建立一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。
Code Behind 代码:
10) 在Page_Load方法中使用下面的子函数:
VB.Net代码:
Sub BindReport()
Dim myConnection As New SqlClient.SqlConnection()
myConnection.ConnectionString= “server= (local)NetSDK;database=pubs;Trusted_Connection=yes”
Dim MyCommand As New SqlClient.SqlCommand()
MyCommand.Connection = myConnection
MyCommand.CommandText = “Select * from Stores”
MyCommand.CommandType = CommandType.Text
Dim MyDA As New SqlClient.SqlDataAdapter()
MyDA.SelectCommand = MyCommand
Dim myDS As New Dataset1()
‘这就是我们在设计模式上使用的DataSet
MyDA.Fill(myDS, “Stores”)
‘你不得不使用与你前面DataSet相同名字。
Dim oRpt As New CrystalReport1()
’ 水晶 表绑定
oRpt.SetDataSource(myDS)
’ 设定水晶 表的ReportSource
CrystalReportViewer1.ReportSource = oRpt
End Sub
C#代码:
private void BindReport()
{
string strProvider = “Server=(local);DataBase=pubs;UID=sa;PWD=”;
CrystalReport1 oCR = new CrystalReport1();
Dataset1 ds = new Dataset1();
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = “Select * from Stores”;
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,”stores”);
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
}
注意:在上面的代码中,你得注意一下oRpt是”Strongly Typed”的 表文件。如果你需要使用”UnTyped” 表,你得使用ReportDocument对象,然后再调用 表文件。
运行你的程序。
11) 运行你的程序
将 表文件导出成为其它格式
你能够将 表文件导出成为下列格式:
1. PDF (Portable Document Format)
1. 2. DOC (MS Word Document)
2. 3. XLS (MS Excel Spreadsheet)
3. 4. HTML (Hyper Text Markup Language – 3.2 or 4.0 compliant)
4. 5. RTF (Rich Text Format)
使用Pull模式导出 表
当导出使用Pull模式创建的文件时,水晶 表准确地打开所需要的数据,下面是执行导出功能的代码:
C#代码:
VB.Net代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myReport As CrystalReport1 = New CrystalReport1()
‘注意:这里我们建立一个strong-typed的水晶 表实例。
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions()
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
’ 导出成为其它文件时也需要这个选项
’ 如Microsoft Exchange, MAPI等.
myReport.ExportOptions.ExportFormatType = CrystalDecisions. [Shared].ExportFormatType.PortableDocFormat
‘这里我们导出成为.pdf格式文件,你也能选择上面的其它类型文件
DiskOpts.DiskFileName = “c:Output.pdf”
‘如果你不指定确切的目录,那么文件就会保存到[Windows]System32目录中去了
myReport.ExportOptions.DestinationOptions = DiskOpts
‘水晶 表文件不包含直接的FileName属性,因此你不能直接指定保存的文件名
‘所以你不得不使用DiskFileDestinationOptions对象,设置它的DiskFileName属性
‘为你想要的路径,最后将水晶 表的DestinationsOptions属性指定为上面的DiskFileDestinationOption
myReport.Export()
‘上面的代码将完成导出工作。
End Sub
使用PUSH模式导出水晶 表
当导出的 表是由PUSH模式建立的时,第一步就是通过编程建立连接并组装DataSet,设置 表的的SetDataSource属性。再下面的步骤就有Pull模式一样的了。
[/HTML]
Top
回复人: foxtoo(阿里巴巴和四十大盗) ( ) 信誉:100 2003-6-10 23:06:08 得分:0
.NET环境下水晶 表使用总结
水晶 表是一个优秀的 表开发工具,本人在开发通用管理系统的时候,所有 表都使用水晶 表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶 表使用手记呈现给大家。
一、在使用自带的水晶 表时,请注册,否则只能使用30次
水晶 表注册码
注册 :6707437608
密码:AAP5GKS0000GDE100DS
二、使用CrystalReportViewer进行预览
CrystalReportViewer控件允许在应用程序中查看 Crystal Report。ReportSource 属性用于设置要查看哪个 表。该属性设置之后, 表显示在查看器中。 表源可以是ReportDocument、 表文件的路径,也可以是强类型 表。
-
打开”工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。
-
通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。
-
当运行应用程序时, 表将显示在查看器中。
三、创建新 表
-
指向”添加”,单击”添加新项”。
-
在”添加新项”对话框中,从”模板”区域选择 Crystal Report,将 表命名为rptClient,单击”打开”。
-
在 Crystal Report 库中,选择下列选项之一:
· 使用 表专家 – 指导您完成 表的创建过程,并将您的选择添加到 Crystal Report Designer。
· 作为空白 表 – 打开 Crystal Report Designer。
· 来自于现有的 表 – 创建新 表,它与指定的另一 表设计相同。
注意 Crystal Report 库包含许多专家,可以指导您完成数个特定类型 表的创建工作。您可能希望使用专家来创建最初的 表,以确定哪种 表构造方法适合您的需要。
- 单击”确定”按钮。
如果选择使用” 表专家”,便会出现” 表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成” 表专家”选项卡界面上的操作,然后单击”完成”来访问 Crystal Report Designer 和您的 表
四、是否需要动态设置数据源/p>
Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。
拉和推模型
为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型
在拉模型中,驱动程序将连接到数据库并根据需要将数据”拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型
相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与 表中的字段匹配的记录集或数据集,并且将该对象传递给 表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。
四、从 ADO.NET 数据集制作 表
从数据库创建数据集对象
- 在项目中新建一个架构文件:
a. 在解决方案资源管理器中,右击项目名,指向”添加”,然后单击”添加新项”。
b. 在”添加新项”对话框的”类别”区域,展开文件夹,然后选择”数据”。
c. 在”模板”区域选择”数据集”。
d. 接受默认名称 Dataset1.xsd。
这就创建了一个新的架构文件 (Dataset1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在 ADO.NET 数据集设计器中。
- 指定数据库位置:
a. 在服务器资源管理器中,右击”数据连接”并选择”添加连接”。
b. 在”数据链接属性”对话框中,单击”提供程序”选项卡,然后选择一个提供程序(例如 Microsoft OLE DB Provider for SQL Server)。
c. 单击”连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。
d. 单击”确定”按钮。
此时,您的数据库及其表和字段就出现在服务器资源管理器的”数据连接”节点下面。
- 在解决方案资源管理器中,双击 Dataset1.xsd (如果它尚不是活动视图)。
Dataset1.xsd 现在应显示在”数据集”选项卡中。
-
若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到 Dataset1.xsd 的”数据集”选项卡上。
-
单击”保存 Dataset1.xsd”来保存”Dataset1.xsd”文件。
-
在”生成”菜单上,单击”生成”为项目生成数据集对象。
ADO.NET 数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的”数据库专家”从 ADO.NET 数据集对象添加表。
请在使用” 表专家”创建新 表时调用”数据库专家”。或者,要从一个已经使用 ADO.NET 建立好的 表中访问”数据库专家”,请在 Report Designer 中右击,指向”数据库”,然后单击”添加/删除数据库”。
将 表连接到 ADO.NET 数据集对象
-
在”数据库专家”中,展开”项目数据”文件夹。
-
展开”ADO.NET 数据集”文件夹。
-
选择所需数据集对象。
例如,如果当时使用的是从项目”WindowsApplication1”的架构文件”Dataset1.xsd”中生成的数据集对象,则应该选择”WindowsApplication1.Dataset1”。
- 选择要向 表中添加的表,和使用其他数据源一样。
五、动态改变数据源的代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!