转自:http://topic.csdn.net/u/20090422/00/6ad57982-d44c-44a8-8089-e19107b0c86c.html
使用交叉表时,会遇到这种情况:
列非常多,行非常少,结果页面会自动分页。
(如果行非常多的话,页面比较饱满,一般也不需要特殊处理了)
于是出现了一页上只显示几行,却显示成很多页的情况。既不好看,又浪费纸张(如果打印的话)
问题产生了,能不能将这个换页的动作,限制在同一页上呢?
===========================================================
假设我有这样一个表,有两个字段: GSMC 公司名称 、 BMMC 部门名称。
用交叉表实现每个公司部门数目的纵向显示,一般我们会作出来这样的一个效果。
黄的标注的部分,就是换页的部分。
我们现在就以这个为样版,来做一下改造。
基本思路是:
将数据进行处理,现在一共有41个公司级别的数据,也就是有41个列。
我们要实现每10个做为一个换行,也就是会分为10,10,10,11四行。
交叉表是不能主动换行的,我们用分组来实现一个模拟换行。
那么,怎么要能分成4组呢?
注意:本文使用Oracle数据库完成。
1:首先整理数据,将原来的很多条,整理成41条汇总数据。
并且,根据我们的需要,进行编号。
2:以此为基础,制作一个新的普通报表。
3:做一个公式myGrp:
这个是关键,大家注意到,我们把每10个,切为一个标志位。
以公式myGrp进行分组
那么分组出来的数据如下图所示
好,我们就以这个为基础,做交叉表。
4:在组页眉上插入交叉表,抑制显示掉其他的节,如下图所示
ok,雏形就出来了。
至此,基本思路就实现完毕了,但是不好看,对吗?那进一步处理一下吧。
5:删除掉“组标题”,点中交叉表,在交叉表专家中,点“格式化网格线”,进入格线设置界面
设置最外面的几个边线的颜色为白色。
设置完后,预览界面是这样的
继续,点中交叉表,设置交叉表格式,设置其四个边都为“单线”
然后,再看,是这个样子吗?
后记:
1:本文并不是一个通用性的解决方案,仅对部分案例有效,希望大家能吃透这个原理。做更好的发挥。
2:我相信可能其他工具有更好的解决方法
3:即使用水晶报表,可能也有更好的方法。