日期:2014-05-20  浏览次数:21117 次

[分享]Crystal Reports 2008 (设计篇)---- 格式设计、报表嵌入以及问题BUG解决方法补充
上面的两篇文章(安装及简单设计以及参数及子报表设计)已经介绍了一套相对水晶报表的拉模式设计父子报表的方式,其中包含了数据连接,各种参数,各种字段,子报表开发以及分组汇总的使用和开发。我相信如果各位初学者能够把上两篇文章涉及到的知识运用到您自己开发的报表中的话,那么您已经入门了。当然,我们的报表是要最终推向客户的,我们如果站在客户的角度上,我们当然希望我们的报表看上去非常的赏心悦目,这样我们才不会被那些复杂繁重的数据搞晕,我们当然希望我们的工作对象非常的美观。这就需要我们利用水晶报表的格式设置功能对开发过的报表美化一下,让他看上去更漂亮一些。上图!
  这还是我们上次做的那张报表:

他看上去好像非常的简单,非常的难看,特别对于用审视的眼光去看你的工作成果的领导来说,他显然不会满意的。那么我们需要对他进行修饰,当然至于字体的颜色、大小、还有对其方式上,我不再做过多的介绍,你会用WORD就会用这个。
1:我们先看一下,怎样给水晶报表加边框,光秃秃的报表内容显然不如带格子的看着清楚,除非你喜欢一些原生态的东西。但是由于水晶报表时基于单元格的开发方式,我们如果采用给每个单元格添加边框的方式,在单元格对齐上面就会很难。所以我们用一种新的方式,上图!


在页眉顶端和低端各画一条直线,在详细信息的低端画一条直线,然后字段间用竖线隔开,预览一下效果,是不是很方便而且非常美观。上效果图!

2: 如果我们想要某一字段的信息根据值的不同显示不同的字体颜色,我们可以右键—设置字段属性,进入他们的设置界面,用代码进行编辑操作,比如我希望根据修改标志的不同设置,修改的显示文字和颜色,我可以这么做,上图:

找到“显示字符串”一项,点击右侧公式设计器图标(好像很多地方都可以设置公式非常方便),进入公式编辑界面。
写入一下代码:


同法编辑,字体颜色:

效果见图:

是不是比原来的数字表示清楚醒目的多。
3:再有对于子报表的题目显示,我们可以根据标号的不同,显示子报表的标题,就像这样,

同样的方法,在字段显示字符串 右侧的公式编辑器上,修改代码,让他显示你想要对应的字段即可。

因为我不是一个专业的报表设计人员,所以我在格式美化上面的功力非常的短浅,所以只能介绍给各位初学者一些小小的经验,目的是想传达水晶报表的灵活设置信息,如果您的美术功力非常的好,又掌握了水晶报表的语法设计,相信您一定能够设计出很炫的报表的。不过,多数开发人员好像都和我一样吧(特别牛的别骂我啊),美术功力不够,您可以应用水晶里面的模版,照样可以设计出很绚丽的报表。

开发出一张好的报表,目的是要推向用户,所以我们就要将他挂在我们的成熟的系统中,也就是要将我们的报表嵌入企业的ERP系统或者OA系统中,目前水晶报表支持.net技术嵌入水晶报表的技术已经非常的成熟了,早在03版本的VS开发平台上就已经嵌入了水晶报表的插件,现在比较成熟的VS2008更是嵌入了我们的CrystalReport2008版本,和我们的水晶报表版本完全吻合,可以做到无缝连接。在JAVA集成方面,也有很大突破,CrystalReport for Eclipse 插件的推出,解决了很多JAVA程序员应用水晶报表的难题,而且CrystalReport2008也有相应的JAVA插件,我们可以应用很少量的代码将水晶报表嵌入到我们的JSP项目中,如果你想应用更多的参数交互和水晶报表推模式应用,上述两个工具也有相应的插件和函数供我们选择使用,非常的方便。下面我分别介绍一下水晶报表在JAVA和.NET环境下的应用。
1:.net 环境:
VS2008 + 水晶报表2008:
先上效果图:

上图是我将水晶报表文件放在了一个WINFORM项目下,嵌入了水晶报表查看器,报表调用得到的效果,如果放在ASP.net项目中,效果相信是一样的。

具体的调用方法是:
1: 在调用前你首先要确定的几个事情:
项目中是否有以下几个引用(c#需要首先添加引用,VB直接“import”)
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

在表单窗体中拖入一个用来查看水晶报表的水晶查看器,CrystalreportViewer

建立一个用来承载水晶报表的文档对象 CrystalReportDocumnet 
 准备好这三样东西后,我们用代码直接调用水晶报表:(VB为例)
第一步:定义一个水晶报表文档对象,即使你已经有了做好的水晶报表,你在代码中也要对他进行加载,用到就是这个对象。
Dim crReportDocument As CrystalReport1
crReportDocument = New CrystalReport1
CrystalReportViewer1.ReportSource = crReportDocument
2.在c#代码下调用非常的简单,加载新的报表对象后,将查看器与水晶报表文件绑定,传一个报表文件名就好了。
因为,在JAVA调用水晶报表方面,还不是非常的成熟,所以这里我重点介绍一下JAVA调用的详细步骤,详情请参见文章~~~~~~~~添加链接!!!!!

针对于每次连接都要输入密码和用户名的解决方法,我是将用户名和密码写入代码,调用函数:
ReportClientDocument.getDatabaseController().logon(“用户名”,“密码”)

这样就可以完成水晶报表在后台的登录动作。
有的朋友可能在加载水晶报表时候遇到JSP找不到文件的情况,我从网上找到得方法是将“CRconfig.xml”中的reportLocation一项直接删掉,然后用你的相对路径进行调用,问题解决。
上图!

注意:如果您的报表被同时运用到了两个不同技术的平台,随之而来的问题就是数据连接不同,这样就需要您手动设置需要的连接,在同一报表中虽然可以设置多个连接,但是在运用到不同平台上的时候一定要更新对应连接并且保证其他连接已经关闭。

CSDN的帖图可真麻烦啊! 终于贴完了!上面介绍的仅仅是水晶报表嵌入其他开发环境的概述,后面还会跟大家分享详细的设置步骤。请多指教!!!





------解决方案--------------------
再顶~~
------解决方案--------------------
很好很强大!
------解决方案--------------------
学习学习
------解决方案--------------------
不错!强大
------解决方案--------------------
很好
------解决方案--------------------
顶起
------解决方案--------------------
很好,很强大
------解决方案--------------------
UP
------解决方案--------------------
UP
------解决方案--------------------