2013-11-27 25 views
-2

我想在我最近的窗口,以從JTextField的值iReport的,而不是從數據庫。最近生成的窗口從JTextField中值的iReport iReport的到文本框

比如我有我的CategoryPanel這個txtCategory(JTextField中)。現在,當我點擊PRINT按鈕時,我想獲取txtCategory的文本值,並將其放入iReport/JasperReport中的一個文本框中。我該怎麼做?有人能幫我嗎?我在Netbeans編譯器中使用iReport插件。謝謝。

+1

* iReport *只是一個用於構建報表模板的GUI設計器。你是什​​麼意思:'我想生成iReport'? –

+0

我的意思是我想生成報告usig iReport/JasperReport模板。我通過我的數據庫使用這個。通過執行sql查詢獲取我想要保存在pdf/print中的報告。但現在,我想從jTextfield(而不是從數據庫)生成報告數據到iReport中的textfield。 – miles

+0

您可以使用[JavaBean Data Sources](http://jasperreports.sourceforge.net/sample.reference/datasource/index.html#javabeandatasources) –

回答

0

如果我理解你的問題,你可以通過參數傳遞你的JTextField數據轉換成報告。

JasperReport jasperReport; 
JasperPrint jasperPrint; 
HashMap params = new HashMap(); 
FileInputStream reportStream; 
try { 
    FileInputStream reportStream = new FileInputStream(new File("report.jasper"); 
    HashMap params = new HashMap(); 
    params.put("TEXT_VALUE", jTextField.getText()); 
    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportStream); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(
       jasperReport, params, DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", root, root)); 
    JasperViewer jReportsViewer = new JasperViewer(jasperPrint, false); 
    jReportsViewer.setFitWidthZoomRatio(); 
    jReportsViewer.setVisible(true); 
    reportStream.close(); 

在你報告中,你必須創建類java.lang.String或Object的參數TEXT_VALUE。之後,您需要在textField中將其定義爲$ P {TEXT_VALUE} ... 我希望這是您正在尋找的答案。