我正在尝试使用 JasperReports 在我的项目中创建报告。
我已经生成了.jrxml文件。之后我创建了前端(表单),点击“提交”后,我需要打印报告。单击“提交”按钮,我在Action类中调用以下代码( Struts 1.2 ),
if (actionForm.get("hiddenAction").toString().equalsIgnoreCase("Submit")) {
try {
//DataBase
connection = ConnectionHelper.getUniqueInstance().getConnectionFromPool();
Map<String, Object> parameters = new HashMap<String, Object>();
String report = "E:\\Report\\RP_BI_SUCCESS.jrxml";
String fromStrDate = "01/12/2013";
String toStrDate = "25/12/2013";
parameters.put("I_SPMID", 0);
parameters.put("I_GATEWAYLKUPID", 0);
parameters.put("I_FROMDATE", Utilities.convertStringDateToSQLDate(fromStrDate));
parameters.put("I_TODATE", Utilities.convertStringDateToSQLDate(toStrDate));
parameters.put("I_MODE", "A");
try {
JasperReport jr = JasperCompileManager.compileReport(report);
JasperPrint jasperPrint = JasperFillManager.fillReport(jr, parameters, connection);
JasperViewer.viewReport(jasperPrint);
jasperPrint = null;
} catch (Throwable t) {
t.printStackTrace();
}
}
}
为了进行设置,我在项目的一个文件夹中使用了 JasperReports 5.5.0 (可执行的JAR文件)。
案例1: 当我点击“提交”按钮时,我能够获得 JasperViewer 窗口,其中包含我想要的必要报告。然后,如果我关闭报告, Tomcat Apache服务器( Tomcat Apache V 7.0 )将自动关闭。
案例2: 但是,如果我再次点击“提交”而不关闭之前打开的报告,那么就可以了。
有谁可以帮我解决这个问题?
答案 0 :(得分:0)
尝试替换
Jasper.viewReport(jasperPrint)
通过
JasperViewer jasperViewer = new JasperViewer(jasperPrint, false, null);
jasperViewer.setVisible(真);
它对我来说在Tomcat中运行得很好,而Glassfish却没有。