博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
水晶报表在vs2010 WPF环境下的尝试
阅读量:7033 次
发布时间:2019-06-28

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

原文:

由于VS2010没有集成水晶报表组件,尝试前必须先安装 水晶报表 for VS2010,若机器未安装的可下载安装

新建一个WPF应用程序项目,此时我们先修改一个项目属性,右击项目名->属性,“目标框架”务必改成".Net Framework4"(默认是".Net Framework 4 Client Profile"),否则会报错。
打开窗体设计器后,工具栏并未出现CrystalReportViewer控件,所以我们必须先手动添加这些控件,可在工具栏新建一选项卡,然后右击,“选择项”,如图示

筛选出SAPBusinessObjects的组件勾选后添加到工具箱,此时我们新建的选项卡便出现了CrystalReportViewer控件,我在MainWindow窗体放置了一个按钮btnReport和crystalReportViewer控件
接下来我们为水晶报表准备数据源,在项目添加一个数据集DataSet1.xsd,添加一个数据表DataTable1,我在DataTable1添加两列(String型与Int32型),数据源准备好了,在项目添加水晶报表RPT文件,将DataSet1设为其数据源,如图示

水晶报表for VS2010比之前vs内置的水晶报表多了一些特性,比如在设计模板,对象就多了一个格式刷功能,如图示

它可以将指定对象的格式应用到其他对象,只需在指定对象先获取其格式刷,然后将鼠标移到其他对象上时,鼠标形状会自动变成一个刷子形状,单击一下,该对象便与指定对象的格式完全一致,非常便利。这只是其中之一,还有其他一些特性待我们好好研究

模板设计好了,接下来进入代码

[csharp] 
  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.Shapes;  
  13.   
  14. namespace WpfApplication1  
  15. {  
  16.     ///   
  17.     /// MainWindow.xaml 的交互逻辑  
  18.     ///   
  19.     public partial class MainWindow : Window  
  20.     {  
  21.         ///   
  22.         /// 水晶报表“骨架”  
  23.         ///   
  24.         DataSet1 myDataSet = new DataSet1( );  
  25.   
  26.         public MainWindow( )  
  27.         {  
  28.             InitializeComponent( );  
  29.         }  
  30.   
  31.         protected override void OnInitialized( EventArgs e )  
  32.         {  
  33.             base.OnInitialized( e );  
  34.   
  35.             //往数据集塞数据  
  36.             myDataSet.DataTable1.AddDataTable1Row( "Luols" , 1 );  
  37.             myDataSet.DataTable1.AddDataTable1Row( "Luols" , 2 );  
  38.             myDataSet.DataTable1.AddDataTable1Row( "Luols" , 3 );  
  39.         }  
  40.   
  41.         ///   
  42.         /// 报表预览  
  43.         ///   
  44.         ///   
  45.         ///   
  46.         private void btnReport_Click( object sender , RoutedEventArgs e )  
  47.         {  
  48.             CrystalReport1 myReport = new CrystalReport1( );  
  49.             myReport.SetDataSource( myDataSet );  
  50.   
  51.             //这里与之前版本有区别  
  52.             //之前是 crystalReportsViewer1.ReportSource = myReport  
  53.             crystalReportsViewer1.ViewerCore.ReportSource = myReport;  
  54.         }  
  55.     }  
  56. }  

点击运行,呀!报错了,如图示

解决方案可参考我之前写的这篇:

处理后再点击运行,好了,运行效果如下

水晶报表在vs2010 <wbr>WPF环境下的尝试

更多水晶报表知识:

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

你可能感兴趣的文章
Python常用模块2
查看>>
直播APP开发如何得到用户青睐?
查看>>
Day26 正则介绍_grep工具
查看>>
数据库-删除数据
查看>>
753个大奖邀请各位新老博主入驻云栖,请技术人员广而告之
查看>>
apache域名重定向rewrite
查看>>
LNMP架构介绍,php安装
查看>>
Spring Boot教程(三十一)创建含有多module的springboot工程
查看>>
maven打包成可运行jar包遇见的坑
查看>>
《活着》读后感4500字
查看>>
JDK8新特性
查看>>
Nginx访问日志、日志切割、静态文件不记录日志和过期时间
查看>>
Zookeeper的投票机制及分布式事务锁原理
查看>>
学了这么久Python,大家知道它的起源吗?
查看>>
Java通过几种经典的算法来实现数组排序
查看>>
PHP ++true true++ 布尔值的先增后增问题
查看>>
关于composer常用到的命令
查看>>
从今天起让我们忘记Java中的get/set方法吧!
查看>>
java框架学习日志-3
查看>>
Oracle学习日志-6(聚合查询)
查看>>