历史版本2 :打印导出时保留JS改变的单元格样式 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1.概述编辑

在填报页面中,有时使用JS对页面样式进行调整,比如使用JS实现改变复选框选中行中指定单元格背景色,点击复选框之后改变指定单元格颜色,需要进行导出或打印报表时,发现样式并没有生效,如下图:

222


选择工具栏打印-打印[客户端]进行打印预览,可以看到,后面单元格颜色样式并没有发生改变,如下图
222

那么,如何才能正确打印出这种通过JS改变某个单元格后,导出的样式也同样发生改变呢。如下图
222

2.解决思路编辑

因为JS是在前端改的样式,后端存储的样式并没有发生改变,而进行打印或导出时会调取后台数据及设置的样式,所以必须利用内置的条件属性方法进行间接地改变单元格打印或导出时的颜色。

3. 解决过程编辑

3.1 修改报表
使用JS实现改变复选框选中行中指定单元格背景色教程修改%FR_HOME%\WebReport\WEB-INF\reportlets\GettingStarted.cpt

3.2 为单元格设置条件属性

222
3.3 向后台提交修改的值

在E4单元格输入公式=A4,并设置隐藏E列

222

注:这一步是最重要的,这里使用一个额外的公式是因为在填报中,虽然改变了控件的值,但是并没有即时提交到后台中,使用一次公式是为了使改变的值在后台生效。

3.4 保存与预览

保存模板,进行填报预览,再进行打印预览,可以看到概述中的最终效果了。

其他样式都可以参考这个,修改对应的条件属性即可。

如果不是这种复选框改变的,而是某个按钮点击改变的样式,可以通过在JS中用contentPane.setCellValue(cell,null,value)来修改辅助单元格的值,

同样,需要在另外一个单元格中用公式=单元格,向后台提交一次值并引用,才能在打印导出的条件属性中生效,与预览的效果一致。

如果需要设置打印导出复选框控件,参考导出打印单选按钮及复选框