我正在尝试样本报告。我成功连接了数据库。
我写了简单的查询
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...
请帮帮我。
答案 0 :(得分:1)
我认为您需要的是标准折线图而不是XY折线图。
XY折线图需要类别(在您的情况下为Country)和(X,Y)点。
答案 1 :(得分:0)
对于折线图,在图表数据中,类别表达式(Y轴)应该是可以强制转换为数字的值,而值表达式(X轴)可以是字符串。如果这两个值没有混淆,我们将转换为数字错误。