在使用jasperReport过程中,某个长字段需要自适应列表的的宽度从而判断是否折行显示。
按照我们之前的做法,可以在报表代码中的textField字段中,通过配置isStretchWithOverflow="true"
实现这一功能。
当我们采用eclipse中集成的ireport插件后,发现最新的6.11.0插件并没有这一选项,只提供了一个textAdjust功能。
该功能默认选择了“cutText”,每次都会将超过长度的字符串截取之后显示。
但是当你配置该参数后,报表可以预览,但是通过java运行的时候就会发现后台报错:、
Caused by: org.xml.sax.SAXParseException; 元素 'textField' 中不允许出现属性 'textAdjust'。
导致该问题的原因在于,我们的jasperReport包并没有升级到最新的6.11.0以上版本。而这个参数是新版本提供的参数,所以配置后会报错。
解决方案:
- 如果你的报表不需要经常修改,你可以直接在textField字段中,增加
isStretchWithOverflow="true"
属性,从而实现换行功能。但是该配置属性,在每次编辑报表,再次保存后就会消失,需要再次手动添加。 - 可以将jasperReport中,将报表版本升级到6.11.0之后的版本,该错误自动解决