2010-10-20 61 views
1

我使用一些数据库连接使用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的用户定义的字段?

回答

1

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

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

亲切的问候, 塞尔

4

我不知道是什么原因导致你这个错误堆栈,但我认为这是因为你在你选择一个字段不报表中的字段的任何字段相匹配。
我的建议是使用报表查询窗口中的“读取字段”按钮,它填充字段变量与查询的字段,并避免以后的问题。

+0

我有同样的问题,你的技巧解决了!谢谢。 – 2014-01-24 15:59:38