NET环境下水晶报表使用总结

时间:2024.5.13

.NET环境下水晶报表使用总结

水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。

一、在使用自带的水晶报表时,请注册,否则只能使用30次

水晶报表注册码

注册号:6707437608

密码:AAP5GKS0000GDE100DS

二、使用CrystalReportViewer进行预览

CrystalReportViewer控件允许在应用程序中查看 Crystal Report。

ReportSource 属性用于设置要查看哪个报表。该属性设置之后,报表显示在查看器中。报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。

1. 打开“工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。

2. 通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。

3. 当运行应用程序时,报表将显示在查看器中。

三、创建新报表

1. 指向“添加”,单击“添加新项”。

2. 在“添加新项”对话框中,从“模板”区域选择 Crystal Report,将报表命名为rptClient,单击“打开”。

3. 在 Crystal Report 库中,选择下列选项之一:

· 使用报表专家 — 指导您完成报表的创建过程,并将您的选择添加到 Crystal Report Designer。

· 作为空白报表 — 打开 Crystal Report Designer。

· 来自于现有的报表 — 创建新报表,它与指定的另一报表设计相同。 注意 Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。

4. 单击“确定”按钮。

如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问 Crystal Report Designer 和您的报表

四、是否需要动态设置数据源?

Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。

拉和推模型

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

拉模型

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

推模型

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

四、从 ADO.NET 数据集制作报表

从数据库创建数据集对象

1. 在项目中新建一个架构文件:

a. 在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”。

b. 在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”。

c. 在“模板”区域选择“数据集”。

d. 接受默认名称 Dataset1.xsd。

这就创建了一个新的架构文件 (Dataset1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在 ADO.NET 数据集设计器中。

2. 指定数据库位置:

a. 在服务器资源管理器中,右击“数据连接”并选择“添加连接”。 b. 在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序(例如 Microsoft OLE DB Provider for SQL Server)。 c. 单击“连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。

d. 单击“确定”按钮。

此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面。

3. 在解决方案资源管理器中,双击 Dataset1.xsd (如果它尚不是活动视图)。

Dataset1.xsd 现在应显示在“数据集”选项卡中。

4. 若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到 Dataset1.xsd 的“数据集”选项卡上。

5. 单击“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。

6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。

ADO.NET 数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 ADO.NET 数据集对象添加表。

请在使用“报表专家”创建新报表时调用“数据库专家”。或者,要从一个已经使用 ADO.NET 建立好的报表中访问“数据库专家”,请在 Report Designer 中右击,指向“数据库”,然后单击“添加/删除数据库”。 将报表连接到 ADO.NET 数据集对象

1. 在“数据库专家”中,展开“项目数据”文件夹。

2. 展开“ADO.NET 数据集”文件夹。

3. 选择所需数据集对象。

例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象,则应该选择

“WindowsApplication1.Dataset1”。

4. 选择要向报表中添加的表,和使用其他数据源一样。

五、动态改变数据源的代码

Dim dsdataSet As New DataSet()

Dim oRpt As New rptClient() '已建立的报表rptClient

请读者自行填充数据集dsdataSet

'使用“报表引擎”对象模型将填充的数据集,传递给报表

oRpt.SetDataSource(dsdataSet.Tables(0))

' 将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew

(CrystalReportViewer控件)

rptVew.ReportSource = oRpt

注意 FillDataSet 方法可连接到指定的数据库,提取数据,然后断开数据库连接。如果您希望将数据库中的多个表添加到报表中,请使用 SQL JOIN 语句将这些表联接在一起;然后在 FillDataSet 方法中指定一个结果表

六、创建主从报表

在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现,

1. 新建一个工程

2. 往FORM1中添加一个CrystalReportViewer控件

3. 在服务噐资源管理器中连接到SQL SERVER 2000上的Northwind数据库

4. 添加一个数据集Dataset1,将服务器资源管理器中的Orders和 Order Details加入到数据集中。

5. 添加一个水晶报表,使用报表专家,在项目数据中选择“ADO.NET数据集”,插入表Orders和 Order Details,“链接”中是关联字段的链接,在“字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表

OrdersID字段,总计,图表,选择(可进行筛选),样式(可设置报表标题),可自行设置。设置完后,点击完成。

6. 在报表设计器中调整需要显示的字段的位置、宽度等。

7. 在窗口中添加代码。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim oRpt As New CrystalReport1()

Dim dsdataSet As New Dataset1()

Dim CN As New Data.SqlClient.SqlConnection("data

source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa") CN.Open()

Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from orders", CN)

daOrders.Fill(dsdataSet, "orders")

Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)

daDetails.Fill(dsdataSet, "Order Details")

'使用“报表引擎”对象模型将填充的数据集,传递给报表

oRpt.SetDataSource(dsdataSet)

CrystalReportViewer1.ReportSource = oRpt

End Sub

8、运行程序

七、用程序改变报表中text的文本

代码如下:

Dim GetTextObject As TextObject

' 按名称获取 ReportObject,将其转换为 TextObject,并返回此对象。

GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13") GetTextObject.Text = "XXXX系统"

总结:水晶报表具有非常强大的功能,还可进行导出WORD、EXCEL、RTF等文件,还可生成复杂、漂亮图表,是进行WEB和WINDOWS报表开发的利器。


第二篇:C#.NET下使用水晶报表


1。第一步是添加新项CrystalReport1

2。在CrystalReport1.rpt面页右键选择:”数据库”?”添加/删除数据库”出现下面对话框: 然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框

其中”项目数据”里面的”当前连接”显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB” 中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)

