Visual Studio 水晶报表Crystal Reports

c# 同时被 2 个专栏收录
69 篇文章 1 订阅
53 篇文章 0 订阅

20180114 10:43:31 junxingtx 阅读数:992更多

下载插件地址:https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

插件博客地址

https://blog.csdn.net/xzg58753795/article/details/81943416

环境:Visual Studio 2015, C#;

博客转载地址:https://blog.csdn.net/zshuaihua/article/details/25786077

本文主要包含以下内容:

一、ReportViewer使用小例子的完整步骤(新建-设计-编码-调试-结果);

二、ReportViewer使用过程常见问题及关键注意点(仅为本人个人观点);

三、参考资料;

四、心得体会;

===================================================================================================================================


 

一、ReportViewer使用小例子的演示。

1、新建项目。

新建一个Windows窗口程序项目,命名为“Demo"

2、加入ReportViewer控件。

1)在默认出现的Form1.cs[设计]视图中手动调节下Form1窗体的大小,左侧工具箱-->报表-->双击其中的”ReportViewer"

https://img-blog.csdn.net/20140514170505640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 1
 

2)切换至设计窗口,选择ReportVierwer控件右上角黑色小三角,显示“ReportViewer任务,选择在父容器中停靠

https://img-blog.csdn.net/20140514171353968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 2
 

3、添加数据集。

1)在解决方案资源管理器的本项目”Demo“上右键,-->添加-->新建项...。在已安装的模板(左侧)选择数据,在对应的右侧栏中选数据集,并为其命名为”testDataSet.xsd“

https://img-blog.csdn.net/20140514171141671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 3
 

2)在自动显示的testDataSet.xsd窗口空白处右键,-->添加-->数据表。

https://img-blog.csdn.net/20140514171806218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 4
 

3)点击表头为其改名为”testDataTable",并在下一行的空白处右键,-->添加-->列。按快捷键“Ctrl + L”,共建四个列,并将列名自定义修改。(及时保存)

https://img-blog.csdn.net/20140514172010484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEasthttps://img-blog.csdn.net/20140514172052765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 5
 

4、添加报表。

1)同添加数据集相似。在项目名称上右键,-->添加-->新建项...已安装模板中选择”Reporting“,相应右侧选择报表,在下面名称中改为”testReport.rdlc“

https://img-blog.csdn.net/20140514172606234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

(图 6
 

2)在新视图的主体部分(黑色方框内部为主体部分,外部为报表部分)空白处右键,-->插入-->表。

https://img-blog.csdn.net/20140514173012093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

( 7)
 

3)会自动弹出数据集属性对话框,将名称改为”DataSetName"(这个名称很重要,后面代码中要用到,故要记清),数据源选择刚新建的“testDataSet",”可用数据集会自动选择”testDataTable“,"确定

https://img-blog.csdn.net/20140514173123046?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

( 8)
 

4)在testReport.rdlc[设计]视图下,刚建的只有三列,在任一单元格上右键,-->插入列-->靠右。在第一行的表头输入这三列的表头,在第二行的数据行,鼠标移动每个单元格上,点击单元格右上角的图标,选择相应的列。

https://img-blog.csdn.net/20140514173238343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

( 9)
 

5、绑定报表。

返回”Form1.cs[设计]"视图,如图 2类似,这次点击选择报表右侧的下拉条,选择我们新建的报表“demo.testReport.rdlc",全部保存。

https://img-blog.csdn.net/20140514173537437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

( 10)
 

6、添加代码。

查看”Form1.cs“的代码,在Form1_Load()方法中添加代码。代码如下(以下只是Form1_Load()方法的代码,不是全部,添加时需要在using下多加一行)。

[csharp] view plain copy

  1. <span style="font-size:14px;">  using Microsoft.Reporting.WinForms;</span>  

