在程序开发中,经常要对合并计算、多级汇总、制作图表、条件格式化进行编程。在这种情况下用普通的数据控件很难完成,而水晶报表大大简化了这些工作。用其可以制作非常漂亮的图表、格式化文本,而且还可以把报表导出为Word、Excel、PDF、HTML等格式。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
6.1  水晶报表技术
水晶报表,英文名为“Crystal Report”,其主要功能是用来表现数据。要向用户展示数据可编写代码对记录集进行循环处理,并在Windwos应用程序或Web应用程序中输出这些数据。但是任何超出基本格式化的工作都会比较复杂,如很难对合并计算、多级汇总、制作图表以及条件、格式化等操作。
6.1.1  水晶报表及其数据源概述
报表最主要的目的,是将数据库与各类型文件之数据源中的数据,依照所需的格式打印出来。由此可知,如何设置报表的数据源是多么重要的一件事。Crystal Report for Visual Studio.NET支持目前业界广泛使用的各种数据源,使开发人员能顺利将现有的数据源显示在报表上。Crystal水晶报表通过数据库驱动程序与数据库进行连接,用户可以根据下列数据源中的数据进行报表设计:
l          使用ODBC驱动程序的任何数据库(RDO)。
l          使用OLEDB提供程序的任何数据库(ADO)。
l          Microsoft Access数据库(DAO)。
l          MicrosoftExcel工作薄(DAO)。
l          ADO.NET记录集(DataSet)。
l          ADO.NET记录集(Recordset)。
l          CDO记录集(Recordset)。
l          DAO NET记录集(Recordset)。
l          RDO记录集(Recordset)。
Crystal Report报表提供了不同的数据源的同时,也提供了数据源的访问模式。Crystal Report报表的数据访问模式可以分为“提取模式”(Pull Model)与“推入模式”(Push Model)两种。
所谓的提取模式,也就是驱动程序会自行链接至数据库并视需要来提取数据。当采用提取模式时,Crystal Report本身将自动链接至数据库并执行用来提取数据的SQL命令,开发人员不需要另外编写代码。如果运行阶段并未编写特定的代码,则使用提取模式。
相反若采用推入模式,开发人员必须自行编写代码来链接至数据库,执行SQL命令来创建数据集或数据记录集,并将该对象传递给报表。
开发人员对数据源拥有更大的自主权与控制权。比方说,可以先过滤数据再将数据抟递给Crystal Report,或是与应用程序中的其他对象公用数据库键接。
报表引擎本身在功能上的限制,可挥洒的空间自然较大。推入模式的这一特性,使开发人员能够从不同的数据源中提取数据记录,并将它们提交给Crystal Report来加以打印。
基本上,若采用提取模式,将只能访问ODBC、OLEDB与ACCESS/EXCEL数据源;然而若采用推入模式,则可以通过ADO.NET、ADO、CDO、DAO与RDO来访问各种类型的数据源。
如果在开发程序中以推入模式使用ADO.NET数据集时,则报表必须使用Crystal Reports Engine对象模型。Crystal Reports Engine对象模型的特点就是允许开发人员在运行阶段对报表结构与内容进行完整的控制。因此如果应用程序需要在运行阶段动态控制报表内容,则该对象模型将是最佳的选择。在Visual Studio.NET 的CrystalDecisions.CrystalReports.Engine命名空间用来支持报表引擎。在ASP.NET程序中使用Crystal Reports Engine对象模型时必须引用CrystalDecisions.CrystalReports.Engine组件。当在项目中新创建一个Crystal Report报表或将一个现有的报表添加至项目中时,应用程序会自动引用CrystalDecisions.CrystalReports.Engine组件。如果必须要以手动的方式引用组件时,请从“项目”菜单中选择“添加引用”命令,弹出“添加引用”对话框,在对话框中双击“CrystalDecisions.CrystalReports.Engine”组件,如图6.1所示。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图6.1  引用“CrystalDecisions.CrystalReports.Engine”组件

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

