2014-09-01 43 views
0

即时通讯尝试在Java程序中实现报告。我有一个用户填写的表格,最后有一个“打印报告”按钮。Java - 使用ActionListener调用JasperReport

我需要做的是将字符串数组发送到将填充JasperReport参数的方法。

我有JasperReport JRXML文件设置并且TextFields等于参数。我只想从Java程序发送参数,然后打印报告。

在此先感谢。

回答

2

您可以参考以下代码。把它放到你的监听器中。

 File file=new File("demo.jrxml"); 
     InputStream stream=new FileInputStream(file); 
     JasperDesign design=JRXmlLoader.load(stream); 
     JasperReport report=JasperCompileManager.compileReport(design); 

     Map<String, Object> params=new HashMap<String, Object>(); 
     params.put("param1", "data1"); // note here you can add parameters which would be utilized by the report 

     JasperPrint print=JasperFillManager.fillReport(report, params,new JREmptyDataSource()); 
     //use JasperExportManager to export report to your desired requirement 

Note:可以指定你想要的参数,我已经使用的数据源是JREmptyDataSource,您可以根据您的要求指定。

希望它可以帮助你。

+0

这真的很棒。我无法完全测试它,因为我还没有完全弄清楚报告。我似乎要创建一个Jasper文件。我是否通过SQL查询作为参数或所有变量作为参数发送? – user237462 2014-09-02 10:41:45

+0

好吧,所以我现在需要知道的是如何使用打印选项在屏幕上显示它。也许只是发送到打印机,Windows将显示打印预览。 – user237462 2014-09-02 11:30:18

+0

首先发送的参数取决于您的报告。如果要直接在报告上显示值,请将它们作为参数发送。或者,您始终可以将查询放入报告本身。 – 2014-09-02 12:59:12