zoukankan      html  css  js  c++  java
  • 水晶报表

    来自: http://www.cnblogs.com/zlbcdn/

    卓越水晶报表:http://www.crystalreports-china.com/forum.php

    水晶报表(Crystal Report)中的数据导为Excel、PDF、Word等

    这几天一直在做水晶报表的小事,因为时间不是特别的紧,所以就自己在看一些小的东西。

    本来打算将水晶报表中的数据导出为Excel,当时认为这是非常难的,但是没有想到这是非常容易的~~~

    说一下如何去做:有两种方法可以快速的实现:

    方法一:

    在crystalReportsViewer1声明数据源之前(如下面的第一句话,所示)。

    this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;

    添加一句话。

    this.crystalReportsViewer1.ShowExportButton = true;

    运行你的系统之后,你就会在你的报表中发现已经有一个“导出”按钮了~~(如下图所示)

    点击 “导出” 就可以选择你要导出的文件类型,文件位置,输入文件名称之后,就可以导出了。如下图

    【方法2】:直接编码完成。

    reportDoc.SetDataSource(myDataSet);

    首先你要保证,你所声明的ReportDocument已经设置完毕,并且完成了上面的这句话。然后在这句话的后面紧紧写一句话就可以了

    reportDoc.ExportToDisk(ExportFormatType.PortableDocFormat, @"D:\CrystalReportOfNormalData.pdf");

    【注意】:ExportToDisk(argus1,argus2);有两个参数,第一个是导出文件的文件类型,第二个是路径已经导出文件的名称

    运行你的项目,就可以完成数据的导出。






    posted @ 2012-03-13 17:04 zlbcdn 阅读(7) 评论(0) 编辑

    2012年3月8日

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

    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,声明:如果引用本文,请说明出处!谢谢!

  • 相关阅读:
    【转】PostgreSQL与MySQL比较
    HIVE出现Read past end of RLE integer from compressed stream Stream for column 1 kind LENGTH position: 359 length: 359 range: 0错误
    HSDF查看各级目录的大小
    windows7搜索python java go php等其他文件内容
    Tomcat配置https后,并发较大时,频繁超时情况。
    Tomcat7配置Https
    部分手机浏览器存在将ajax请求当成广告过滤的情况,及解决方案
    百度广告联盟api probuf协议对接
    SQL查询时,根据日期范围查询周
    执行Hive出现Error running child : java.lang.OutOfMemoryError: Java heap space错误
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/CrystalReport.html
Copyright © 2011-2022 走看看