未知的列名称问题

时间:2010-10-20 09:36:11

标签: jasper-reports

我正在使用iReport使用某些数据库连接创建JasperReports的报告。我在报告中添加了一个新字段。该字段在数据库列中不存在。我已将该列放在报表中,并使用表达式将值分配给此字段。

它编译得很好但是当我使用数据库填充报告时,它会给我错误:

Error filling print... Unknown column name : test 
net.sf.jasperreports.engine.JRException: Unknown column name : test
at net.sf.jasperreports.engine.JRResultSetDataSource.getColumnIndex(JRResultSetDataSource.java:355) 
at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:112)  
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:823)  
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:787)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1474)  
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:125) 
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938)  
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841)  
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)  
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)  
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)  
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:858)
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...

如何在JasperReports中使用用户定义的字段?

2 个答案:

答案 0 :(得分:4)

我不确定导致此错误堆栈的原因但我认为这是因为您的SELECT中有一个字段与报表字段中的任何字段都不匹配。
我的建议是在报告查询窗口中使用“读取字段”按钮,它使用查询字段填充字段变量,避免以后出现问题。

答案 1 :(得分:1)

一个原因可能是字段$ F {name}的长度。名称不应超过32个字符(字段< 32)。

我也有这个例外,但重命名字段后一切正常。

亲切的问候, 哔叽