首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JasperReports无法呈现带有错误“空‘周期’参数”的时间序列图表

问JasperReports无法呈现带有错误“空‘周期’参数”的时间序列图表
EN

Stack Overflow用户
提问于 2017-10-11 13:48:55
回答 1查看 851关注 0票数 1

我有一个相对简单的查询,每行返回3个数据字段,其中包含一个日期。就像这样:

代码语言:javascript
复制
SELECT DATE(date) AS date, val1, val2
FROM tables
WHERE ...

从报告本身(详细信息带),我可以确认所有的“日期”字段都是非空的。我的时间序列图的设置如下:

  • TimePeriod:日
  • 时间段表达式:$F{date}
  • (级数)值$F{val2} - $F{val2}

我得到的错误是:

代码语言:javascript
复制
java.lang.IllegalArgumentException: Null 'period' argument.
at org.jfree.chart.util.ParamChecks.nullNotPermitted(ParamChecks.java:65)
at org.jfree.data.time.TimeSeriesDataItem.<init>(TimeSeriesDataItem.java:99)
at org.jfree.data.time.TimeSeries.addOrUpdate(TimeSeries.java:887)
...

我甚至尝试将“时间段表达式”设置为(null == $F{date} ? "foo" : $F{date})表达式,只是为了看看是否可以让它以不同的方式失败(比如ClassCastException),但是它仍然会在相同的消息中失败。

$F{date}的数据类型是java.sql.Date,另外两个字段的数据类型都是java.lang.Long。

我正在使用Jasper 6.4.0,如果这有什么不同的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 13:59:18

我可能找到了一个答案,看起来它可能是JasperReports中的一个bug。

在发帖之前,我在网上搜索这个问题的答案,而大多数问题都没有得到回答,或者回答的思路是“也发生在我身上”或“为我工作”,而没有任何真正的答案。

在对每一个可能的null值进行处理之后,它仍然没有工作。因此,我尝试将"TimePeriod“设置更改为"”,以查看会发生什么。没有改变,但回到编辑图表时,我注意到"Day“仍然是"TimePeriod”参数的设置。真奇怪。

我真的很想要白天级别的报告,但我是在抓稻草,所以我把TimePeriod改为"Week",报告成功地运行了。

然后,我将"TimePeriod“从"Week”改为"Day“,并且没有出错。因此,可能默认的"TimePeriod“设置实际上是<NULL>,但是Jasper将其显示为”日“,而它实际上不是?我不知道。但是,尝试将TimePeriod更改为其他东西,然后更改为您真正想要的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46689939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档