0

我正在尝试样本报告。我成功连接数据库。

我写了简单的查询

select country, population from dataset
desc dataset;


| country    | varchar(25) | YES  |     | NULL    |       |

| population | int(9)      | YES  |     | NULL    |       |

我采用了空白图表,在此我使用了 XY 折线图。X 轴我给出了国家和 y 轴人口。当我单击预览按钮时,出现以下错误。

Error filling print... java.lang.String cannot be cast to java.lang.Number 
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
at net.sf.jasperreports.charts.fill.JRFillXySeries.evaluate(JRFillXySeries.java:159)     
at net.sf.jasperreports.charts.fill.JRFillXyDataset.customEvaluate(JRFillXyDataset.java:121)    
at net.sf.jasperreports.engine.fill.JRFillElementDataset.evaluate(JRFillElementDataset.java:155)     
at net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:160)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:765)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)     
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)     
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)     
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)     
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)     
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)     
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)     
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)     
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) 
Print not filled. Try to use an EmptyDataSource...

请帮我。

4

2 回答 2

1

我认为您需要的是标准折线图而不是 XY 折线图。

XY 折线图需要类别(在您的情况下是 Country)和 (X,Y) 点。

于 2013-04-22T18:59:54.810 回答
0

对于折线图,在图表数据中,类别表达式(Y 轴)应该是可以转换为数字的值,而值表达式(X 轴)可以是字符串。如果这 2 个值没有混淆,我们将出现强制转换为 Number 错误。

于 2016-12-09T17:07:47.323 回答