All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP脚本的8个技巧(5)采用PHP的用户认证_[PHP教程]
水晶报表的制作(图表)_[Asp.Net教程]
PHP实例程序:用PHP制作登录页面程序_[PHP教程]
PHP应用:PHP在linxu下的安装与配置_[PHP教程]
C#MD5算法_[Asp.Net教程]
Sql,Server2005学习日记(01)_mssql学习_编程技术
一个Asp.net探针的源码_[Asp.Net教程]
visual c++对象中的this指针
c#时间增加并对比做法_[Asp.Net教程]
使用PHP的Socket写的POP3类_php资料_编程技术
Reading number is top 10 pictures
一个武林高手的故事
Sora aoi be huged like a bear
Group of female porn in 《westwards》, uninhibited woman threatened to not the bottom line2
Magnificent cloud1
关于提肛的健身效果
NeedWallpaper1
The money of more than 100 countries and regions7
Lewd,it is too lewd.
青春清纯美女大集合1
A man's favorite things3--ZhouWeiTong
Download software ranking
Professional killers2 data package
Unix video tutorial20
Boxer's Top ten classic battle10
塘西风月痕
jdk1.6 for windows
linux初级教程
Sora aoi - one of more PK
asp.netWeb服务器高级编程
Unix video tutorial4
Boxer vs Yellow4
归海一刀 published in(发表于) 2014/1/30 1:11:39 Edit(编辑)
浅谈水晶报表在ASP.NET中的一种灵活应用_[Asp.Net教程]

浅谈水晶报表在ASP.NET中的一种灵活应用_[Asp.Net教程]

浅谈水晶报表在ASP.NET中的一种灵活应用_[Asp.Net教程]

  使用水晶报表的强大功能来实现应用程序的统计分析及打印导出等功能,是微软平台上进行.NET应用程序开发报表的一种不错的选择。水晶报表在设计、开发、配置以及部署上,还是会给初学者带来一定的困扰的。那么,是否存在一种相对比较简单而且易用的方式来进行水晶报表的设计、开发、配置以及部署呢?本文将提供一种比较简单且相对灵活的方法。


本文将包含以下内容:



  1. Crystal Reports的另类非对象模式数据绑定
  2. 水晶报表的简单模式部署

