水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
来源:互联网 发布:动态规划算法的边界 编辑:程序博客网 时间:2024/05/16 23:48
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的代码中,编写如下的代码:保存后点击,然后点击运行。
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Data_Binding();
}
void Data_Binding()
{
DataSet empDataSet = new DataSet();
using (OracleConnection conn = new OracleConnection())
{
conn.ConnectionString = "User Id=tsingdemo; Password=tsingdemo; Data Source=tsing;";
conn.Open();
string sqlStr = "select * from EMP";
OracleDataAdapter dataAdapter = new OracleDataAdapter(sqlStr, conn);
dataAdapter.Fill(empDataSet, "emps");
}
ReportDocument reportDoc = new ReportDocument();
string reportDataSource = @"E:\workspace\CrystalReportDemo\CrystalReportDemo\CrystalReportOfEmps.rpt";
reportDoc.Load(reportDataSource);
reportDoc.SetDataSource(empDataSet);
this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;
}
}
}
【注意】:这儿会出现一个错误:
【错误一】 错误 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配置文件中。做如下的修改或配置:
<startup useLegacyV2RuntimeActivationPolicy=
"true"
>
<supportedRuntime version=
"v4.0"
sku=
".NETFramework,Version=v4.0"
/>
</startup>
18 此时就不会出现错误了。点击运行,就会出现报表结果:如图(18)所示:
至此,水晶报表PUSH模式,通过VS2010的WPF就展示出来了。
3,声明:如果引用本文,请说明出处!谢谢!
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- Visual Studio 2012使用水晶报表Crystal Report
- [.Net码农]Visual Studio 2012使用水晶报表Crystal Report
- visual studio中如何使用水晶报表(crystal report)
- Visual studio 2005中的Crystal Report的应用(1):水晶报表绑定查询的dataset数据
- 使用“ReportViewer 控件 (Visual Studio)”,抛弃水晶报表(crystal report)
- Crystal Reports in Visual Studio 2010(VS2010中的水晶报表)
- 水晶报表(crystal report)--回忆
- Crystal Report 水晶报表如何实现类似表格单元格合并的功能
- Crystal Report 水晶报表如何实现类似表格单元格合并的功能
- 一个crystal report水晶报表无法实现的多数据源计算
- Crystal Report水晶报表碰到的一些纠结问题
- 制作水晶报表------crystal report designer 的使用和 安装
- Crystal Report for Visual Studio .NET支持的数据源及报表的数据访问模式
- Crystal Report printControl (水晶报表打印)
- 十亿月PV网站秘诀:Reddit自失败中总结的25条经验
- sqlserver getdate() 时间转化
- Linux内核中内存相关的操作函数
- C++中关于时间的显示
- 2014.02.28 validationEngine form表单验证插件及使用方式
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- JAVA练习题
- XMPP协议详解
- 网络资源
- tar 解压缩命令
- 程序员这口饭-职业规划解决方案
- KindEditor编辑器无法获得新增的数据
- 软件设计是怎样炼成的(8)——用户感觉好才是真的好(用户体验设计)
- PAT 1069. The Black Hole of Numbers