参数过滤对报表有影响,某些字段不显示

预览数据全部正常,但是无论是使用了模板参数还是数据集参数对时间过滤,金额都没有数据,但数量有数据;去掉对时间的过滤,则正常。这是为什么呀?要怎么处理呢?

        图1 预览数据

Q090601.png

     图2 没有过滤的报表显示结果

     图3 对时间过滤后

Q090604.png

 图4 对模板参数过滤

  图5 数据集参数过滤


FineReport tanii 发布于 2019-9-6 16:14
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
firegunzxLv6高级互助
发布于2019-9-6 16:36(编辑于 2019-9-6 16:37)

可以先试试不用if直接查询时间条件,看看数据是否正常

或者把控件名的汉字去掉,都换成英文

最佳回答
0
凌建Lv7高级互助
发布于2019-9-6 16:16

and

(1=1 ${if(len(sqstr) == 0,"","and 开始日期>='"+sqstr+"'")}

and

1=1 ${if(len(sqend) == 0,"","and 开始日期<='"+sqend+"'")}

)

and

(

1=1 ${if(len(spstr) == 0,"","and 结束日期>='"+spstr+"'")}

and

1=1 ${if(len(spend) == 0,"","and 结束日期<='"+spend+"'")}

)

照着改就好了

  • tanii tanii(提问者) where 1=1 ${if(len(日期start)=0,\"\",\" and a.FDate >=\'\"+日期start+\"\'\")}${if(len(日期end)=0,\"\",\" and a.FDate<=\'\"+日期end+\"\'\")} 所以我这写的有什么问题啊?不是一样的嘛,哭了
    2019-09-06 16:20 
  • 凌建 凌建 回复 tanii(提问者) 中间还少个AND
    2019-09-06 16:22 
  • tanii tanii(提问者) 回复 凌建 还是不可以,我数据集参数写的没什么问题,我把他改成模板参数也是同样的结果。对数据都是可以过滤的,数量明显会根据选择的不同有相应变化,但是就是没有金额。把对时间的过滤去掉就有金额了
    2019-09-06 16:32 
  • 凌建 凌建 回复 tanii(提问者) 日期格式转换了没有
    2019-09-06 16:33 
最佳回答
0
touyuan001Lv6中级互助
发布于2019-9-6 16:27(编辑于 2019-9-6 16:29)

应该是你的日期的格式不一致导致的。请问你数据库里面日期的数据类型是什么呢。 将两边的数据类型调成一应该就可以了


不考虑效率的情况可以考虑把数据的日期字段转换为 字符串,然后 报表查询参数控件返回的值也转换成对应格式就可以了

最佳回答
0
Kevin-sLv7中级互助
发布于2019-9-6 16:30(编辑于 2019-9-6 16:31)

where 1=1 ${if(len(日期start)=0,""," and a.FDate >=TO_DATE('"+日期start+"', 'YYYY-MM-DD')")}

${if(len(日期end)=0,""," and a.FDate <=TO_DATE('"+日期end+"', 'YYYY-MM-DD')")}

可使用上面两句传日期试一下,我猜数据库里面是日期格式的,所以需要先转化成日期

  • tanii tanii(提问者) 不能用ToDate
    com.microsoft.sqlserver.jdbc.SQLServerException: \'TO_DATE\' 不是可以识别的 内置函数名称。
    2019-09-06 16:49 
  • 5关注人数
  • 460浏览人数
  • 最后回答于:2019-9-6 16:37
    请选择关闭问题的原因
    确定 取消
    返回顶部