1. 概述编辑
1.1 版本
报表服务器版本 |
---|
FR11/10 |
1.2 概述
导出打印在使用过程中,会有很多因素影响其最终的效果。本文主要以对导出打印有影响的模板配置因素入手,如模板认证、插件等,来帮助用户更好的使用导出打印功能。
2、影响因素编辑
2.1 模板认证
2.1.1 逻辑说明
模板认证用于用户使用帆软的数据决策系统访问报表工程时,对用户权限进行限制,控制用户查看报表的行为,包括预览和导出
详情请参见:模板认证
2.1.2 案例
(1)模板导出报错:无权限需要联系管理员
问题描述:预览模板A,实际导出模板B
原因分析:模板B被设置了模板认证权限
解决方案:重新设置模板认证权限
2.2 图表导出数据量限制
2.2.1 逻辑说明
单个图表导出数据量限制功能,支持用户自定义单图表导出最大数据条数。功能默认开启,最大条数为 20000 条。
1)若不开启「单个图表导出数据量限制」,则按照图表实际数据条数导出图片。
2)若开启了「单个图表导出数据量限制」,图表数据未超出设定参数,则按照图表实际数据条数导出图片。
3)若开启了「单个图表导出数据量限制」,图表数据超出了设定参数,则按照设定参数数据条数导出图片。
若用户自定义了最大数据条数或关闭了单个图表导出数据限制,导出时出现异常,将导出空白图片,图片上提示「图表导出数据量过大,导出失败,请减少导出数据量」。如下图所示:
详情请参见:模板限制
2.2.2 案例
(1)定时调度模板的数据显示不完整
问题描述:决策报表块有个tab,tab下有个图表,目前预览时,分类展示的是24小时的数据,但是调度到邮件中图表分类就只有一小时的数据,其他数据缺失
原因分析:有图表导出数据量限制
解决方案:修改图表导出数据量限制
2.3 跨域限制
2.3.1 逻辑说明
出于安全性的考量,平台在「安全防护」界面内提供了一些安全功能开关,包括:Cookie 增强、HSTS 设置、文件上传校验、脚本调用公式限制、Security Headers、请求响应优化、Token认证增强。需要关注以下两个设置:
【点击劫持攻击防护】:开启后,默认页面只能在同一个域中加载
【内容嗅探攻击防护】:开启后,禁用浏览器类型猜测来保证安全性
详情请参见:安全防护
2.3.2 案例
(1)跨域调用失败
问题描述:
自定义打印按钮js,调的打印接口,直接预览打印正常,嵌入页面后打印,f12报错跨域
平台调用URL导出未生成导出文件,直接在模板预览界面url加&format=excel导出正常,F12有报错500
https环境下安装FR打印机软件,并且修改了配置文件 'httpsMode' : true ,但是启动仍报错失败
原因分析:跨域使用
解决方案:决策平台安全关闭关闭【点击劫持攻击防护】和【内容嗅探攻击防护】
补充说明:谷歌浏览器HTTPS_SameSite_跨域,详情请参见:谷歌浏览器单点登录失败
(2)打印机启动失败
问题描述:打印前端控制台报错This request has been blocked; the content must be served over HTTPS
原因分析:本地打印没有配https
解决方案:修改了配置文件 'httpsMode' : true,详情请参见:本地打印https配置说明
2.4 模板引擎
2.4.1 逻辑说明
(1)新计算引擎
通过对模板的预处理(编译),将一些模板中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据,同时后台分页计算。这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。
详情请参见: 新计算引擎简介
(2)行式引擎
边取数边执行报表,执行到哪页用户就可以看到哪页,用户访问到看到结果的时间=首页数据读取时间+首页计算时间
注:行式引擎不支持分页分 sheet 导出 Excel详情请参见:启用行式引擎执行层式报表
(3)大数据导出
导出报错:Broken pipe,或者时间长,强烈建议使用大数据集导出插件
2.4.2 案例
(1)新计算引擎大数据集导出报错500
原因分析:新引擎中条件属性不支持行后分页和控件
解决方案:取消条件属性行后分页
(2)行式引擎导出大量数据只有表头
原因分析:sql里嵌套sql函数的写法,目前新引擎,行引擎都是不支持
解决方案:可以换成常规导出或者大数据集导出excel插件
(3)excel导出行高异常
原因分析:行式引擎设置了固定行数式500,导致数据挤压在一起了,导出和预览异常
解决方案:行式引擎设置了固定行数式调小到30就可以正常预览导出
(4)excel导出excel2013提示部分内容有问题,是否尝试恢复,wps正常
问题描述:只有一个sheet的模板在服务器上原样导出后,文件结果是分sheet的
原因分析:与行式引擎冲突,使用Excel 流式导出支持行式引擎插件可以解决
解决方案:使用Excel 流式导出支持行式引擎插件可以解决,详情请参见:Excel 流式导出支持行式引擎插件