前一段时间,公司需要做一个在线的调查投票系统,目的是统计公司能力等级指数,统计的能力级别分三大类,分别为一级能力要素,二级能力要素,三级能力要素,不同的一级能力要素下面分若干的二级能力要素,每一项二级能力要素下面又分许多三级能力要素,结果是要根据三级能力要素进行复杂的运算后形成二级能力要素的值, 然后再根据得到的二级能力要素的值和投票的人员的不同的级别和不同的岗位情况进行统计(具体怎么统计就不多说拉),然后把所有的结果用柱状图显示出来行政的人员需要具体的每种结果的图表情况,并且要求能导出.
首先第一想法是用proessentials控件,主要是因为前一段时间跟日本做项目,被指定使用此控件,查了一圈资料,但是发现在中国,貌似没有几个人用过,但是最后还是搞定了,不过是在winform上做的,不是在web上,尝试了几次,没有成功,而且行政的催的急,所以斗胆使用我从来没有用过的传说中很强大的水晶报表(crystal report).
因为一直没用接触过,更别提使用了,尽管一直都没有做过web图表方面的工作,但是工作积累下来的面对问题的自信让我觉得应该是个小case,结果真的是个小case.
扯了那么多,现在转入正题.
水晶报表(crystal report)是微软的图表合作商,因为专业,所以优秀,尽管微软有(microsoft chart),但是水晶报表还是被作为一种自带的控件由visual studio 2005随之附带.
水晶报表包含两种模式,一种是pull模式,一种是push模式.下面句先具体的谈谈两种模式的区别.
pull模式是一种直接把数据从数据库里面拉出来的模式,所以很形象的叫做pull,pull模式主要是要跟数据库建立连接,从数据库里面把数据拉出来并且显示在报表上面.pull模式的好处就是根本不用你写一行代码,就可以完成报表数据的读取和报表的制作.
push模式相对于pull模式来说是一种比较高级的模式,push模式所要得到的数据是需要用到ado.net来获取数据,然后在报表上面显示出来.push模式可以实现数据的自定义获取,这样可以实现功能自定义的最大化,但是相对来说需要编写一定程度的代码(即获取数据).
pull模式和push模式总的说来感觉只是获取数据的方式不同,不管用那种方式,数据获取完成之后只需要把获取的数据和制作的水晶报表联系起来就ok了.
下面就具体的两种模式获取数据做相关的说明:
一.pull模式
先要从工具箱的水晶报表工具栏里面分别拖出crystalreportsource控件和 crystalreportviewer控件.crystalreportsource控件和其他的数据源控件的功能类似,就是与已经制作好的相关的报表建立连接.crystalreportviewer控件是用来在web上面显示水晶报表的,它的主要作用是跟已经与水晶报表建立了联系的 crystalreportsource建立联系,以方便让用户在web上面能够查看水晶报表,所以crystalreportviewer又叫做水晶报表查看器,两者缺一都是在pull模式下不能正常显示水晶报表的.crystalreportsource需要指定一个水晶报表文件,如果还没有水晶报表的化,可以通过crystalreportsource的向导创建一个新的水晶报表,在创建的过程中指定为空白报表,报表创建好之后就会在左侧出现一个字段资源管理器,右键点击数据库字段并且选择数据库专家就会弹出一个数据库专家的对话框,在创建新连接里面选择ole db(ado)选项,因为我的是sql server 2005 数据库,所以我在弹出的数据源配置里面选中sql native client,点击下一步,依次的输入服务器名,用户名,密码,数据库,然后点确定就发现在左侧的数据库字段里面出现了数据库里面包含的所有字段,这样一个pull模式的数据连接就算成功了,然后就是根据我们需要的水晶报表的样式创建具体的水晶报表(具体怎么做下此再写一篇),在这里提示一下,如果是要显示数据库里面的信息的话,只需要把字段拖放到水晶报表里面就可以了.最后,把crystalreportviewer的数据源指定为配置了的 crystalreportsource.基本上一个pull模式水晶报表的建立就完成了.
二.push模式
push模式主要显示自定义的数据,首先需要在项目里面建立一个dataset,具体的方法是在项目里面添加一个数据集,具体方法是右键选中解决资源管理器里面的项目的根目录,选中添加新项,选择数据集并且命名为mydataset.xsd,创建好数据集后有两种方式填充数据,第一就是可以直接从服务器资源管理器里面拖动相关的数据字段到数据集合里面,第二就是自己创建数据集里面的字段,在数据填充的时候通过ado.net来实现数据的填充,不过填充的dataset是我们自己定义的mydataset,其实在我们填充的mydataset里面可以有很多张我们自己根据需要定义的表和字段,这样可以实现我们的数据自定义最大化,数据填充以后就是关于水晶报表数据源的配置问题,在push模式的方式下,我们右键点击水晶报表字段资源管理器里面的数据库字段,并且选中项目数据下面的ado.net数据集.然后我们可以清楚的看到在ado.net数据集下面有我们自定义的mydataset数据集,选中里面我们自己定义的数据集下面自己定义的表并且把表加入到右侧的栏目中,这样我们就可以像pull模式一样来使用相关的字段建立起水晶报表了.
以上就是两种模式的区别和具体的实践。
下面谈谈关于碰到的一些问题.
关于使用次数的问题.水晶报表作为一种商业的专业图表不可能给你免费使用,安装visual studio 2005时自带的水晶报表只能使用30次,就是说你在用asp.net development server进行调试的时候只能用30次,如果还要继续使用的话就要停止asp.net development server并且要重新生成,同样,对于部署在iis上面并且装有.net framework 2.0的部署项目也是一样的,只能用三十次就不能用了,怎么办呢?好办,打开注册表,找到hkey-local-machine->crystal decisions->10.2->report application server->inproserver下面的键printjoblimit并且把值改为1000,然后寻找到hkey-local- machine->crystal decisions->10.2->report application server->server下面的键printjoblimit并且也把值改为1000,这样就完全可以满足的你要求拉.
然后就是部署的问题,因为不是部署在本机,而是部署在其他的机器上面,而部署的机器也是装有visual studio 2005的,但是出现了一个问题,就是部署以后水晶报表的图表居然不可见,而且一些打印和导出的功能都不能使用了.解决的方法是找到在部署机器上面找到aspnet_client文件夹,并且把这个文件夹拷贝到发布网站的文件夹里面,ok,一切搞定!
总结使用水晶报表的使用,感觉水晶报表还是很方便的,而且对于相关的图表也有很强的支持,对于开发人员来说可以大大的降低开发所需要花费的时间成本.以上只是简要的介绍了一些关于水晶报表的使用心得,如果各位朋友有疑问,希望随时联系我,欢迎讨论!下面附一张效果图!
tag标签: .net,crystal report,asp.net,c#,ado.net,水晶报表
分享到:
相关推荐
在Q&A水晶报表的使用.doc中,你可以找到关于水晶报表常见问题与解答的集合。文档可能包括如何连接到数据源、设计报表布局、使用公式和函数、过滤和排序数据、分组和汇总信息以及自定义报表样式等方面的问题,这些...
本指南将深入探讨水晶报表的开发过程,提供详尽的使用说明,助您高效地创建、管理和分享数据报告。 1. **水晶报表简介** 水晶报表(Crystal Reports)是由Business Objects公司(现为SAP的一部分)开发的一款报告...
本篇文章将深入探讨水晶报表的主要特点、使用场景以及与C#编程语言的结合。 1. **水晶报表简介** 水晶报表(Crystal Reports)是由SAP公司开发的一款报告生成工具,支持多种数据源,包括数据库、Excel文件、XML等...
在这个“水晶报表使用入门”中,我们将深入探讨如何开始使用这个工具。 首先,安装和启动水晶报表。你需要下载并安装水晶报表的相应版本,如Business Objects Crystal Reports。安装完成后,可以通过桌面快捷方式或...
水晶报表是一款强大的报表设计工具,尤其在企业级应用中广泛使用。标题提到的"水晶报表例程(9.0 for ASP)"表明这是一个基于水晶报表9.0版本,专为ASP(Active Server Pages)开发环境设计的示例程序或者教程。这个...
**VC++ 6 使用水晶报表(Crystal Reports)详解** 在软件开发中,报告生成是一项重要的功能,尤其在企业级应用中,数据的可视化呈现至关重要。VC++ 6 是一个经典的开发环境,它允许开发者利用各种工具来创建复杂的...
水晶报表(Crystal Reports)是商业智能领域中一种广泛使用的报表设计和生成工具,它能够将复杂的数据转换为直观、易读的格式,如表格、图表等。本文将深入解析水晶报表在Microsoft Visual Studio 2005环境下的使用...
为了实现这一点,我们需要使用到CrystalDecisions.CrystalReports.Engine命名空间,该命名空间提供了丰富的类和方法,用于处理水晶报表。 然后,我们需要建立与Oracle数据库的连接。为了连接到Oracle数据库,我们将...
Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式Visual C++源代码 167 如何在水晶报表中使用计算公式...
本教程将引导你逐步掌握水晶报表的使用,无论是初学者还是有一定经验的用户,都能从中受益。 教程内容可能包括以下几个核心部分: 1. **水晶报表基础**:首先,你需要了解水晶报表的基本概念,如报表设计界面、...
Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表...
在VB.NET环境下,使用水晶报表可以方便地展示和分析数据,为用户提供直观的信息展示。本文将深入探讨如何在Web页中集成和使用水晶报表。 首先,你需要确保已经安装了水晶报表的开发组件,通常是通过Visual Studio的...
这个实例将帮助你理解和掌握如何在VS2005中有效地使用水晶报表。水晶报表能够处理各种数据源,包括数据库、XML文件和Excel工作簿,生成美观且功能丰富的报表。 一、安装水晶报表 首先,你需要确保你的VS2005已经...
**水晶报表10使用手册** 水晶报表(Crystal Reports)是由SAP公司开发的一款强大的报表设计工具,广泛应用于商业智能和数据分析领域。它允许用户从各种数据源创建复杂的报告,包括数据库、Excel表格、文本文件等。...
在.NET环境下,C#语言与水晶报表(Crystal Reports)的结合使用是开发高效报表系统的重要方式。水晶报表作为一款强大的报表开发工具,以其简洁的界面、易于操作的特性以及丰富的功能,深受开发者们的青睐。本篇文章...
【水晶报表使用详解】 水晶报表是一款强大的报表设计工具,广泛应用于C#.Net的WinForm和Asp.Net中,用于生成和展示各种复杂的业务报告。本文将详细介绍如何在开发环境中使用水晶报表,包括动态生成查询条件、处理...
在VB6.0项目中使用水晶报表前,你需要确保已经安装了水晶报表的开发包,通常包含在Visual Studio或单独的SDK中。安装完成后,水晶报表的相关组件会出现在VB6.0的工具箱里,便于拖放使用。 接着,了解水晶报表的基本...
水晶报表是一款广泛应用于商业智能和数据分析的工具,尤其在生成复杂报表方面表现出色。交叉报表是水晶报表中的一个重要特性,它允许用户以行列交叉的方式展示数据,便于进行多维度的数据分析和比较。在这个“水晶...
**VC++水晶报表使用详解** 水晶报表(Crystal Reports)是一款强大的报表设计工具,常用于Windows应用程序中,尤其在Visual C++开发环境中。本篇将深入探讨如何在VC++项目中集成并有效使用水晶报表,以及如何配合...
本使用说明将深入探讨水晶报表的各个方面,帮助用户更好地理解和应用这一强大的工具。 一、水晶报表概述 水晶报表(Crystal Reports)由SAP公司开发,主要功能是设计和生成各种复杂的业务报告。它支持多种数据源,...