我试图生成一个碧玉报告。它在我的Netbeans ide中工作,但在编译之后它不起作用并且没有显示错误。阅读此Jasper report is not working after making jar file后,我将代码更改为此内容。
InputStream path = getClass().getResourceAsStream("\\my_package\\ChartOfAccounts.jasper");
HashMap param = new HashMap();
String cpname = cmpName();
String cpadd = cmpAdd();
param.put("CompanyName",cpname);
param.put("Address", cpadd);
JasperReport jr = (JasperReport)JRLoader.loadObjectFromFile(path);
JasperPrint jp = JasperFillManager.fillReport(jr, param, conn);
JasperViewer jv = new JasperViewer (jp,false);
jv.setTitle("Chart of Accounts");
jv.setVisible(true);
但是当我使用
时JasperReport jr = (JasperReport)JRLoader.loadObjectFromFile(path);
它说我应该在那里使用字符串类型变量。我该怎么办?
答案 0 :(得分:1)
根据http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/util/JRLoader.html 有几种加载对象的方法。 JRLoader.loadObjectFromFile将String作为参数,并在上面的代码中传递一个导致错误的InputStream。
根据用例,您应该考虑调用哪种方法。 如果您需要使用InputStream,则应使用JRLoader.loadObject(InputStream) 如果您需要从文件中读取(该文件位于程序外部并且不在类路径上),则应使用JRLoader.loadObjectFromFile