1. 概述编辑
1.1 版本
报表服务器版本 |
---|
FR10.0 & FR11.0 |
1.2 概述
导出打印在使用过程中,会有很多因素影响其最终的效果。本文主要以对导出打印有影响的模板配置因素入手,如模板认证、插件等,来帮助用户更好的使用导出打印功能。
导出目前有【分页导出】、【原样导出】和【分页分sheet导出】,在填报预览下进行导出后的文件页数与分页预览下导出的效果一致,所以可以通过对比分页预览的页数,判断是否多或少了页数
2. 单元格设置编辑
2.1 会影响导出打印效果的设置
2.1.1 单元格属性-其他
2.1.2 单元格属性-样式
导出打印时,需要保证【单元格属性-其他】->【打印/导出单元格内容】和【打印/导出单元格背景】已勾选
2.1.3 其他
支持单元格属性-形态(【单元格元素】-【格式】会被【形态】效果覆盖)
支持条件属性
支持悬浮元素
支持纸张背景
支持水印
2.2 案例
2.2.1 报表单元格公式形态修改数字格式后导出为字符类型
问题描述:需要公式形态根据参数修改对应的小数位数。现在导出excel后单元格的内容提示是字符类型,不能参与计算
原因分析:导出excel前后,字段类型并没有改变,设计器中的就是文本型
解决方案:不同形态,直接把格式设置为数字
2.2.2 导出word有大片空白
问题描述:需要公式形态根据参数修改对应的小数位数。现在导出excel后单元格的内容提示是字符类型,不能参与计算
原因分析:导出excel前后,字段类型并没有改变,设计器中的就是文本型
解决方案:空白处前面的单元格的【单元格元素】-【格式】->勾选【分页时可以断开】
2.2.3 导出excel部分没有图案背景
问题描述:导出的excel一列有图案背景另一列没有
原因分析:不显示图案背景的列将单元格显示内容设置为:用HTML显示内容
解决方案:将单元格显示内容改为:用图片显示内容 后可正常导出
3. 页面设置编辑
3.1 逻辑说明
纸张大小与方向和居中方式都会对导出打印效果造成影响,其中【根据单元格内容自动调整】对于整张报表内的所有单元格,设置单元格行高列宽是否随其内容自动调整。包含有三种调整模式:否,行高,列宽。
否:当前单元格,Web 端展示以及打印导出时,以设计器中实际大小展示,单元格中的内容,截取显示。
行高:当前单元格,设计器中的大小不足以摆放下全部文字时,Web 端展示以及打印导出时,将保持列宽不变,根据内容的多少,自动调整行高,显示全部内容。
列宽:当前单元格,设计器中的大小不足以摆放下全部文字时,Web 端展示以及打印导出时,将保持行高不变,根据内容的多少,自动调整列宽,显示全部内容。
注1:页面设置处的根据单元格内容自动调整是针对整个报表的所有单元格来说的,默认为根据行高自动调整。
注2:PC端自适应属性也会影响导出效果,如设置了字体自适应,导出的字体会和预览一致
详情请参见:页面设置
其他内容见:打印设置、模板导出属性(「特殊字符导出优化」按钮默认勾选,勾选该按钮后,会以内置字体 noto-cjk 导出)
4. 跨域限制编辑
4.1 逻辑说明
出于安全性的考量,平台在「安全防护」界面内提供了一些安全功能开关,包括:Cookie 增强、HSTS 设置、文件上传校验、脚本调用公式限制、Security Headers、请求响应优化、Token认证增强。需要关注以下两个设置:
【点击劫持攻击防护】:开启后,默认页面只能在同一个域中加载
【内容嗅探攻击防护】:开启后,禁用浏览器类型猜测来保证安全性
详情请参见:安全防护
4.2 案例
4.2.1 跨域调用失败
问题描述:
自定义打印按钮js,调的打印接口,直接预览打印正常,嵌入页面后打印,f12报错跨域
平台调用URL导出未生成导出文件,直接在模板预览界面url加&format=excel导出正常,F12有报错500
https环境下安装FR打印机软件,并且修改了配置文件 'httpsMode' : true ,但是启动仍报错失败
原因分析:跨域使用
解决方案:决策平台安全关闭关闭【点击劫持攻击防护】和【内容嗅探攻击防护】
补充说明:谷歌浏览器HTTPS_SameSite_跨域,详情请参见:谷歌浏览器单点登录失败
4.2.2 打印机启动失败
问题描述:打印前端控制台报错:This request has been blocked; the content must be served over HTTPS
原因分析:本地打印没有配https
解决方案:修改了配置文件 'httpsMode' : true,详情请参见:本地打印https配置说明
5. 模板引擎编辑
5.1 逻辑说明
5.1.1 新计算引擎
通过对模板的预处理(编译),将一些模板中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据,同时后台分页计算。这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。
详情请参见: 新计算引擎简介
5.1.2 行式引擎
边取数边执行报表,执行到哪页用户就可以看到哪页,用户访问到看到结果的时间=首页数据读取时间+首页计算时间
注:行式引擎不支持分页分 sheet 导出 Excel
详情请参见:启用行式引擎执行层式报表
5.1.3 大数据导出
导出报错:Broken pipe,或者时间长,强烈建议使用大数据集导出插件
5.2 案例
5.2.1 新计算引擎大数据集导出报错500
原因分析:新引擎中条件属性不支持行后分页和控件
解决方案:取消条件属性行后分页
5.2.2 行式引擎导出大量数据只有表头
原因分析:sql里嵌套sql函数的写法,目前新引擎,行引擎都是不支持
解决方案:可以换成常规导出或者大数据集导出excel插件
5.2.3 excel导出行高异常
原因分析:行式引擎设置了固定行数式500,导致数据挤压在一起了,导出和预览异常
解决方案:行式引擎设置了固定行数式调小到30就可以正常预览导出
5.2.4 excel导出excel2013提示部分内容有问题,是否尝试恢复,wps正常
问题描述:只有一个sheet的模板在服务器上原样导出后,文件结果是分sheet的
原因分析:与行式引擎冲突,使用Excel 流式导出支持行式引擎插件可以解决
解决方案:使用Excel 流式导出支持行式引擎插件可以解决,详情请参见:Excel 流式导出支持行式引擎插件
6. 模板认证编辑
6.1 逻辑说明
模板认证用于用户使用帆软的数据决策系统访问报表工程时,对用户权限进行限制,控制用户查看报表的行为,包括预览和导出
详情请参见:模板认证
6.2 案例
6.2.1 模板导出报错:无权限需要联系管理员
问题描述:预览模板A,实际导出模板B
原因分析:模板B被设置了模板认证权限
解决方案:重新设置模板认证权限
7. 图表导出数据量限制编辑
7.1 逻辑说明
单个图表导出数据量限制功能,支持用户自定义单图表导出最大数据条数。功能默认开启,最大条数为 20000 条。
1)若不开启「单个图表导出数据量限制」,则按照图表实际数据条数导出图片。
2)若开启了「单个图表导出数据量限制」,图表数据未超出设定参数,则按照图表实际数据条数导出图片。
3)若开启了「单个图表导出数据量限制」,图表数据超出了设定参数,则按照设定参数数据条数导出图片。
若用户自定义了最大数据条数或关闭了单个图表导出数据限制,导出时出现异常,将导出空白图片,图片上提示「图表导出数据量过大,导出失败,请减少导出数据量」。详情请参见:模板限制
7.2 案例
7.2.1 定时调度模板的数据显示不完整
问题描述:决策报表块有个tab,tab下有个图表,目前预览时,分类展示的是24小时的数据,但是调度到邮件中图表分类就只有一小时的数据,其他数据缺失
原因分析:有图表导出数据量限制
解决方案:修改图表导出数据量限制
8 其他编辑
8.1 原样导出 Excel 列宽变小
问题描述:模板预览后选择原样导出 Excel ,列宽由 7px 变为 6px ,在 Excel 中点击打印,打印预览效果正常,实际打印整体内容发生向左偏移。
原因分析:FineReport 和 Excel 是两套行高列宽体系,之间的转换需要乘一个系数。
解决方案:
1)Excel 导出系数说明:默认宽度系数为 34.742,高度系数为 20.1。这个系数的条件是:
a4 纸张
页边距(上6.85mm、左19.05mm、下6.85mm、右19.05mm)
宋体(simsum)
如果模板用的不是这个默认设置的话,又想导出到特定的 Excel 纸张内时,若需要导出效果跟预览一致,就需要调整这个自定义系数。
2)方法
FR11/FR10在 FineDB 的 fine_conf_entity 表中添加(或修改)两个字段:
注:修改或添加字段方法请参见:FINE_CONF_ENTITY可视化配置
CustomConfig.excelAdjustHeight
CustomConfig.excelAdjustWidth
如果导出到 Excel 内容的行高/列宽小了,那就把对应的系数调大;如果导出到 Excel 内容的行高/列宽大了,那就把对应的系数调小。
其他版本可以参考填报修改fine_conf_entity