[csharp] view plain copy

  1. <span style="font-size:14px;">  private void Form1_Load(object sender, EventArgs e)  
  2.         {  
  3.             loadReport();  
  4.             this.reportViewer1.RefreshReport();  
  5.         }  
  6.   
  7.         public void loadReport()  
  8.         {  
  9.             DataTable dt = new DataTable();  
  10.             //定义本地数据表的列,名称应跟之前所建的testDataTable表中列相同。  
  11.             dt.Columns.Add("Column1"typeof(string));  
  12.             dt.Columns.Add("Column2"typeof(string));  
  13.             dt.Columns.Add("Column3"typeof(string));  
  14.             dt.Columns.Add("Column4"typeof(string));  
  15.   
  16.             //动态生成一些测试用数据  
  17.             for (int i = 0; i < 50; i++)  
  18.             {  
  19.                 DataRow row = dt.NewRow();  
  20.                 row[0] = "Test01-" + i.ToString();  
  21.                 row[1] = "Test02-" + i.ToString();  
  22.                 row[2] = "Test03-" + i.ToString();  
  23.                 row[3] = "Test04-" + i.ToString();  
  24.                 dt.Rows.Add(row);  
  25.             }  
  26.   
  27.             //设置本地报表,使程序与之前所建的testReport.rdlc报表文件进行绑定。  
  28.             this.reportViewer1.LocalReport.ReportPath = "testReport.rdlc";  
  29.             this.reportViewer1.LocalReport.DataSources.Clear();  
  30.             this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetName",dt));  
  31.         }</span>  

7、运行效果。

https://img-blog.csdn.net/20140514170140578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast


===================================================================================================================================

二、需要注意的几个地方。

1、代码中new ReportDataSource("DataSetName",dt)),这里的DataSetName是上面一、4、(3里那个名字,而不是所建的数据集文件”testDataSet.xsd"的名字。我之前因为把这里弄错,花了好长时间才修正。

2、按上述步骤弄完后,也许还不好出来想要的结果。可能会弹出本地报表处理期间出错等错误提示。

https://img-blog.csdn.net/20140514164808109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

解决方法:将“testReport.rdlc"文件复制一份放到提示的指定Debug目录下。

上述方法固然可以,但每次都要手动将文件进行复制,显然不合适。这时其实只需要在解决方案资源管理器中点击报表文件”testReport.rdlc",在下方的属性一栏中,从复制到输出目录后面的下拉菜单中选择始终复制。这样,便不用手动往Debug目录复制文件了。(也有网友将属性中的生成操作一项的嵌入的资源改为内容。但对本例不适用,仅作说明)

https://img-blog.csdn.net/20140514165519453?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenNodWFpaHVh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

===================================================================================================================================

三、参考资料。

1、本例最初的参考:参考资料1

2、对于如何自定义报表每页显示多少行的参考:参考资料2

3、关于报表中分组的参考:参考资料3

4、调试过程遇到问题解决思路的参考:参考资料4

===================================================================================================================================

 

  • 2
    点赞
  • 1
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

Crystal Reports 9.2 中文版(水晶报表) 下载,,软件版本:9.2.0.448不过现已出了Crystal Reports Professional v9.2.2.634 (c) Crystal Decisions,有足够的空间就提供.这是一个很不错的报表控件,我相信很多朋友都听说过吧!Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息。使用 Crystal Reports 可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具。 创建所能想象的任何报表 Crystal Reports几乎可以从任何数据源生成您需要的报表。内置报表专家在您生成报表和完成一般的报表任务过程中,会一步一步地指导您进行操作。报表专家通过公式、交叉表、子报表和设置条件格式帮助表现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将报表扩展到 Web Crystal Reports 的灵活性并未停留在创建报表这一功能上 ?您可以用各种各样的格式发布报表,包括用 Microsoft 的 Word 和 Excel 发布、通过电子邮件甚至 Web 发布。高级的 Web 报表功能允许工作组中的其他成员在他们自己的 Web 浏览器中查看或更新共享报表。 将报表并入应用程序通过将 Crystal Reports报表处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。 不论您是 IT 行业的站点管理员,还是营销推广经理,也无论您是金融业的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。感谢 revenant 上传!
©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值