水晶报表基础入门——1.水晶报表技术相关推荐

  1. 水晶报表基础入门——4.水晶报表排序、分组技术

    6.1.3  水晶报表排序.分组技术 报表数据的预设排列顺序会与数据库中的数据记录的存放顺序相同,因此会毫无规则且不会依照任何顺序来排列.Crystal Reports提供"记录排序专家&q ...

  2. 网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍

    目录 动态分析技术调试器 什么是OllyDbg OllyDbg能干什么 OllyDbg窗口介绍 1.反汇编面板窗口 2.信息面板窗口 3.数据面板窗口 4.寄存器面板窗口 5.栈面板窗口 动态分析技术 ...

  3. 视频教程-Access2013数据库入门教程4报表部分-MySQL

    Access2013数据库入门教程4报表部分 十几年管理软件开发实战经验.从事IT行业十 余年,多年IT技术培训经验,课程编排重在实用 ,讲解通俗易懂. 王西猛 ¥39.00 立即订阅 扫码下载「CS ...

  4. 使用模板报表提高生产力,水晶报表 10 模板技术

    在报表中重用 报表设计过程中最苛刻和最消耗时间的部分是将你的所有报表格式化成统一的外观.许多公司要求报表设计者遵照企业标准,比如:信头或者是 GAAP/SEC 规范的某些要求. 在理想世界里,这只需较 ...

  5. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...

    原文:只用最适合的! 全面对比主流 .NET 报表控件:水晶报表.FastReport.ActiveReports 和 Stimulsoft 前言 随着 .NET 平台的出现,报表相关的开发控件随之出 ...

  6. 转发:只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft

    前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一 ...

  7. php可以用水晶报表吗,什么是水晶报表与水晶报表功能分析

    水晶报表 水晶报表(Crystal Report)是业内最专业.功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口.在VS.Net平台做过报表开发的程序员 ...

  8. 水晶报表中对某一栏位值进行处理_从主流报表工具的报价看报表行业的报价水深-----常用报表工具对比---主流报表价格对比...

    由于报价对于一些价格较高而且不透明的厂商来说属于商业机密,所以我们就不贴图了,只贴了一些价格是公开透明的厂商的报价 拿到其他报价的,自己根据下文对比一下就能明白 目前市场上最主流的报表工具就那么几个, ...

  9. finereport自学教程_办公物语丨Finereport零基础入门教程,你不可缺少的报表神器...

    原标题:办公物语丨Finereport零基础入门教程,你不可缺少的报表神器 ⌛ 小办又来了,快,搬好你的小板凳. 今天小办要着重讲一下 之前推文里提到过的制表神器. 当你逐渐发现Excel不能满足你的 ...

最新文章

  1. YOLO算法史上最全综述:从YOLOv1到YOLOv5
  2. R 绘制 GWAS 研究的 Manhattan 图
  3. 打开程序时固定位置_新手入门第五课:免费开源图像处理程序GIMP之矩形选择工具...
  4. 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)
  5. async await实例
  6. Socket通信客户端设计(Java)
  7. (剑指Offer)面试题49:把字符串转换为整数
  8. Linux之/etc/group文件
  9. python获取网页标题_Python2获取网页标题
  10. hadoop2.9.2安装hadoop_pid_dir_Hadoop3.2 +Spark3.0全分布式安装
  11. Android之进程间通信AIDL
  12. 申报表计算机代码是什么,金税盘的维护费在申报表上面有一个要填写减免性质代码怎么填啊 ?那个代码是什么呢?...
  13. 腾讯地图获取全国行政区划检索列表Demo
  14. 使用VM12虚拟机安装CentOS7
  15. snmp No Such Instance currently exists at this OID
  16. 汽车营销与保险【3】
  17. CSP 201712-3 Crontab(100)
  18. Received empty response from Zabbix Agent at [agent]. Assuming that agent dropped connection because
  19. 用计算机完成下表的视距测量计算公式,中南大学工程测量计算题库及参考答案...
  20. 进程控制-创建、退出、等待、替换

热门文章

  1. Python 100例(上)
  2. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)
  3. IO-00. Hello World! (5)
  4. 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
  5. 【转载】查看MSSQL数据库每个表占用的空间大小的方法
  6. 推荐安装的Visual Studio Extensions
  7. 理解图像傅里叶变换的频谱图
  8. 用C#动态创建Access数据库
  9. IOS开发基础之网易新闻JSON转模型数组第2天
  10. IOS开发基础之模拟科技头条项目案例32