📄 csdn技术中心 快速掌握 crystalreport for _net.htm
字号:
color=#ffffff>标题</FONT></TD>
<TD><B> <SPAN
id=ArticleTitle1_ArticleTitle1_lblTitle>快速掌握 CrystalReport for
.net</SPAN></B> 选择自 <A
id=ArticleTitle1_ArticleTitle1_AuthorLink
href="http://dev.csdn.net/user/billzhangmingming">billzhangmingming</A>
的 Blog </TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=16><FONT
color=#ffffff>关键字</FONT></TD>
<TD width=500> <SPAN
id=ArticleTitle1_ArticleTitle1_lblKeywords>快速掌握 CrystalReport
for .net</SPAN></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=16><FONT
color=#ffffff>出处</FONT></TD>
<TD> <SPAN
id=ArticleTitle1_ArticleTitle1_lblSource></SPAN></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width=10></TD>
<TD><SPAN id=ArticleContent1_ArticleContent1_lblContent>
<P>
几乎在所有的应用程序中报表都是程序员头疼的问题。在.net环境下包含了功能强大的报表工具: Crystal
Report。它能很好的与数据库交互,做出各种漂亮的报表和分析图表(具体功能下边文章会更详细的介绍).<BR>
事实上,今天的这篇文章是我前段时间为一家公司的讲课的课件,经过改版发表了出来希望能对所有在.net环境下开发报表的程序员一些帮助。由于我公司是做电子政务系统,所以严重的“中国式报表”巨多,所以我为为公司自己封装了一个报表控件,实现了报表单据中数据的录入、删除、显示、打印等功能。如有朋友预见类似的问题,我很乐意与你交流,共同学习。<BR>e-mail:billzhangmingming@sina.com.cn<BR>
<BR>
从1993年开始,Crystal Report 就是Visual Studio 套件中的一部分。目前实际上已成为Visual
Studio.NET 中的报表标准,在Windows
报表编写领域中居于领先地位,推动着Web报表的未来发展。<BR>
最新的Visual Studio.NET 以集成开发环境(IDE)中整和了Crystal
Report9.0,从而增强了Visual Studio.NET 的开发功能, Crystal Report
为开发人员提供了尽可能的API。</P>
<P>
Crystal Report for .NET
的功能简介<BR> 通过将Crystal
Report 的报表处理功能整和到自己的数据库应用程序中,应用程序和Web开发人员可以节省开发时间来满足用户的需求。Crystal
Report
支持大多数流行的开发语言,可以方便的在任何应用程序中添加报表。<BR>
不论是IT行业的站点管理员,还是金融业、电信业的数据库管理员,Crystal Report
都堪称是一个功能强大的工具,它可以帮助每个人对数据进行分析和解析。<BR> 具体来说,Crystal
Report的功能有以下几点:<BR> **全面的数据库访问:<BR> Crystal Report
中包括了超过35中数据源驱动,可以访问一种XML、企业和关系型数据库。<BR> **广泛的设计格式与设计:<BR>
通过Crystal
Report,用户可以将数据库转换为高度交互性内容。可以从100多中格式选项中进行选择、包括参数、映射、<BR>
交叉表和超级链接、用以强化报表的冲击力。<BR> **强大的图表设计功能:<BR> Crystal Report
可以在报表中包含多彩的、易读的图表(提供了非常丰富的报表类型,如:条形图、折线图、面积图、<BR>
饼图、干特图、股票图等)。<BR> **灵活的应用集成技术:<BR> Crystal Report
带有灵活的Java、COM和.NET SDK,以及可内嵌的Report Application
Server,可将报表与企业Web应用<BR> 紧密地集成在一起。通过使用Crystal Report
的“零”客户端浏览器控制,能够为最终端拥护提供丰富的报表交互、创建<BR>
和修改功能。<BR> **强大的报表导出:<BR> Crystal Reprort
的所有的报表都可以导出多种不同的格式:包括XML、PDF、HTML、和Microsoft
Excel。<BR> <BR> Crystal Report
设计器的布局<BR> **字段资源管理器:<BR>
列出该报表所有的字段,如:使用的数据库字段、参数字段、公式字段等。可以在此修改和删除字段对象。<BR> **主报表窗口:<BR>
用来在报表窗口中显示主报表。对于包含子报表的报表,有主报表窗口和对每个的深化(通过双击)的子报表有一个子报<BR>
表窗口。可以通过右击报表窗口的任何空白位置来启动报表快捷菜单。<BR> **水晶报表主工具栏:<BR>
包括记录选择、分类和文本对象格式化图标。可以对整个工具栏移动或改变大小。<BR> **水晶报表插入工具栏:<BR>
可以插入汇总字段、组、子报表、图表和图片的图标。也可以在Crystal
Report工具栏中单击鼠标来选择“插入”。<BR> <BR>
Crystal Report 的具体实例<BR> **Crystal Report
viewer(水晶报表查看器)<BR> <BR> Crystal Report Viewer是在Visual
Studio.NET中Windows 应用程序来访问和查看水晶报表的Windows窗体控件。类似其<BR>
他的Windows 窗体控件,增加Windows 窗体查看器可以非常方便的从Visual
Studio.NET工具箱中拖动水晶报表查看器控件到Windows窗体设计试图。之后再指定水晶报表查看器中的水晶报表。<BR> ***一个使用Crysatl
Report Viewer创建报表的Demo:<BR> 要在 Visual Basic 或 C# 项目中向 Windows
窗体添加 Windows 窗体 Viewer,请执行下列操作: <BR> 打开“工具箱”,并将一个
CrystalReportViewer 拖到窗体上。 <BR> 通过拖放操作将 Windows
窗体查看器调整到希望的大小并将其移动到所需位置。 <BR> 当运行应用程序时,报表将显示在查看器中。 <BR>
与“工具箱”中的任何其他控件一样,如果想向 Windows 窗体查看器控件添加代码,请双击该控件以显示“代码”视图。
<BR> 接下来,将报表绑定到 Windows 窗体查看器。 <BR>
具体关于本Demo,我在Wiki上写了有关如何操作的一篇非常详细的文章,建议大家去看看。<BR>
<BR> **ReportDocument对象简介:<BR>
Crystal Reports 对象模型的顶级是 ReportDocument 对象。ReportDocument
包含与报表对接及自定义报表所需的所有 属性和方法。您既可使用其 Load 方法打开报表文件,也可为其分配一个强类型报表。
<BR> 要使用 ReportDocument,您首先必须引用
CrystalDecisions.CrystalReports.Engine 命名空间 (可在
CrystalDecisions.CrystalReports.Engine.dll
中找到)。如果您已将报表插入应用程序中,则会自动添加此引用。<BR>
<BR> ***一个具体使用ReportDocument对象创建动态加载报表的Demo:<BR> <BR>
向 CrystalDecisions.CrystalReports.Engine 添加引用 <BR> 在代码编辑器中打开
Form1.cs。 <BR> 在Form1窗体上添加一个Button.<BR> 向 Form1.cs
添加下列命名空间: <BR> using
CrystalDecisions.CrystalReports.Engine;<BR> 创建一个报表对象,作为
Form1() 中的公共 ReportDocument 变量: <BR> public ReportDocument
oRpt=null;<BR> 在函数 button1_Click() 中,使用“报表文档”对象加载
MyReport.rpt,并将该对象绑定到 Windows 窗体查看器:
<BR> <FONT
style="BACKGROUND-COLOR: #d3d3d3">
private void button1_Click(object sender, System.EventArgs
e)<BR>
{<BR>
rpt=new ReportDocument();<BR>
rpt.Load("..\\..\\MyReport.rpt");<BR>
crystalReportViewer1.ReportSource=rpt;<BR> }</FONT><BR>
<BR> <BR>
**使用DataSet创建主从表报表的Demo:<BR>
在报表中,有许多表是主从结构,比如:订单与订单细节,每个订单是一个“订单”表中的一条记录,而其细节是另个一
个“订单 细节”表中的多条记录,两个表通过一个字段"订单ID"关联起来,这种报表可利用其分组功能实现,下面对其进行具体的介绍。<BR>
<BR> 在From1.cs上添加“CrystalReportViewer”控件。<BR>
在“解决方案资源管理器”中,右击项目,指向“添加”,选择“数据集”,单击确定。<BR>
在“服务器资源管理”器中,添加连接,本示例使用"Crystal Report for
.NET"中的示例数据库Xtreme.mdb,默认的安装<BR> 目录在<BR> “F:Program
Files\Microsoft Visual Studio.net\Crystal
Reports\Samples\Database\chs”下,单击确定。<BR>
将“订单”表和“订单细节”表拖到”DataSet“中。<BR> 新建一个Crystal
Report文件,起名为"MyReport".<BR>
使用报表专家,在”项目数据“中选择”ADO。NET数据集“,插入”订单“和”订单明细“表,在字段选择器上选择要在报表上<BR>
显示的数据<BR>
字段。有两个字段是必须的({客户.客户ID}和{产品细节.产品ID})。在”组“选项卡中选择分组依据为”订单“表的”订单ID“。<BR>
单击”完成“。<BR> 回到Form1.cs下进行编码。<BR>
在Form1的命名空间的开始地方输入:<BR><FONT
style="BACKGROUND-COLOR: #d3d3d3"> using
System.Data.OleDb;<BR></FONT> 在Form1的类定义开始地方输入:<BR>
<FONT style="BACKGROUND-COLOR: #d3d3d3">private MyReport
report=null;</FONT><BR> 在Form1_Load()中输入:<BR><FONT
style="BACKGROUND-COLOR: #d3d3d3"> report=new
MyReport();<BR> Dataset1 dataSet=new
Dataset1();<BR> OleDbConnection conn=new
OleDbConnection<BR>
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\Visual
Studio.net\\Crystal
Reports\\Samples\\Database\\chs\\Xtreme.mdb");<BR>
OleDbDataAdapter oleAdapter=new OleDbDataAdapter("SELECT * FROM
订单",conn);<BR>
oleAdapter.Fill(dataSet,"订单");<BR> OleDbDataAdapter
oleDetailsAdapter=new OleDbDataAdapter("SELECT * FROM
订单细节",conn);<BR>
oleDetailsAdapter.Fill(dataSet,"定单细节");<BR>
report.SetDataSource(dataSet);<BR>
crystalReportViewer1.ReportSource=report;<BR></FONT>
产生两个OleDbDataAdapter类的对象,并分别使用填充Fill方法可以连接到被指定的数据库获取数据。<BR>
<BR> <BR> <BR> <BR> **图表: <BR>
Crystal Reports
使您可以在报表中包含复杂的、多彩的图表。绘制图表不仅是一种表示数据的方法,也是一种分析工具。<BR> 用户可以在图表或图表的图例上深化以获取详细信息。<BR> <BR>
可以根据以下内容绘制图表:<BR> 摘要和小计字段 <BR>
详细信息、公式和运行总和字段 <BR> 交叉表摘要<BR> <BR>
**如何在报表中插入图表的具体步骤:<BR> 在 Report Designer
中右击,指向“插入”,并单击“图表”。 <BR> 在“类型”选项卡中,选择图表类型。 <BR>
如果希望“图表专家”使用“坐标轴”和“选项”选项卡上的默认选项,请选择“自动设置图表选项”。 <BR> 单击“数据”选项卡。
<BR> 在“位置”区域,指定图表在报表中出现的频率,然后单击“页眉”或“页脚”指定放置图表的位置。 <BR>
在“布局”区域,选择图表布局。 <BR> 在“数据”区域,指定要作为条件使用的数据库字段。 <BR>
如果“坐标轴”和“选项”选项卡出现,则可以自定义某些图表属性,如轴的缩放比例、图例和数据点。 <BR>
单击“文本”选项卡。接受默认标题信息或将新标题添加到图表。 <BR> 单击“确定”按钮。 <BR>
<BR> **使用公式<BR> 公式概述:<BR>
在许多情况下,报表所需的数据以存在与数据库表字段中。例如:若要准备一份订单列表,应将适当的字段放置在表内。<BR>
但是,有时需要在报表中放置不存在与任何数据字段中的数据。在这种情况下,便需要创建公式。例如:若要计算处理每<BR>
份订单所需花费的天数,则需要一个可确定的订购日期和发货日期之间天数的公式。利用Crystal
Report可以轻松地创建<BR> 此类公式。<BR> <BR> 使用“公式编辑器”创建和编辑公式。
<BR>
当通过右击“字段资源管理器”中的“公式字段”并选择“新建”来编辑现有的公式字段或创建新的公式字段时,<BR>
出现该对话框。在为公式命名之后即会出现该对话框。</P>
<P> **子报表:<BR>
子报表是报表中的报表。使用子报表,可以
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -