2010-10-20 91 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