水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现

WPF水晶报表 首先呢,构建水晶报表,选择项目—>右击选择添加—>新建项—>Reporting—>Crstal Reports—>选择作为空白报表,接下来就是构建自己喜欢的水晶报表页面啦 再来构建我们的数据集,选择项目—>右击选择添加—>新建项—>数据—>数据集,数据集的目的就是把我们涉及到的字段放进去,重新构建一个表出来,达到数据传递的作用,在这里面我们构... 阅读详情

1,前言。

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

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

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

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

 本文的出处为:(http://www.cnblogs.com/zlbcdn/archive/2012/03.html)

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 CrystalReportDemo
21 {
22     /// <summary>
23 /// MainWindow.xaml 的交互逻辑
24 /// </summary>
25     public partial class MainWindow : Window
26     {
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,声明:如果引用本文,请说明出处!谢谢!

部署水晶报表时的常见问题及解决方案 目录:1、载入报表时报错2、部署到 Windows 98 / ME 时,出错:"Load Report Failed" 3、在Win98的客户端运行提示"该字段名未知"4、分发到客户机时“查询引擎出错”5、load crpe32.dll failed6、在 ASP.NET 程序中加载报表时,出错:"Load Report Failed" 7、部署 .NET 9.1 程序到 Windows 98 时 阅读详情

相关推荐

构建.NET Framework 2.0下的水晶报表应用

本文还有配套的精品资源,点击获取 简介:水晶报表是一款用于创建复杂业务报告的工具,在企业级应用中尤为流行。本文详细解析了水晶报表在.NET Framework 2.0环境下(x86架构)的应用,包括如何在*** Web应用程序中集成报告功能。提供了关于水晶报表组件安装包(CRRedist2005_x86.msi)及其包含的设计工具、运行时库、数据连接组件和报表服务器接口的信...

weixin_36184718的博客 1680

《wpf/XAML专题--基于wpf制作水晶报表》

开发工具与关键技术:wpf 作者:龙文浩 撰写时间:2019年5月11日 Wpf制作水晶报表,需要: 两个插件(sapbusinessobjects.wpf.viewer.dll和SAPBusinessObjects.WPF.ViewerShared.dll) 一个水晶报表:.rpt 一个数据集:.xsd 一个窗体:*****.xaml 在客户端添加引用: 我们需要先准备一个数据集: 新建好...

龙文浩的博客 1181

Crystal Reports for .NET Framework 2.0 独立安装包 (2/2)

Crystal Reports for .NET Framework 2.0 独立安装包 (2/2)

WPF之水晶报表打印

WPF之水晶报表打印 WPF是框架是是窗体应用程序,其中水晶报表也是我们比较常用的技术,一些公司的业务处理离不开打印报表,WPF水晶报表打印需要引用插件,大家都知道WPF的页面搭建是通过XAML来编辑的,所以制作水晶报表跟MVC还是有较大的区别的,下面给大家展示一个WPF打印水晶报表的实例: 1、 首先要把水晶报表的插件放在当前项目的bin/Debug下面然后在项目中引用(网上可以下载) 接着...

weixin_44543135的博客 1556

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4).part2.rar

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4)

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4).part5.rar

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4)

Crystal Report 水晶报表实例MVC

<th></th><th></th><th></th><th></th><th></th><th></th></td><td></td><td></td><td></td><td>

xdpcxq的专栏 819

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4).part4.rar

Crystal Reports for Visual Studio 2010 水晶报表(13.0.4)

水晶报表13.x(Crystal Reports for VS2010)的安装部署经验

水晶报表13.x(Crystal Reports for VS2010)的安装部署经验 这两天搞安装包真心坎坷,一个问题接一个问题,先是为了实现自定义动作现啃vbs,后面又是安装过程老是报错: 各种搜索、各种尝试,总算搞掂,积累了些经验,分享一下。 首先CR for VS2010的所有东东都在这里:http://scn.sap.com/...

weixin_30412013的博客 299

水晶报表SAP crystal report 13 for VS2010

一款功能强大的报表工具,可直接安装在Visual Studio中,是Microsoft Visual Studio的开发人员版本,使用SAP Crystal Reports Developer,不用离开Microsoft Visual Studio即可获得预算。我们的报告设计软件直接安装到Visual Studio中,有了这个功能齐全的免费软件,您可以节省创建自己的报告和创建交互式报告的时间

edp 千1.docx

edp 千1.docx

未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0

Visual Studio 2010 ,水晶报表的版本为:13.0.0.99。 在项目中的 App.Config文件里面有一段对Runtime的设置。 目标框架选:.net 4.0 ,这段内容会自动生成。 如果出现“未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0”,那么就是App.Config文件文件中自动生成的代码如下: <?xml version

weixin_43941291的博客 1675

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2977

WPF水晶报表打印

开发工具与关键技术:Visual Studio 撰写时间:2019年06月28日 在之前我有写过一篇MVC版的水晶报表打印,这次我写的是WPF版的水晶报表打印 一、制作水晶报表(由于这次制作的过程跟上次不太一样,所以我会重新制作一遍,大概的步骤还是一样的) 右键——>添加——>新建项 ...

weixin_44552861的博客 705

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 753

STM32CubeIDE开发环境搭建与GPIO控制实战

嵌入式开发中,MCU开发环境构建是软硬件协同的起点,其核心在于工具链选型、外设抽象层级与调试可靠性。HAL库作为ST官方标准硬件抽象层,通过统一接口屏蔽芯片差异,显著提升工程可移植性;而STM32CubeIDE则以图形化配置+自动生成代码的方式,实现‘配置即代码’的确定性开发范式。该组合在教学验证、原型迭代和中小规模量产中具备高性价比技术价值,广泛应用于智能传感、工业HMI及IoT终端等场景。本文聚焦STM32CubeIDE 1.15.0环境部署、MyST账户与固件包管理、ST-LINK驱动校验,以及基于H

weixin_33531560的博客 81

VS.NET2010水晶报表安装部署[VS2010]

VS.NET2010水晶报表安装部署[VS2010] 2011-05-29 21:48 欢迎C#高手加盟QQ群:9340166 水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://downloads.businessob

e_zhiwen的专栏 2297

Python控制TEMI1000/TEMI1500测试温箱

该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。

xgh1951的博客 1万+
上一篇: C# WPF DataGrid 根据某列的值设置行的背景色
下一篇: 水晶报表中使用条码字体
easyboot
博客等级 码龄25年 533粉丝 723原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值