打印导出时保留JS改变的单元格样式

  • 文档创建者:yets11
  • 编辑次数:8次
  • 最近更新:Leo.Tsai 于 2020-09-29
  • 1.概述

    1.1 问题描述

    在填报页面中,有时使用 JS 对页面样式进行调整,例如文档 JS 实现改变复选框选中行中指定单元格背景色 中的模板,勾选复选框后会改变指定单元格的颜色。

    1600241501969029.png

    当需要进行导出或打印时,发现样式并没有生效,如下图所示:

    1600241709327761.png

    那么怎样才能将样式一起导出,实现下图所示的效果呢?

    1600241784574150.png

    1.2 解决思路

    因为 JS 只是改变前端样式,后端存储的样式并没有发生改变,打印或导出时是调取后台数据,所以必须利用条件属性间接改变单元格打印或导出时的颜色。

    2. 示例

    2.1 准备模板

    下载并打开文档 JS 实现改变复选框选中行中指定单元格背景色 中的模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\29-JS实现改变复选框选中行中指定单元格背景色.cpt

    2.2 为单元格设置条件属性

    选中 H3 单元格,添加一个条件属性,满足公式条件A3=true时,将当前单元格背景色改为黄色,如下图所示:

    1600242710234855.png

    2.3 效果预览

    保存报表,点击填报预览,勾选几个复选框后,将模板导出为 Excel,如下图所示:

    1600243008520684.png

    导出的 Excel 效果如下图所示:

    1600241784574150.png

    注:移动端不支持各种打印和导出方式。

    3. 注意事项

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

    • 如果是点击按钮改变的样式,可以在 JS 中用contentPane.setCellValue(cell,null,value)来修改辅助单元格的值。同样需要在另外一个单元格中用公式=单元格,向后台提交一次值并引用,才能在打印导出的条件属性中生效,与预览的效果一致

    • 如果需要设置打印导出时可以显示复选框控件,请参见文档:复选框的打印导出

    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!