反馈已提交

网络繁忙

填报常见问题

  • 文档创建者:Wendy123456
  • 历史版本:16
  • 最近更新:Carly 于 2023-04-10
  • 概述

    本文介绍填报模板制作和预览时,常见的问题及解决方案。

    相关文档链接:

    填报常见报错代码

    填报常见性能问题

    Excel导入常见问题

    文本域和文本控件

    文本域控件换行时会清空输入值

    点击展开更多

    问题描述:

    文本域控件在选中部分文字后按 Enter+Ctrl ,选中的文字会消失,且无法使用 Ctrl+Z 回退。

    原因分析:

    选中文字后输入新值或换行,选中值会被覆盖清空,属于正常现象。

    文本域输入换行内容后提交没有换行效果

    点击展开更多

    问题描述:

    文本域控件在输入换行显示的内容后,点击提交发现数据库中的数据未显示换行。

    原因分析:

    文本域控件中的换行效果支持提交入数据库中,但在数据库中并不显示。

    解决方案:

    当把数据字段拖入模板中预览即可看到换行效果

    文本域内容过多时无法提交入库

    点击展开更多

    问题描述:

    文本域控件内容较多,提交入库时发现有部分数据未入库。

    原因分析:

    内容过多超过 Web 服务器的限制

    解决方案:

    更换上传方式或分批上传。

    单元格为空时赋值 HTML 无效

    点击展开更多

    问题描述:

    单元格设置了「用HTML显示内容」,当初始内容为空时,手动填写或者JS赋值HTML内容时,单元格无法正常展现HTML样式。

    1669084254170164.gif


    原因分析:

    当单元格初始为空时,该单元格即使设置了「用HTML显示内容」,也不会被标记为HTML显示。因此在后续赋值时,不会有HTML效果。

    解决方案:

    可以在单元格中输入一个空格作为默认值,确保单元格初始化时有内容。

    网页框控件

    JS 监听事件无法作用于网页框中内容

    点击展开更多

    问题描述:

    主模板设置了JS监听事件,但无法监听到网页框里的页面。

    原因分析:

    主模板的监听事件只能监听到主模板的元素,对网页框页面无效。

    解决方案:

    在网页框的页面中加上同样的监听事件。

    网页框地址中的模板名称不能带空格

    点击展开更多

    问题描述:

    网页框控件地址栏中的模板名称如果带有空格,预览出现报错:1130004

    原因分析:

    V8.7 及之后版本不支持此功能。

    复选控件

    复选控件多值入库不正确

    点击展开更多

    问题描述:

    当填报时存在主键时,即做修改操作,提交成功后却只保留了一个值;填报时不存在主键时,即做添加操作,提交成功后数据库则会录入多条数据。

    希望「下拉复选框控件」多选值提交后,能在一条数据中正确显示多个值。

    解决方案:

    可参考 复选控件多值入库不正确 

    下拉树控件

    下拉树填报时丢失层级结构

    点击展开更多

    问题描述:

    单元格下拉树选择值后填报,入库数据异常增多。

    原因分析:

    下拉树控件值在转化为单元格值的时候,会丢失层级,分号会统一变为逗号,所以入库时会作为多条数据入库,造成异常。

    解决方案:

    单元格下拉树目前不支持提交入库。

    按钮控件

    按钮控件过多导致填报页面加载慢

    点击展开更多

    问题描述:

    当模板设置了跟随数据扩展的按钮控件,且数据量较大时,由于按钮控件渲染速度较慢,所以就会造成页面加载缓慢。

    解决方案:

    可参考 按钮控件过多导致填报页面加载慢

    插入行/删除行/新增行异常

    使用JS插入0行不能触发条件属性判断

    点击展开更多

    问题描述:

    使用 _g().appendReportRow(this.options.location, this.options.reportIndex,0) 插入 0 行时,无法触发条件属性重新计算。

    原因分析:

    11.0.5版本(2022.05.20)开始,取消了条件属性的二次计算,只有页面真的插入行时,才会重新计算条件属性。

    插入删除行卡顿

    点击展开更多

    问题描述:

    插入删除行时,页面卡顿,浏览器崩溃。

    原因分析:

    插入删除行时,整个页面的公式和行高列宽需要重新计算,如果公式复杂,或者用到了sql()等取数函数,就可能导致页面加载缓慢。

    解决方案:

    可以在模板预览 url 后增加 async_insert=true 参数,开启插入行页面异步加载。

    插入行暂存后提交出现空白行

    点击展开更多

    问题描述:

    插入行并修改后暂存,使用自定义按钮实现提交,但提交后刷新页面出现空白行。

    原因分析:

    自定义按钮的提交不会清空暂存,所以刷新后出现问题。

    解决方案:

    在自定义按钮的提交设置的回调函数中写入js清空暂存后再刷新。

    _g().clear(undefined, false);
    setTimeout(function() {
    location.reload();
    }, 1000)

    this.currentSinglePageModel

    点击展开更多

    问题描述:

    按钮控件插入行时,弹出toast提示js报错:this.currentSinglePageModel

    原因分析:

    点击控件插入行,模板会刷新。模板刷新时,getWidgetByName 找不到元素。两者结合,若点击插入行,模板正好刷新则报错。

    解决方案:

    衡量模板中为什么有频繁定时操作,是否确实需要,可考虑去掉频繁定时。

    插入删除行后公式失效

    点击展开更多

    问题描述:

    在填报联动,插入删除行,数据校验,数据提交时,出现公式结果和预期不一致。比如下图所示,想要统计A1扩展格中不为0的数据个数,初始预览正常,但是修改A1某个值后,count公式的结果就出现了问题。

    原因分析:

    在填报联动,插入删除行,数据校验和数据提交时,会对页面相关公式进行重计算,而数组函数,层次坐标和条件筛选函数是不支持重计算的,所以会出现一些结果和预期不一致的问题。

    解决方案:

    根据实际场景将数组函数,层次坐标,条件筛选转化为一般的公式。可参考:插入删除行后公式失效

    删除行按钮添加提交事件时删除失败

    点击展开更多

    问题描述

    删除行按钮中设置了提交入库的事件,偶发出现删除失败和数据错位的现象。

    原因分析

    删除行动作和删除提交动作的顺序不是固定的,当顺序相反时就会出现问题。

    解决方案

    用普通按钮设置提交事件,在回调函数中用JS删除行。具体可参考记录填报操作中2.2的设置方式。

    填报预览异常

    警告信息:停止运行此脚本吗?

    点击展开更多

    问题描述:

    填报时弹出警告信息:「停止运行此脚本吗?此页面上的脚本造成 Web 浏览器运行速度减慢。如果继续运行,您的计算机将可能停止响应。」如下图所示:

    原因分析:

    弹出如上对话框有两种原因:

    1)模板中包含大量公式。

    2)另一种是模板中有大量用于填报的控件。

    解决方案一:安装修复包

    微软官方针对该问题提供了修复包,下载后直接安装即可,点击下载修复包:jb51-MicrosoftFixit50403.rar


    解决方案二:优化模板

    1)将所有公式在编辑界面打开,取消默认勾选的「填报/分析时,保留公式用于计算」,如下图所示:

    2)将需要填报的数据单独查询出来,这些数据绑定控件进行填报,其他数据不绑定控件,直接在单元格中展示,这样可以大大减少控件的数量,如下图所示:

    将填报模板分为两部分:「填报部分」和「展示部分」,这两部分的结构都是一样的。

    • 填报部分:设置控件,并通过参数过滤出需要修改的那条记录

    • 展示部分:没有控件,不用过滤,显示出全部记录

    • 参数部分:隐藏查询按钮,在下拉框中添加「编辑后事件」,实现自动查询,详细介绍参见文档:JS 实现无需点击查询按钮即可自动查询

    3)减少控件的另一种方法,如下图示例,数据全部展示出来,在产品编号上添加超链,需要修改该记录时,点击超链接到另外一张模板单独进行填报修改。

    填报入库数据跟预览数据不同

    点击展开更多

    问题描述:

    • 填报中使用了 now() 和 UUID() 等公式,提交后入库的数据跟前端显示的数据不同。

    • 填报时使用了层次坐标 ,提交后入库的数据跟前端显示的数据不同。

    原因分析:

    • now() 和 UUID() 等公式提交时都会重新计算一遍,因而入库后数据会改变。

    • 填报二次计算时不支持层次坐标。

    解决方案:

    • 新增模板参数 p ,参数值为公式 now(),设计模板时单元格添加公式 $p,报表填报属性设置提交时列对应的值设置为参数 $p,即可完美的解决该问题,UUID 同理。

    • 对于包含层次坐标的复杂嵌套公式,需要在公式编辑界面将「填报/分析时,保留公式用于计算」取消勾选,避免二次计算。

    未提交离开提示没生效

    点击展开更多

    问题描述:

    模板修改或者填写数据后,在未提交的情况下关闭页面,没有提示「有数据未提交」。

    原因分析:以下几种场景不支持触发该设置:

    • 导入Excel后未填报或修改过数据 

    • 决策平台内打开填报模板并进行填报

    • 使用动态参数刷新页面

    • 填报页面被嵌入在了其他页面中

    填报round函数计算精度不正确

    点击展开更多

    问题描述:

    在填报场景中使用round函数计算时,可能会出现数字的精度问题,例如公式=round(1.9999,2)的页面显示计算结果为2,但是在填报入库时,填入的却是1.9999。

    原因分析:

    在小数位较多的情况下,round函数如果只有2个参数的话,会有精度不准确的问题,需要添加第三个参数true来解决。

    解决方案:

    添加第三个参数true,就可以解决填报时精度不准确的问题。例如:=round(1.9999,2,true)

    在模板事件中设置的公式,无法获取填报值

    点击展开更多

    问题描述:

    在模板各种JS事件或者模板消息插件设置界面中,调用公式时,无法获取到最新填报的值。

    原因分析:

    11.0.5 版本前,公式获取的为初始值,不支持实时获取预览后填报的值。

    解决方案:

    使用JS 接口获取需要的值,例如 _g().getCellValue()、_g().parameterEl.getWidgetByName().getValue()等。

    填报单元格形态不生效

    点击展开更多

    问题描述一:

    填报数据后,单元格形态未生效。

    原因分析:可能性比较多,可以依次排查以下几点:

    • 使用了数据字典-数据集,对应数据集sql中不能存在参数

    • 使用了数据字典-公式或者公式形态,则只支持获取扩展单元格的第一个值。例如公式形态写=A1,则获取的始终是A1扩展出的第一个值

    • 使用了数据字典-公式或者公式形态,则需要排查使用到的值是字符串还是数组类型,不同类型处理方式有所差异,可能会导致问题

    问题描述二:

    填报分页后重新查询,页面停留在之前页数。

    原因分析:

    产品设计的正常逻辑。

    解决方案:

    在加载结束事件里用 _g().gotoPage(1) 跳转第一页。

    填报预览图表不显示

    点击展开更多

    问题描述:

    在填报预览时,图表不展示,被转换成了string形式。

    解决方案:

    常见的排查步骤如下:

    1)JAR 包环境排查,确定设计器与服务器的 JAR 包是否一致。

    2)插件环境排查,确定是否有冲突的插件。

    3)图表变为字符串排查,有可能是图表在填报暂存下存储为字符。

    直接显示控件与控件初始化后事件报错

    点击展开更多

    问题描述

    在模板 Web 属性中填报页面设置下勾选直接显示控件后


    如果控件初始化后事件中使用到 getWidgetByname,getWidgetByCell 等接口会有报错:CustomJSError:Cannot read properties of undefined


    原因分析:

    直接显示控件加载要比 JS 事件触发慢导致的。

    解决方案:

    给 JS 事件加延时,等控件加载完了,再执行代码就不会报错了

    初始化事件中嵌套一个延时函数试试,延时函数中不能用 this,需要外面定义好,代码如下:

    var th=this;setTimeout(function() {     你的代码;(你代码的this换成th)}, 500

    用 Widget.setValue() 给单元格控件赋值异常

    点击展开更多

    问题描述:

    用 Widget.setValue() 给单元格控件赋值异常,但是用_g().setCellValue()直接给单元格赋值就正常。

    解决方案:

    给存在控件的单元格赋值时,需要使用单元格赋值语句,而不能使用控件赋值语句。

    控件异常显示为config type cannot be null

    点击展开更多

    问题描述:

    模板预览时,偶发出现部分或者所有控件显示为config type cannot be null。

    原因分析:

    模板设置了自定义的JS刷新页面,同时又在该JS或者其他初始化/加载结束事件中定义了JS获取相关控件。此时由于网络请求先后的不确定性,就可能出现获取控件的JS在页面未刷新完成的情况下就执行了,这时候由于获取不到控件而报错。

    解决方案:

    为获取控件的JS增加延时,确保页面加载完毕后再执行获取控件的语句。如下图所示:

    决策报表填报使用数据集函数获取不到值

    点击展开更多

    问题描述:

    决策报表填报,在填报属性设置界面中,使用了数据集函数(value,ds1.select,ds1.find,ds1.group),提交后发现相应公式未正确执行,导致提交数据异常。

    原因分析:

    决策报表填报属性设置界面,不支持数据集函数,使用时相关函数的返回值为空。

    解决方案:

    将数据集函数设置在一个文本控件中进行计算,并在填报属性中直接引用该文本控件获取计算后的值。

    填报成功事件偶发不生效

    点击展开更多

    问题描述:

    火狐浏览器设置了填报成功事件,但是偶发不生效。

    解决方案:

    通过 about:config 打开火狐浏览器的 dom.allow_scripts_to_close_windows 配置为 true 即可。

    公式单元格作为主键时删除失败

    点击展开更多

    问题描述

    填报属性绑定了某个写了公式的单元格作为主键,删除行提交后,该数据并未从数据库删除。

    原因分析

    删除行的公式在提交时会二次计算,返回空字符串,所以无法删除对应数据。

    解决方案

    去除勾选公式的填报/分析时,保留公式用于计算,或者将公式直接写到填报属性中。

    单元格为空时赋值HTML无效

    点击展开更多

    问题描述:

    单元格设置了用HTML显示内容,当初始内容为空时,手动填写或者JS赋值HTML内容时,单元格无法正常展现HTML样式。

    1648611932983777.gif

    原因分析:

    当单元格初始为空时,该单元格即使设置了「用HTML显示内容」,也不会被标记为HTML显示。因此,在后续赋值时,不会有HTML效果。

    解决方案:

    可以在单元格中输入一个空格作为默认值,确保单元格初始化时有内容。

    1662358315787893.gif

    填报或者导入Excel时报错null/会话失效/发送失败

    点击展开更多

    问题描述:

    填报或者导入Excel时报错null/会话失效/发送失败/0。

        

    网络配置

    原因分析:

    例如nginx之类的代理服务器,其一些参数设置会影响请求的转发,如果设置有问题,则会导致报错。可以测试不走代理时的模板,在使用时是否报错来确认问题是否和代理服务器设置有关。

    解决方案:

    检查代理服务器的参数设置,例如nginx的超时时间参数proxy_send_timeout,上传文件大小限制参数client_max_body_size等,适当调大。

    容器配置

    原因分析:

    容器自身有请求超时时间的限制,如果填报或者导入时间过长超过了限制,就会出现报错。

    解决方案:

    调整容器的超时时间,例如Tomcat可以在/conf/server.xml中,修改connectionTimeout参数值,适当调大。

    浏览器插件

    原因分析:

    部分浏览器插件(例如翻译、下载插件)会影响报表请求,造成报错。可以通过更换浏览器来测试问题是否和浏览器有关。

    解决方案:

    卸载有问题的浏览器插件。

    智能运维

    原因分析:

    当工程整体占用内存过高的时候,模板的会话可能会被智能运维清理掉,造成会话失效报错。

    可以通过报错时间段的gc日志或者内存管理中的内存情况来判断是否是此情况。

    解决方案:

    优化模板或者工程来降低内存使用情况。

    自定义过滤器

    原因分析:

    对工程做了自定义的filter,可能会影响一些请求,导致报错。

    可以检查工程WEB-INF文件夹下是否存在web.xml文件,存在的话备份删除后重启测试,如果问题不再出现,则可以判断为此原因。

    解决方案:

    由于自定义filter不属于工程本身功能,所以需要根据实际情况自主排查filter的代码哪里有问题。


    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持