找文章 / 找答案
精选问答 更多内容

表格数据过滤后为空时,报表报错

lemo12青铜二 显示全部楼层 发表于 2023-8-16 15:07:45 |阅读模式 打印 上一主题 下一主题
1
已解决

表格数据过滤后为空时,报表报错

  • lemo12青铜二
  • 2023-08-16 15:07:45
  • 发布在 论坛
1081 4
表格数据过滤后为空时,报表报错,请问如何解决?脚本参数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 关注Ta

2023-08-16 15:07:46

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

使用道具 举报

精彩评论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)) ...

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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