3。字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.

4。回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上。

5。代码

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

在WebForm1.aspx.cs的Form_Load里面添加代码:

TableLogOnInfo logOnInfo = new TableLogOnInfo();

ReportDocument rpdMy0= new ReportDocument();

logOnInfo.ConnectionInfo.ServerName = "NNN";

logOnInfo.ConnectionInfo.Password="dong";

logOnInfo.ConnectionInfo.DatabaseName="Lab";

logOnInfo.ConnectionInfo.UserID = "sa";

String path = Server.MapPath("CrystalReport2.rpt");

rpdMy0.Load(path);

rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

CrystalReportViewer1.ReportSource = rpdMy0;

其中:

TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.

或者,获得数据库的方法改为直接从数据库获得DataSet

using System.Data.SqlClient;

using System.Collections.Specialized;

string strConn=System.Configuration.ConfigurationSettings.AppSettings["DB"].ToString();

using (SqlConnection conn = new SqlConnection(strConn)) {

SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"

DataSet ds=new DataSet();

da.Fill( ds);

CrystalReport1 cr1 = new CrystalReport1();

cr1.SetDataSource( ds);

CrystalReportViewer1.ReportSource = cr1;

}

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

在WebForm1.aspx.cs的Form_Load里面添加代码:

TableLogOnInfo logOnInfo = new TableLogOnInfo();

ReportDocument rpdMy0= new ReportDocument();

logOnInfo.ConnectionInfo.ServerName = "NNN";

logOnInfo.ConnectionInfo.Password="dong";

logOnInfo.ConnectionInfo.DatabaseName="Lab";

logOnInfo.ConnectionInfo.UserID = "sa";

String path = Server.MapPath("CrystalReport2.rpt");

rpdMy0.Load(path);

rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

CrystalReportViewer1.ReportSource = rpdMy0;

其中:

TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里

要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.

或者,获得数据库的方法改为直接从数据库获得DataSet

using System.Data.SqlClient;

using System.Collections.Specialized;

string strConn=System.Configuration.ConfigurationSettings.AppSettings["DB"].ToString();

using (SqlConnection conn = new SqlConnection(strConn)) {

SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"

DataSet ds=new DataSet();

da.Fill( ds);

CrystalReport1 cr1 = new CrystalReport1();

cr1.SetDataSource( ds);

CrystalReportViewer1.ReportSource = cr1;

}

using CrystalDecisions.Shared;

using CrystalDecisions.CrystalReports.Engine;

在WebForm1.aspx.cs的Form_Load里面添加代码:

TableLogOnInfo logOnInfo = new TableLogOnInfo();

ReportDocument rpdMy0= new ReportDocument();

logOnInfo.ConnectionInfo.ServerName = "NNN";

logOnInfo.ConnectionInfo.Password="dong";

logOnInfo.ConnectionInfo.DatabaseName="Lab";

logOnInfo.ConnectionInfo.UserID = "sa";

String path = Server.MapPath("CrystalReport2.rpt");

rpdMy0.Load(path);

rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

CrystalReportViewer1.ReportSource = rpdMy0;

