永洪社区

标题: 表格数据过滤后为空时,报表报错 [打印本页]

作者: lemo12    时间: 2023-8-16 15:07
标题: 表格数据过滤后为空时,报表报错
表格数据过滤后为空时,报表报错,请问如何解决?脚本参数pcqh取的图表1的汇总值,相关脚如下:
var pcqh = getViewData("图表1", DATA);
var R_pcqh=pcqh.size()-1
var S_pcqh=abs(pcqh.get(R_pcqh,6))
if (isNull(S_pcqh))
{var S_pcqh1=0
param["sum_pcqh"]=S_pcqh1
}
else
param["sum_pcqh"]=S_pcqh



图1-编辑图表时


图2-预览报表时报错

作者: yhdata_yzm    时间: 2023-8-16 15:07
lemo12 发表于 2023-8-16 17:56
var pcqh = getViewData("图表1", DATA);
var R_pcqh=pcqh.size()-1
var S_pcqh=abs(pcqh.get(R_pcqh,6)) ...

那就不是这里影响的,看报错是类型转换失败,检查下呢
作者: yhdata_yzm    时间: 2023-8-16 15:27
加一层判断if(pcqh !=null)或者if(pcqh.size()>1)再去执行脚本呢
作者: lemo12    时间: 2023-8-16 17:56
yhdata_yzm 发表于 2023-8-16 15:27
加一层判断if(pcqh !=null)或者if(pcqh.size()>1)再去执行脚本呢

var pcqh = getViewData("图表1", DATA);
var R_pcqh=pcqh.size()-1
var S_pcqh=abs(pcqh.get(R_pcqh,6))
if (pcqh.size()>1)
param["sum_pcqh"]=S_pcqh
else
param["sum_pcqh"]=0

我这样改了下,好象没啥用,还是报错

作者: lemo12    时间: 2023-8-16 20:36
本帖最后由 lemo12 于 2023-8-17 19:54 编辑
yhdata_yzm 发表于 2023-8-16 18:05
那就不是这里影响的,看报错是类型转换失败,检查下呢

确实是类型的问题。如果有行数,size-1就是最后一行,但是没有数据时候,size-1=0,取到了表头,所以取绝对值会报不是数值类型。
脚本加了判断就可以了,感谢!!!

var pcqh = getViewData("图表1", DATA);
var R_pcqh=pcqh.size()-1
if (R_pcqh>1) {
var S_pcqh=abs(pcqh.get(R_pcqh,6))
}
else
var S_pcqh=0
//{var S_pcqh=abs(pcqh.get(1,6))}
param["sum_pcqh"]=S_pcqh






欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4