lemo12青铜四
2023-8-16 15:07:45 发布在问答
表格数据过滤后为空时,报表报错
表格数据过滤后为空时,报表报错,请问如何解决?脚本参数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-08-16 15:07:46

那就不是这里影响的,看报错是类型转换失败,检查下呢
查看完整内容
1398
4
精彩评论4
yhdata_yzm
发表于 2023-8-16 15:07:46 显示全部楼层
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)) ...

那就不是这里影响的,看报错是类型转换失败,检查下呢
回复

使用道具 2#

yhdata_yzm
发表于 2023-8-16 15:27:26 显示全部楼层
加一层判断if(pcqh !=null)或者if(pcqh.size()>1)再去执行脚本呢
回复

使用道具 3#

lemo12青铜四
发表于 2023-8-16 17:56:16 显示全部楼层
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

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

使用道具 4#

lemo12青铜四
发表于 2023-8-16 20:36:13 显示全部楼层
本帖最后由 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

回复

使用道具 5#

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
1500W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部