本章内容<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
6-1  水晶报表技术简介
6-2 水晶报表的主要功能
6-3 水晶报表的执行模式
本章将重点介绍“水晶报表”(Crystal Report),其主要功能是以报表的形式表现数据。通过对报表文件中的页眉、页脚以及详细资料区域的设置,获得与实际业务纸质报表相同格式的电子报表,并在Windwos应用程序或Web应用程序中输出这些由计算机产生的统计分析数据。
u本章的学习目标:
n理解水晶报表的作用和优点
n使用水晶报表专家创建水晶报表
n理解水晶报表的推拉模式设计
n在窗体中使用水晶报表和报表绑定
n学习水晶报表与数据库的综合复杂开发

6-1  水晶报表简介

在很多企业日常运营业务中,经常会出现一些报表业务处理,如某部门的薪金详细信息报表就属于财务报表的一种,这些报表的输出要求有一定的规格制式,数据的处理要求符合业务逻辑的要求。如表6-1所示为某部门的薪资表
姓名
部门
职位
薪金
Allen John
技术部
分析员
10000
David Blake
销售部
销售员
3500
Jack Turner
办公室
行政人员
4200
BinaryReader
办公室
行政人员
4200
Mark Lee
销售部
经理
12000
Chan Cho
销售部
销售员
3500
Susan Jones
办公室
行政人员
4200
Scott William
销售部
销售员
3500
Adam Johns
销售部
销售员
3500
表6-1  部门薪资表
如果转换成为按照员工所在的部门进行薪资统计工作(如表6-2所示),那么有关人员就需要手动计算每个部门的总薪金,依次填写统计后的数据。这种方式的缺点是准确性地,数据容易受到人为因素影响。
姓名
部门
职位
统计薪金
Susan Jones
办公室
行政人员
24600
Jack Turner
行政人员
BinaryReader
行政人员
Mark Lee
销售部
经理
26000
Chan Cho
销售员
David Blake
销售员
Scott William
销售员
Adam Johns
销售员
Allen John
技术部
分析员
10000
表6-2  部门薪资统计表
水晶报表出现的目的,就是使得计算机参与到办公系统业务流程中,使得电子水晶报表变为格式化且有条理的数据记录表示方式。
水晶报表可以由很多的方法得到,其中一个就是使用VS.Net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用VS.Net开发.Net程序,那么你就不需要再安装其它软件了,因为水晶报表已经内嵌在VS.Net中了。

1.水晶报表的优点

VS.Net水晶报表有下面一些主要的优点: 
n 快速的报表开发;
n 能够导出成为复杂的交互性图表;
n 可以与其它控件一起在WebForm中使用;
n 能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式;

2.水晶报表主要控件

VS.Net水晶报表的主要控件包括以下四个: 
(1)水晶报表引擎(Crystal Report Engine (CREngine.dll))
    通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。也正是因为报告引擎的作用,才可以将Asp.Net中的水晶报表转换成为普通HTML格式水晶报表设计器(Crystal Report Designer (CRDesigner.dll))。水晶报表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。 
(2).rpt报表文件
    执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。
(3)Data Source
    .rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
(4)水晶报表查看控件
    水晶报表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))是一个WinForm控件,可以将它看成是一个在WinForm页面中存放报表的容器。

6-2  水晶报表的基本操作

6-2-1 水晶报表的基本功能

水晶报表的主要功能可以包括四个方面的内容:

1.借助交互式界面更加容易地创建报表

VS2005有专门的水晶报表设计工具(如图6-1),在工具箱的Crystal Reports中,我们可以看到水晶报表主要有两个基本控件:CrystalReportViewer和ReportDocument,分别表示水晶报表浏览器控件和水晶报表设计控件。通过这两个常用控件,我们可以很轻松的完成报表的创建工作。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图6-1 工具箱中的Crystal Reports控件集合

2. 运行时数据的自定义功能

水晶报表不仅仅可以对于来自数据库的单表数据进行定制式的显示,同时可以允许对复杂的数据来源(如存储过程数据,视图数据,分布式数据)进行特定的设计工作,具有非常强大的数据表现能力。同时其界面设计方便,适用于不同报表格式的开发设计。

3.水晶报表的主要特性和结构

(1)水晶报表的主要特性包括以下几个方面:
n快速的报表开发
n能够导出成为复杂的交互性图表
n可以与其它控件一起在WebForm中使用
n能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式
(2)水晶报表的基本结构
水晶报表的基本结构主要有水晶报表引擎(Crystal Report Engine (CREngine.dll))和水晶报表设计器(Crystal Report Designer (CRDesigner.dll))共同构成。(如图6-2所示)
水晶报表引擎以水晶报表浏览器样式呈现,通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。也正是因为水晶报表引擎的作用,才可以将水晶报表转换成为.pdf,.doc,xls,html,rtf等多种格式。
水晶报表文件就是在水晶报表设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。
图6-2 Crystal Reports的基本结构

6-2-2 案例学习:打开并查看水晶报表文件

