[分享]水晶报表交叉表及数据过滤基础篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下面以PUSH模式为例,图解制作过程:(本文转载CSDN)
首先在界面上放置两个dataTimePicker控件,分别取名dtpStart,dtpEnd,可以任意选择起止时间,一个“测试报表”按钮(本案例该按钮起到刷新报表作用),取名btnReport,还有cryta lReportView控件是少不了的(要不然怎么查看报表呢:)),采用默认名称,Form界面就这
些东西。
既然是PUSH模式,就必须给它一个“骨架”,在项目中添加新项选择数据集,如图示:
名称随意(我这里是默认名DataSet1),然后打开数据集设计界面,右击->添加->DataTabl e,此时界面已多出DataTable1,右击DataTable1->添加->列,输入列名dtValue,在属性框中更改其数据类型为System.DateTime,如图示:
继续添加两列(根据需求而定,这里的列相当于数据库中的字段),TextType(System.Stri ng),iCount(System.Int32),记得保存,此时“骨架”构造完毕,此时还是一个空匣子。
往项目中添加一模板rpt文件,跟刚才添加数据集过程类似,我这边继续采用默认名,打开rpt文件,会有一个“字段资源管理器”框,右击数据库字段->数据库专家,会弹出一个数据库专家界面,在这个界面我们把刚才构造的“骨架”放到报表中来,如图示:
在数据库字段中把要显示的字段拖放到报表详细资料节,如图示:
然后插入交叉表,该是本文的重点之一:
右击报表尾空白处->插入->交叉表,在交叉表专家中设置如下:
重点也就是这样,很简单吧:)
然后我们设置下日期和数字的显示格式,右击日期字段dtValue对象->设置对象格式
相应的数字对象也设置下
这样交叉表部分就算完成了,最后我们再根据设置的起止时间进行数据过滤(本文另一重点)这里我们用两个参数来接收这两个起止时间值,在字段资源管理器中右击参数字段->新建,
如图示
同理再新建一参数(注意类型的选择),取名periodEnd,然后在报表空白处点右键->报表->
选择专家,此时会弹出选择专家界面
点确定后在设置如下:
最终运行效果如下
我们发现交叉表左上角有一大大缺口,实在不雅,可参考如下
左上角缺口大补丸
水晶报表的交叉表,有个很大的缺憾,就是左边那个缺口。
虽然我们通过自己画线或者其他方法,能补上这个口,但是一旦分页,后续仍然是缺口效果
在我以前的文章中,我主要是补了这个缺口,本文做一些完善
除了补缺口外,增加在缺口加标题。
并且保证这个缺口在分页后仍能完整保持跟第一页同样的效果。
手工课,无理论。看图说话。
(一)默认效果,左缺口
设计视图
预览视图
(二)使用交叉表对象的边框来模拟交叉表表格边框
1:
在交叉表专家中,切换到“自定义格式”标签页。
点击下面的按钮,进入格线设计界面
这里我们把缺口靠近的左边线和上边线设置为白色。
点击确定后却换回界面,预览效果如下。左边和上边的线已经没有了
2:
在交叉表上点右键,设置交叉表的格式
在边框里,把这两个边补上。
从这里大家可以看出,其实在前一个步骤中,我们也可以把4个边都设置为白色,然后在这里补上单线。
然后我们再看效果,第一页和后面页,可以看到这个角已经被完整补上了
(三)使用节的延伸属性模拟每页标题效果
本节的解决方法来自于可爱的阿尹mm,在此非常感谢。
原讨论贴在此:
/u/20090804/14/3d1b38a8-be1a-4f78-9dc7-0fd46928f14a.html
1:
要做到每页都显示一个标题,我们首先想到的是利用页眉。
因为之前我的页眉上已经放了一个页码了
所以我单独拆除一个节来,放一个标题(红字部分)。
注意看我的节安排。
交叉表是放在报表页脚上的,而不是平时惯用的报表页眉位置。
因为报表页眉先于页眉出现,所以是用不上页眉这个特性的。
所以选择放在报表页脚,保证交叉表分页后,页眉能压在交叉表的上面。
我们在这个环节先预览一下,可以看到这个红字最然每页都出现,但是却游离在交叉表的外面
2:
进入节专家,设置该节属性,勾选“延伸到后续节”。
然后我们再看效果,恩,就是这个样子了,这个直接就是后续页的效果。
原帖的百分比部分尚未实现,对原帖该需求不太明确,可参考
交叉表百分比之实现
交叉表除了实现交叉汇总外,亦有计算百分比(横向、纵向)的功能。
之前的文章中已经对交叉表的制作方法做了详细的说明,以下只针对百分比的情况进一步说明一下。
假设我们有以下数据表,
建一个如下的交叉表,注意汇总字段中,点了两个相同的汇总和
选取其中的一个,点击【更改汇总】,在弹出的小界面上勾选【以百分比显示】下拉框中会出现要可供选择的百分比的分母。
根据显示需要,选【行】或者【列】(后面看图后说明下区别)
下图就是分别按行和按列出现的样式,可以看出:
按行,就是比例项出现在行上,同一组比例项占一列按列,就是比例项出现在列上,同一组比例项占一行
可以调整一下样式
更还为更常见的横向显示(下面的那个我没改)