web报表工具FineReport使用中遇到的常见报错及解决办法(三)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、repeated column width is largerthan paper width:
这个看这段话应该是很好理解的。比如做的模板页面宽度只能放开5列,结果给6列做了重复和冻结,这个逻辑上肯定是说不过去的。
2、模板打不开,拒绝访问:
可能是win7操作系统对文件有权限。
3、安装设计器后无法预览报表(404报错):
在web.xml中增加servlet标签,具体的代码如下:
<servlet>
<servlet-name>ReportServer</servlet-name>
<servlet-class>com.fr.web.ReportServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ReportServer</servlet-name>
<url-pattern>/ReportServer</url-pattern>
</servlet-mapping>
4、对象不支持此属性或者方法、XXX未定义:
统一页面编码和js的编码(在报表中即服务器编码),如页面编码为utf-8,而服务器编码为gbk,统一编码的方法有三种,下面我们来看一个具体的设置。将管理平台编码修改成与页面编码一致,打开FR管理平台,在管理系统>系统管理>常规属性下,修改服务器端编码为UTF-8即可,如下图:
5、日期比较导致出错:
我测试用的是自己搭的sqlserver2005.2012/01/01这种格式的日期和FR上的2012-01-01这种格式的是不能比较的,直接从数据库中读取的日期格式都比较长,不光是年月日,而且读不出来,不知道是为什么,预览时可以看到的。然后我加了个在条件属性中加了个left(todate($$$),10)转化了一下就解决了,todate转化成了-连接,前10是年月日。
6、由一个单元格扩展出来的行高不一致(填报预览):
但是分页预览却是没有问题的。最后发现时因为设置了数据字典。设置了数据字典的单元格其真实值一行显示不了的,就换行了,所以变宽了。难道是填报预览时计算需要空间的时候用的是真实值计算的?解决方法,注意点,拉宽点就好了。
7、自定义数据字典显示等号问题:
FineReport的像自定义数据字典这种地方,跟单元格还有提示定义框一定,如果不是‘=’号开头是当做字符串处理,‘=’号开头当做公式处理。所以单写一个等号就是空白的。显示等号的话用="="
8、一个单元格内容过多报错:
临时解决方法,直接合并多个单元格可以增加输入内容。