第1章 背景
在很多公文式报表中,经常出现大文本的打印, 在UniEAP Report中,对于大文本单元格会有两个问题:
1.不允许大文本内容超过一页,如果超过一页,在导出pdf格式以及打印时会报错。
即使不超过一整页,但需要分成两页时,也会有问题。
com.neusoft.report.common.ReportException: (3509)图片的高度大于一页
at com.neusoft.report.common.Trace.createException(Trace.java:582)
at com.neusoft.report.common.i18n.ReportTrace.exception(ReportTrace.java:33)
at com.neusoft.report.common.Trace.error(Trace.java:537)
at com.neusoft.report.engine.export.split.PaperSplitter.getImageHeight(PaperSplitter.java:445)
at com.neusoft.report.engine.export.split.PaperSplitter.split(PaperSplitter.java:226)
2.不能设置行间距,两行之间的文字会紧挨着。
第2章 使用方法
2.1 绘制表格
如下图所示,将长文本单元格预留一行,该行上、下分别有一个无边框的单元格。
2.2 设置SplitByLine公式
在单元格中设置SplitByLine公式,并设置该单元格为纵向扩展单元格,SplitByLine(get('ds1','text'))。
SplitByLine公式,会将长文本按照每行文字长度,将长文本拆分为若干个字符串。每个字符串恰好能放在一行中,再设置纵向扩展,这样长文本就可以按行显示了。
2.3 解决上下边框问题
这样设置后,将报表发布,导出pdf试试看,基本效果已经出来了,但是在拆分为多页时,页最上方和最下方会没有边框。这是可以设置一下表头、表尾。
注意表头只保留下边框,表尾只保留上边框。
2.4 解决行距问题
由于是按行控制长文本内容的,那么也就可以通过设置12行的行高来控制行间距了。
2.5 最终效果图
导出pdf效果图如下:
多页切分效果: