Web报表软件FineReport的死循环问题处理

文 | 帆软数据应用研究院 2011-08-15 14:53:09

1. 问题描述
Web报表软件FineReport中,有时预览一个报表模板或是做一个报表模板时,是否有时会出现报死循环类似的错误,那是什么原因出现这样的情况的呢?这个往往是由于设置的某个报表单元格的父格不当导致的
2. 产生错误的原因
2.1 设置某个报表单元格的左、上父格导致出现死循环
报错情况:
报表设计器预览报表时,报如下错:
报表设计器预览报错
或分页预览时,报如下错误信息:
报表分页预览报错
分析:看了如上错误信息后,我们来看下报表模板的设计界面:
图1:
报表模板设计界面1
图2:
报表模板设计界面2
会发现设计报表模板中,B4单元格的左父格,设置为D4了(图1),而C4与D4单元格,是不扩展的且这里是默认的,那就是C4与D4单元格的左父格均默认为B4(图2),即这里B4单元格的左父格,设置为D4且D4单元格的左父格均默认为B4,就矛盾,出现了逻辑错误。而把B4单元格的左父格,设置为默认后,即左父格为默认A4,这样就不会出现死循环的问题了。
解决方案:分析检查下报错信息中相关的报表单元格,看其左、上父格的设置是否存在矛盾的地方。
2.2 设置某些公式导致出现死循环
报错情况:
某些公式的设置,如:在某个单元格中输入=range(255),在不设置扩展时,报表设计器预览,会报如下错:
公式设置报错
接下来,我们看下这个报表模板的设计界面,如下:
报表模板设计界面3
分析:这里您设置的是一个单元格占用一行的,在显示255个数的时候,由于单元格默认是设置自动调整行高,所以此时单元格就会根据内容自动将单元格高度拉伸了。即实际是把一格的行高变为大于一页的高度了,所以就会报如上的错误。因此,要解决这个问题,我们可以使之一格占多行,让其分割开来显示,即:使之拆分为多行进行计算,这样就可以把一格的行高变为大于一页的高度,这样分页就不会再有问题了。
原因:我们进行分页计算时,是按行为单位的。这里255个数只用一格在一页中是显示不完的,超过了一页的高度。如一页,高度为400是放不下高度为500的行的,此时就会出问题。
注意:报表单元格的高度是不能超过页面的设置高度。
解决方案:合并几个报表单元格,使一格占多行,这样分页就不会有问题了。
2.3 其他原因
可能有时死循环错误信息,并不能真正看出其真实的错误原因,那么在检查过某些单元格的父格及公式设置正确后,若仍然出现如上问题,则可以找我们的技术支持,帮您具体看一下问题,看看其他方面可能出现的原因。

 

免费试用FineReport

阅读次数:1,970


返回顶部