预览数据全部正常,但是无论是使用了模板参数还是数据集参数对时间过滤,金额都没有数据,但数量有数据;去掉对时间的过滤,则正常。这是为什么呀?要怎么处理呢?
图1 预览数据
图2 没有过滤的报表显示结果
图3 对时间过滤后
图4 对模板参数过滤
图5 数据集参数过滤
可以先试试不用if直接查询时间条件,看看数据是否正常
或者把控件名的汉字去掉,都换成英文
and(1=1 ${if(len(sqstr) == 0,"","and 开始日期>='"+sqstr+"'")}and1=1 ${if(len(sqend) == 0,"","and 开始日期<='"+sqend+"'")})and(1=1 ${if(len(spstr) == 0,"","and 结束日期>='"+spstr+"'")}and1=1 ${if(len(spend) == 0,"","and 结束日期<='"+spend+"'")})
照着改就好了
应该是你的日期的格式不一致导致的。请问你数据库里面日期的数据类型是什么呢。 将两边的数据类型调成一应该就可以了
不考虑效率的情况可以考虑把数据的日期字段转换为 字符串,然后 报表查询参数控件返回的值也转换成对应格式就可以了
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')")}
可使用上面两句传日期试一下,我猜数据库里面是日期格式的,所以需要先转化成日期