本次实验目标是通过打开一个RPT文件,将水晶报表显示在水晶报表查看器之内。
u实验步骤1:
新建一个WinForm窗体,从工具箱的Crystal Reports中拖放一个CrystalReportViewer控件到窗体上,再放置一个Button控件用来打开一个RPT(报表文件)文件,该RPT文件将在CrystalReportViewer控件内显示出来。基本界面如图6-3所示。
图6-3 WinForm中使用水晶报表查看器设计界面
u实验步骤2:
用鼠标双击Button控件,进入Button控件的鼠标单击事件编码,并键入如下代码:
        private void button1_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();//建立一个打开文件对话框对象
            dlg.Title = "打开水晶报表文件";//命名该打开文件对话框对象标题
            dlg.Filter = "水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";
            //命名该打开文件对话框对象打开文件类型只能够是rpt类型的文件
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //如果打开文件对话框用户选择确定
                crystalReportViewer1.ReportSource = dlg.FileName;
                //则将该RPT文件作为水晶报表浏览器的浏览文件
            }
}
 

转载于:https://blog.51cto.com/qianshao/231836

6-1 水晶报表技术(上)相关推荐

  1. 水晶报表基础入门——1.水晶报表技术

        在程序开发中,经常要对合并计算.多级汇总.制作图表.条件格式化进行编程.在这种情况下用普通的数据控件很难完成,而水晶报表大大简化了这些工作.用其可以制作非常漂亮的图表.格式化文本,而且还可以把 ...

  2. 水晶报表技术(12)——一个投票系统水晶报表应用

        前一段时间,公司需要做一个在线的调查投票系统,目的是统计公司能力等级指数,统计的能力级别分三大类,分别为一级能力要素,二级能力要素,三级能力要素,不同的一级能力要素下面分若干的二级能力要素,每 ...

  3. 如何在水晶报表显示上下标

    在水晶报表中显示上下标的配置如下: 1.在数据库字段中存储html代码:例如:<p>H<font size=2>2</font>O</p> (显示出&q ...

  4. 水晶报表技术(3)——.NET 2005 中动态水晶报表的实现

    .NET 2005 中动态水晶报表的实现<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

  5. 让Crystal Report【水晶报表】助你编程马到成功!

    注:这是我几年前的一篇稿件,欠妥之处,欢迎批评指正! 从事开发设计软件的朋友都清楚,在软件项目千头万绪中,唯有打印输出是要格外地仔细地推敲和认真实施:这"打印"乃是项目完成划句号前 ...

  6. 水晶报表使用经验总结

    资料: Asp.Net中使用水晶报表(上) www.dotnet8.com  2002-9-6  DotNet吧 这篇文章教你如何在.Net Web应用中使用水晶报表,也可以让你在学习过程中少走一些弯 ...

  7. CSDN社区关于水晶报表的讨论

    CSDN - 专家门诊 关闭窗口       主        题:  有关水晶报表的使用经验和资料总结,欢迎各位使用过水晶报表的同仁把自己在使用过程中的总结.经验.体会同大家共享!! 作       ...

  8. 水晶报表制作6*4cm的打印纸标签,预览时数据是一页,打印出来却多了一页空白?

    欢迎来到一块钱的博客!!! 问题描述:水晶报表 预览时数据是一页,打印出来却多了一页空白.如图: 问题情况分析: 尝试1: 用水晶报表工具Crystal Reports2010设置一个(宽)6X4cm ...

  9. 水晶报表 发布 部署

    <script src="http://www.shengfang.org/blog/blog/template/clean/function.js" type=" ...

最新文章

  1. 如何编写可测试的代码 哈利勒的方法论
  2. 09CSS元素显示模式
  3. 非正常关闭vi编辑器时会生成一个.swp文件
  4. 解决:Please specify a different SDK name--PyCharm报错
  5. android studio 调用c++,android studio配置opencv,调用c++,处理图像
  6. 港大计算机科学奖学金,香港大学奖学金情况怎么样?
  7. HDU 2686 多线程DP
  8. 关于lazyman你还应该知道这几件事
  9. 第七十节,css选择器
  10. C#中 构造函数的执行
  11. Error in macro ./uart_scope_run_msim_rtl
  12. 空气净化器哪个牌子好,除甲醛空气净化器什么牌子好推荐
  13. 文末福利 | 性能领域:你知道的越多,不知道的也就越多
  14. Android 简单图片浏览器
  15. Java内存管理-Stackoverflow问答-Java是传值还是传引用?(十一)
  16. PHP.ini 中文注解
  17. java 如何杀线程,您如何杀死Java中的线程?
  18. 【rk100】的各种问题
  19. 2020年中国新基建七大产业链全景图
  20. Android搭建WebSocket服务端

热门文章

  1. VTK:PolyData之ExtractSelection
  2. VTK:相互作用之RubberBand3D
  3. OpenGL 着色器的N体仿真
  4. c++深拷贝和浅拷贝的区别?
  5. QT的QGLFunctions类的使用
  6. QT的QBufferDataGenerator类的使用
  7. QML基础类型之geoshape
  8. C++加号运算符重载
  9. 4 C++对C的加强之namespace命名空间
  10. C++11之异步调用