关于HTML端SQL报表字段存在特殊字符时的中断空白或报错提示详解

【问题描述】
在SQL报表中,如果字段key存在特殊字符,会在不同版本区间产生以下系统现象:
【1】在补丁版本PT-146939 [8.1.0.20230309]及以后,弹出提示:

【2】在补丁版本PT-146939 [8.1.0.20230309]以前,报表空白:

【3】若使用BOS设计器设计的报表,最新版本提示如下:

【业务场景】
业务场景介绍:
当二开插件中SQL语句字段的key包含特殊字符时,HTML在构造表格时,会根据不同版本,产生上述几种不同的影响。但不论是哪个版本,我们都推荐将特殊字符替换。
【原因分析】
注意:这是HTML端会出现的现象
底层原因是出于HTML是基于JavaScript语言所展示的超文本页面,而JavaScript在对象的读取上,存在一个key使用上的微妙不同。
我们用测试代码举例:

可以看到,上述代码中的测试对象包含了7种含有特殊字符做为key的项。
我们使用两个for循环做输出
【第1个for循环】使用js的 [key] 语法输出,让我们看一下结果:

【第2个for循环】使用js的 .key 语法输出,让我们看一下结果:

相信大家对比上面两张图,可以发现问题所在,原生JavaScript使用 .key 语法时,值与我们预定义的不同了,变成了undefined(未定义)
而这就是问题的根因所在。
星空HTML端底层框架在创建报表时,会根据不同的key,实例化创建不同的函数,以 .key 的方式去返回对应的结果,而如果key出现特殊字符,就会导致读取不到正确的值,从而出现上述影响。
【解决方案】
目前最佳的解决方案,我们仍建议将特殊字符做替换。
一、新版本优化(PT-146939 [8.1.0.20230309]及后续版本)
历史版本中,该问题会以表格空白的形式展示,可能会让使用者产生困惑。
在2023年3月份版本,我们做了一次数据上的优化,以及抛出了对应提示。我们将不含有非法字符的字段做了正常
关于HTML端SQL报表字段存在特殊字符时的中断空白或报错提示详解
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



