单元格的尺寸调整
单元格里的数据超出单元格的原定尺寸时,需要动态调整单元格的尺寸,或者缩小单元格里的内容。
比较简单的做法就是调整单元格的尺寸,动态被撑宽。这个算法很简单,字符宽度*字符个数 就得出了单元格的宽度,最多再考虑两端的缩进等。可是有些时候不允许这么做,比如说,当对报表的宽度有要求时,此举就行不通了。
接着想到了自动折行,通过折行,不改变单元格的宽度,但是改变单元格的高度。自动折行的算法也不难,用字符串的长度除以单元格宽度,就可以算出行数,再用字符高度*行数,基本就算出了单元格的高度,顶多再考虑一下字符间隙、与边框的间隙等。这种方式可以满足一部分用户的需求,但是对于套打等对报表高宽都有严格要求的情况也行不通。
于是想到像excel一样缩小字体填充,根据格子的宽度除以字符的个数,从而算出字号。这种办法也不难,可是,这种情况仅仅适用于数据长度比单元格宽多的不太多的情况。一旦多出比较多的时候,字符被压缩的太小了,很可能导致看不清楚。
因此必须把折行和缩小字体综合起来使用,既折行又缩小字体填充,这样字符被压缩的比例比较小,仍旧具有可读性。但是这种算法就有一定的难度了,需要考虑的情况比较多。
当然,除了文字单元格,还有图形单元格,图形单元格一样存在需要放大或者缩小或者撑大等情况。所有这些情况如果都要编程实现,尤其是做得通用的话,工作量的确不小。如果采用快逸报表,这些细节都解决得非常好。快逸报表的实现步骤:
实现步骤:
- 设计报表
- 为单元格设置尺寸调整方式,可以把尺寸调整方式和自动换行结合使用。
复杂报表设计" href="http://www.quiee.com.cn/wp-content/uploads/2008/06/tzcc1.png">
发布日期:2008/06/26
本文分类:
报表背景知识