P.S. 本文中描述到的Crystal Reports为Crystal Reports for Visual Studio .NET,原则上该版本是runtime free授权,for unlimited user的。VS IDE版本为2008,Crystal Reports版本为10



  1. Crystal Reports的另类非对象模式数据绑定
    水晶报表绑定数据的模式有很多种,其中包括使用DataSet、DataReader及ObjectCollection等。在某个特定的系统项目中,我们多数通过指定的业务数据库来提供对报表数据的支持。本文将主要描述一种非数据库数据绑定的变通模式,通过这种模式进行绑定的报表,可以不用设置其数据库验证参数(DBLogon)的相关信息,具体的数据源可以来源于数据库,也可以来源于xml文件等其他半结构化数据。

    1. 在VS IDE项目的Solution Explorer中,建立存放报表文件的文件夹,如ReprotFilesFolder
    2. 用鼠标右键点击新建的文件夹,选择添加新项(Add New Item...)
      图一
    3. 选择“XML Schema”,将文件命名为Demo.xsd
    4. 用DataSet Editor打开该Schema文件,点击“Ctrl+Alt+S”,打开“Server Explorer”,找到当前项目使用的数据库连接,将报表展示涉及到的数据表拖拽到设计区域
      图二
    5. 推拽的表可以是存在键值关系的表,也可以是毫无关系的表,甚至通过存储过程建立的临时表,保存该xsd文件
    6. 用鼠标右键点击新建的文件夹,选择添加新项(Add New Item...)
    7. 选择Crystal Report,将报表文件命名为Demo.rpt,点击添加(Add)
    8. 在打开的水晶报表向导窗口中选择“使用报表向导”,点击确定
      图四
    9. 在报表向导的数据向导页中,选择“创建新连接-数据库文件”
      图五
    10. 点击数据库文件前的“+”,将弹出选择数据文件窗口,找到刚才创建的Demo.xsd文件,并点击“打开”
      图六
    11. 此时,我们刚添加到Demo.xsd中的两个数据表将出现在“数据文件”节点的子节点下,选中数据表,点击“>”按钮,将表添加到“已选择表”列表中
      图七
    12. 点击“下一步”,可以为表之间添加隐式的键值关系
      图八
    13. 点击完成,将生成一张空白的报表
      图九
    14. 根据实际的业务情况设计符合要求的报表,并保存报表文件,例如下图
      图十
    15. 设计工作到此告一段落,下面将进行数据的绑定。
    16. 新建一个WebForm页面,将CrystalReportViewer添加到页面中,如下图所示
      图十一
    17. 在后台页面中首先引用Crystal Reports的程序集
      using CrystalDecisions.CrystalReports.Engine;
      using CrystalDecisions.Shared;
    18. 定义变量
      private ReportDocument reportDocument;
    19. 添加自定义方法

      ///


      /// 初始化报表
      ///

      private void ConfigureCrystalReports()
      {
      //当前业务的报表打印文件
      string RPTFile = "";
      //当前业务的报表打印数据集
      DataSet ds = null;

      #region 获取报表打印文件
      if (Session["rf"] == null)
      {
      RPTFile = Server.MapPath("Demo.rpt");
      Session["rf"] = RPTFile;
      }
      else
      RPTFile = Session["rf"].ToString();
      #endregion

      #region 获取当前业务的报表打印数据
      if (Session["pd"] == null)
      {
      ds = new DataSet();
      string sql = "";
      sql = "select * from SalesMaster where BItemSerialNumber='0802280001'";
      DataSet masterDs = 填充主表数据
      //将主表添加到报表数据集中
      ds.Merge(masterDs);
      //利用同样的方法添加子表或其他的表,甚至可以添加表和表之间的关系

      //上述方法也可以从其他数据源读入数据,包括Access数据库、xml数据等

      Session["pd"] = ds;
      }
      else
      ds = (DataSet)Session["pd"];
      #endregion

      if (Session["reportDocument"] == null)
      {
      reportDocument = new ReportDocument();
      reportDocument.Load(RPTFile);
      reportDocument.SetDataSource(ds);
      Session["reportDocument"] = reportDocument;
      }
      else
      reportDocument = (ReportDocument)Session["reportDocument"];
      ReportViewer.ReportSource = reportDocument;
      }


    20. 在页面的Page_Load方法中添加Response.Expires = -1;
    21. 添加页面初始化方法

      ///


      /// 页面初始化事件
      ///

      ///
      ///
      protected void Page_Init(object sender, EventArgs e)
      {
      ConfigureCrystalReports();
      }


    22. 至此,报表的数据绑定及显示工作完成。编译项目后,在浏览器中可以查看报表效果。此种方法的灵活性在于

      1. 完成后,完全可以删除.xsd的Schema文件而运行,或将.xsd文件移出项目。
      2. 数据的读入,不论来自SQL Server、Access还是xml数据,只要符合我们设定的Schema的表格式,即可以绑定到报表中。
      3. 我们也可以修改并强化上述的ConfigureCrystalReports方法,并建立系统管理页面,在管理页面上进行数据来源的选择和设定等。

  2. 水晶报表的简单模式部署
    将水晶报表部署到目标服务器的原因是,.NET Framework的安装中并没涵盖水晶报表的合成项。在之前,曾经听说过程序员为了将水晶报表的支持部署到服务器,而在服务器上安装VS IDE的事情。因此,在这里给一个简单的方法。

    1. 在安装了VS IDE的开发机环境中,打开资源管理器
      VS2005定位到:
      %systemroot%\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports
      VS2008定位到:
      %systemroot%:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5
    2. 在上述文件夹中找到CRRedist2005_x86.msi或CRRedist2008_x86.msi文件,在服务器上安装即可

 来源:http://www.cnblogs.com/zhrchrd







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.