我使用的iReport 5.0.1工具来创建Jasper报表,我的报告得到正确的编译,但是当我点击预览按钮,它会引发以下错误:Jasper报表区域设置错误
错误说明:
Filling report...
Locale: English (United States)
Time zone: Default
Error filling print... Can't find bundle for base name Report_en_US, locale en_US
java.util.MissingResourceException: Can't find bundle for base name Report_en_US, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:952)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:660)
at net.sf.jasperreports.engine.util.JRResourcesUtil.loadResourceBundle(JRResourcesUtil.java:598)
at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:570)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:605)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1257)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:88)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:569)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915)
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:928)
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...
我使用下面的Java代码来生成报告:
InputStream input = new FileInputStream(request.getRealPath(compiledTemplate));
Map<String,Object> parameters = new HashMap<String,Object>();
Locale locale = (Locale)request.getSession().getAttribute(GFDBConstants.WW_TRANS_I18N_LOCALE);
System.out.println("locale is ******" +"" + locale);
ResourceBundle rbundle = ResourceBundle.getBundle("Report", locale);
parameters.put(JRParameter.REPORT_RESOURCE_BUNDLE, rbundle);
System.out.println("Resource Bundle is ********" +rbundle);
parameters.put(JRParameter.REPORT_LOCALE, locale);
parameters.put("CONTEXT",request.getServletContext().getRealPath("/"));
JasperPrint print = JasperFillManager.fillReport(input, parameters, jrBeanCollectionDataSource);
ByteArrayOutputStream outputByteStream = new ByteArrayOutputStream();
JRCsvExporter csvExporter = new JRCsvExporter();
csvExporter.setParameter(JRCsvExporterParameter.JASPER_PRINT, print);
csvExporter.setParameter(JRCsvExporterParameter.OUTPUT_STREAM, outputByteStream);
System.out.println("After report generated successfully");
csvExporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ",");
csvExporter.setParameter(JRCsvExporterParameter.RECORD_DELIMITER, "\n");
csvExporter.setParameter(JRCsvExporterParameter.IGNORE_PAGE_MARGINS, true);
System.out.println("\n successfully generated");
csvExporter.exportReport();
input.close();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "attachment;filename=" + csvFileName);
ServletOutputStream outStream = response.getOutputStream();
outStream.write(outputByteStream.toByteArray());
outStream.flush();
outStream.close();
嗯,'我期待在这个快速反应这对我来说迫切' - 祝你好运! – halfer