错误填写打印...... java.lang.String中不能被强制转换为java.lang.Number中

时间:2013-04-20 10:11:18

标签: jasper-reports ireport

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

我写了简单的查询

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...

请帮帮我。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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