其中:

TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.

或者,获得数据库的方法改为直接从数据库获得DataSet

using System.Data.SqlClient;

using System.Collections.Specialized;

string strConn=System.Configuration.ConfigurationSettings.AppSettings["DB"].ToString();

using (SqlConnection conn = new SqlConnection(strConn)) {

SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);

//strSQL是SQL语言"select * from dbo.table1" DataSet ds=new DataSet();

da.Fill( ds);

CrystalReport1 cr1 = new CrystalReport1(); cr1.SetDataSource( ds);

CrystalReportViewer1.ReportSource = cr1; }

更多相关推荐:
网络部编辑工作报表总结(中山男科小孙)

网络部编辑工作报表总结为期半年的编辑工作还在进行,但仍需一个了解工作进程的目标流程,制作工作报表是最能体现的,故写下网络部对于编辑工作的各方面总结。网络编辑的工作内容(负责镇江中山医院男科方面的工作)企业的工作…

合并财务报表总结1

合并财务报表总结(一)做调整分录1.应享有子公司当期净利润(亏损做反向分录)借:长期股权投资贷:投资收益2.调成本法下分回的投资收益借:投资收益贷:长期股权投资(一定要与权益法在同一个年度冲回的,如果不在同一年…

合并报表总结

合并报表总结【总结】调整分录和抵销分录的模板【专题一】按照权益法调整对子公司的长期股权投资在合并工作底稿中应编制的调整分录为:(1)应享有子公司当期实现净利润的份额借:长期股权投资贷:投资收益对于应承担子公司当…

财务报表总结

在竞争激烈的市场中,在两位老总的正确指导下,我公司上半年销售业绩比去年同期有着大幅度的提升,也是公司突飞猛进的阶段,从而也确定了我公司在西南同行业中的地位。现将我公司xx年上半年财务工作总结如下:一、公司的销售…

专业技术技能人员岗位申报表总结

工作总结20xx年即将过去,本人在南郊热电公司汽机运行岗位工作已8年了。一直以来本人在工作中勤勤恳恳,积极主动,细致到位,团结同志,牢固树立安全生产思想,在安全生产、技术革新、节能降耗、业务培训方面做出积极努力…

合并会计报表总结

合并会计报表主线:确定合并范围→调整→抵消→投资、受资关系(1笔分录)→投资收益、净利润(1笔分录)→应收账款(3笔分录)→存货(3笔分录)→固定资产(无形资产)(4笔分录)→涉及抵消分录的共12笔主要分录,这…

合并财务报表总结

合并财务报表(1)母公司理论①将属于母公司的股东权益视为整个集团的权益,而将“少数股东权益”视为整个企业集团的负债在合并资产负债表中予以列示;②只将属于母公司权益性收益视为整个集团的收益,而对“少数股东收益”视…

财务会计报表总结

财务会计报表总结现金流量表一章也是多数考友感觉较难的一章在学习中我转贴了一些问题拿出来和大家共勉问题资产负债表的编制中应注意哪些问题解答资产负债表是反映企业某一特定日期财务状况的会计报表资产负债表中各项目的数字...

VS20xx水晶报表发布部署总结

VS20xx水晶报表发布部署总结20xx11301322VS20xx水晶报表发布部总结一安装运行时支撑文件如果你安装了VS20xx那么可以找到如下目录CProgramFilesMicrosoftSDKsWind...

史上最好合并报表总结

合并财务报表的合并范围企业合并分为同一控制下企业合并和非同一控制下企业合并前提都要统一母子公司的会计政策和会计期间A非同下对子公司个表的调整以购买日公允价值为基础调整分录报表项目当年1资产负债表公允价值不光涉及...

有关水晶报表的使用经验和总结

有关水晶报表的使用经验和总结AspNetwebform中使用水晶报表这篇文章教你如何在NetWeb应用中使用水晶报表也可以让你在学习过程中少走一些弯路为了得到最好的效果读者最好需要有一些基础的AspNet访问数...

合并报表疑难问题(解题步骤及分录总结)

TopSagecom114943659doc18合并报表疑难问题解题步骤及分录总结合并报表是中级考试中的特大重点也是学习的头号难点学习的方法还是老招搞懂原理理清主线逐点学习也许有些朋友还没弄清楚什么是合并报表通...

报表总结(40篇)