Charts JasperReports无法呈现带有错误“的时间序列图”;空';期间';“论点”;

Charts JasperReports无法呈现带有错误“的时间序列图”;空';期间';“论点”;,charts,jasper-reports,time-series,Charts,Jasper Reports,Time Series,我有一个相对简单的查询,每行返回3个数据字段,带有日期。大概是这样的: SELECT DATE(date) AS date, val1, val2 FROM tables WHERE ... 从报告本身(细节栏),我可以确认所有的“日期”字段都是非空的。我的时间序列图表的设置如下所示: 时间段:天 时间段表达式:$F{date} (系列)值$F{val2}-$F{val2} 我得到的错误是: java.lang.IllegalArgumentException: Null 'period'

我有一个相对简单的查询,每行返回3个数据字段,带有日期。大概是这样的:

SELECT DATE(date) AS date, val1, val2
FROM tables
WHERE ...
从报告本身(细节栏),我可以确认所有的“日期”字段都是非空的。我的时间序列图表的设置如下所示:

  • 时间段:天
  • 时间段表达式:
    $F{date}
  • (系列)值
    $F{val2}-$F{val2}
我得到的错误是:

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)
...
java.lang.IllegalArgumentException:Null'period'参数。
在org.jfree.chart.util.ParamChecks.nullnotapproved上(ParamChecks.java:65)
在org.jfree.data.time.TimeSeriesDataItem.(TimeSeriesDataItem.java:99)
位于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 Studio 6.4.0。

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

在发布之前,我在网上搜索了这个问题的答案,大多数问题都没有答案,或者回答都是“也发生在我身上”或“对我有用”,没有任何真正的答案

在安排好每一个可能的
null
值进行处理后,它仍然不起作用。所以我试着将“TimePeriod”设置更改为“”,看看会发生什么。没有变化,但回到编辑图表时,我注意到“Day”仍然是“TimePeriod”参数的设置。奇怪

我真的很想要日级别的报告,但我正在抓紧救命稻草,所以我将时间段改为“周”,报告成功运行

然后,我将“时间段”从“周”改回“天”,它运行时没有错误。因此,也许默认的“时间段”设置实际上是
,但Jasper Studio将其显示为“天”,而实际上不是?我不知道。但是试着把时间段改成其他的,然后改成你真正想要的