博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
阅读量:2065 次
发布时间:2019-04-29

本文共 3974 字,大约阅读时间需要 13 分钟。

1,前言。

     本文中采用的工具介绍: VS2010旗舰版,CrystalReport版本为13.0 。实现的方式是做一个简单demo,

让初学者能够初步了解水晶报表的使用。

    本文中水晶报表采用的模式是PUSH模式实现。

  如果引用本文,请 说明是 转自 !谢谢! 

 本文的出处为:()

2,正文

     步骤一:打开VS2010. 创建一个WPF项目,并命名。(本例是CrystalReportDemo),截图如图1 所示:

 图1 

2, 建好一个项目之后,其主界面就出来了,如下面的图2所示:

图2

3,在解决方案资源管理器中,右键-->添加-->新建项。  如下图3所示:

 

图3

4,在新建项目中选择数据集(DataSet),并重命名,如下图4所示:

 

图4

5,操作完以上的步骤:其界面就是如下所示:(图5)

 

图5

6,点击左侧的“服务器资源管理器”(如果没有,可以通过:视图-->服务器资源管理器,进行添加)。选择“数据连接”,点击右键,如图6所示

 

图6

7,进入界面之后,就会出现连接界面,选择相应的数据库连接,输入你的用户名和密码。如图7所示:

 

图7

8,连接成功之后,就会在“服务器资管理器”中出现相应的数据库的表,选择相应的表,将选中的表拖拽到右侧的DataSet中。如图8所示:

 

图8

      这样,我们就把数据库中的数据添加到了内存的DataSet中了。

9, 在右侧的“解决方案资源管理器”,右击-->添加-->新建项,选择水晶报表,并重命名,点击 添加。如下图所示:(图9)

 

图9

10,随后会出现一个界面,选择空白的模板,点击 确定 。如图10所示。

 

图10

11,这时,整个界面应该就是如下图所示了。(图11)

 

图11

12,在左侧的字段资源管理器(filed explorer),选择数据库字段,右击,选择“数据库专家”。如下图(图12所示)

 

图12

13,点击数据库专家,进入相应界面,这儿就会出现前面所做的数据库连接。选择相应的数据库,

【注意】:这儿要选择 “项目数据” 中的DataSet,假如选择了“我的连接”中的相应表,则就是PULL模式了。 

图13

14,在你的数据库中选择前几步中 的 那个数据库表。如图所示:(图14)

 

图14

15,此时,在字段资源管理器中,就可以讲所选数据库表格的字段,拖拽到报表中,如下图所示:(图15)

 

图 15

16。在MainWindow.xaml中,将右侧的CrystalReportsViewer,拖拽到主界面上。如图所示:图16

 

图16

【注意】: 这儿可能会出现一个错误:  未能找到类型或命名空间名称“CrystalDecisions”(是否缺少 using 指令或程序集引用?)

【解决方法】:1)  要在工程的项目中,添加引用“CrystalDecisions.CrystalReports.Engine”等引用。

                    2) 在WPF的工具箱 的界面中 右击---》选择项。这是会出现如下的界面:(图16-1)

  

  要在,WPF组件中 选中CrystalReportsViewer。并且在.NET FrameWork组件选项卡 中选中 CrystalReportsViewer。这样问题就会解决。

17,在MainWindow的代码中,编写如下的代码:保存后点击,然后点击运行。

 

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Windows; 6 using System.Windows.Controls; 7 using System.Windows.Data; 8 using System.Windows.Documents; 9 using System.Windows.Input;10 using System.Windows.Media;11 using System.Windows.Media.Imaging;12 using System.Windows.Navigation;13 using System.Windows.Shapes;14 using CrystalDecisions.CrystalReports.Engine;      //不要忘记引用15 using CrystalDecisions.Shared;                     //不要忘记引用16 using Oracle.DataAccess.Client;                    //不同的数据库,会有不同的 引用17 using System.Data;                                 //这个是必须的,因为DataSet等都在这个包里18 19 20 namespace CrystalReportDemo21 {22     /// 23 /// MainWindow.xaml 的交互逻辑24 /// 25     public partial class MainWindow : Window26     {27         public MainWindow()28         {29             InitializeComponent();30             Data_Binding();31         }32 33         void Data_Binding()34         {35 36             DataSet empDataSet = new DataSet();37 38             using (OracleConnection conn = new OracleConnection())39             {40                 conn.ConnectionString = "User Id=tsingdemo; Password=tsingdemo; Data Source=tsing;";41                 conn.Open();42 43 44                 string sqlStr = "select * from EMP";45                 OracleDataAdapter dataAdapter = new OracleDataAdapter(sqlStr, conn);46 47                 dataAdapter.Fill(empDataSet, "emps");48             }49             ReportDocument reportDoc = new ReportDocument();50             string reportDataSource = @"E:\workspace\CrystalReportDemo\CrystalReportDemo\CrystalReportOfEmps.rpt";51 52             reportDoc.Load(reportDataSource);53             reportDoc.SetDataSource(empDataSet);54 55             this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;56         }57 58 59     }60 }

【注意】:这儿会出现一个错误:

     【错误一】 错误 6 XML 命名空间“clr-namespace:SAPBusinessObjects.WPF.Viewer;assembly=SAPBusinessObjects.WPF.Viewer”中不存在标记“CrystalReportsViewer”。

     【解决方法】:在“解决方案资源管理器”,点击 项目 ,右击,选择 “属性”,在属性界面中 选择“.Net FrameWork 4”。而不是.NET FrameWork 4 Client。如图所示:

 

保存之后,再点击运行,又会出现另一个问题:

【问题2】:未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll”或它的某一个依赖项。系统找不到指定的文件。

【解决方法】:在你的app.config配置文件中。做如下的修改或配置:

1
2
3
<startup useLegacyV2RuntimeActivationPolicy=
"true"
>
  
<supportedRuntime version=
"v4.0" 
sku=
".NETFramework,Version=v4.0"
/>
</startup>

  

18  此时就不会出现错误了。点击运行,就会出现报表结果:如图(18)所示:

 

至此,水晶报表PUSH模式,通过VS2010的WPF就展示出来了。

 

3,声明:如果引用本文,请说明出处!谢谢!

转载地址:http://zhumf.baihongyu.com/

你可能感兴趣的文章
Spring下载地址
查看>>
wxzh001,进来看关于APACHE+PHP+MYSQL+SSL的LINUX下安装配置(转自奥索)
查看>>
google app api相关(商用)
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>