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

转载:http://blog.csdn.net/luols/article/details/7018305

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


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

水晶报表在vs2010 WPF环境下的尝试_第1张图片
筛选出SAPBusinessObjects的组件勾选后添加到工具箱,此时我们新建的选项卡便出现了CrystalReportViewer控件

3、我在MainWindow窗体放置了一个按钮btnReport和crystalReportViewer控件
4、接下来我们为水晶报表准备数据源,

在项目添加一个数据集DataSet1.xsd,添加一个数据表DataTable1,

在DataTable1添加两列(String型与Int32型),数据源准备好了

在项目添加水晶报表RPT文件,将DataSet1设为其数据源,如图示

水晶报表在vs2010 WPF环境下的尝试_第2张图片

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

水晶报表在vs2010 WPF环境下的尝试_第3张图片

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


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

   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:     /// <summary>
  17:     /// MainWindow.xaml 的交互逻辑
  18:     /// </summary>
  19:     public partial class MainWindow : Window
  20:     {
  21:         /// <summary>
  22:         /// 水晶报表“骨架”
  23:         /// </summary>
  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:         /// <summary>
  42:         /// 报表预览
  43:         /// </summary>
  44:         /// <param name="sender"></param>
  45:         /// <param name="e"></param>
  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 WPF环境下的尝试_第4张图片

解决方案可参考:http://www.cnblogs.com/zhaox583132460/p/3709593.html

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

水晶报表在vs2010 WPF环境下的尝试_第5张图片

你可能感兴趣的:(VS2010)