用IReport做图表报异常Error filling print... Null 'key' argument的解决办法!

昨天下午在用IReport做图表,运行报表的时候,一直出现异常信息:

Error filling print... Null 'key' argument.
java.lang.IllegalArgumentException: Null 'key' argument.
    at org.jfree.data.DefaultKeyedValues.setValue(DefaultKeyedValues.java:225)
    at org.jfree.data.general.DefaultPieDataset.setValue(DefaultPieDataset.java:187)
    at net.sf.jasperreports.charts.fill.JRFillPieDataset.customIncrement(JRFillPieDataset.java:159)
    at net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:169)
    at net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:152)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:682)

SQL为:

select b.branchname,count(o.operatorid) as ncount from tnoperator o left join tnbranch b on o.branchno=b.branchno group by b.branchname

一开始以为是报表的什么参数有误,但是找了很久也没有找到有什么报表参数会造成这个问题。后来在网上看了无数帖子,也没有人提到这种错误可能的原因。后来无意之中看到了自己写的SQL语句,而后在SQL工具中,执行了一下这条SQL语句,结果发现了一行数据中竟然有一列的数据是null值,难道是这个原因,在SQL中加上过滤条件“is not null”之后,再次执行报表,顺利通过。

更改后的SQL为:

select b.branchname,count(o.operatorid) as ncount from tnoperator o left join tnbranch b on o.branchno=b.branchno where b.branchname is not null group by b.branchname

你可能感兴趣的:(JOIN,sql,null,工具,报表)