我已经通过Netbeans和Jasper Report完成了我的java项目。我将文件复制到另一台笔记本电脑并运行jar文件,但是当我从与子报告有关的jar文件运行报告时出现错误:
net.sf.jasperreports.engine.jrexception resource not found at ...path
它试图查看我已经开发了我的程序和报告的子报告的原始路径。现在,因为我想将程序运行到另一台笔记本电脑,我再也没有这条路了。该怎么办?如何将子报表设置为相对路径?我有这个子报告表达式:
$P{SUBREPORT_DIR} + "SubReport_Items.jasper"
请帮忙......
答案 0 :(得分:0)
你可以不在jasper报告中使用相对路径,这就是你通常使用$P{SUBREPORT_DIR}
的原因,因为$P{SUBREPORT_DIR}
是参数,你的应用程序可以使用相对路径然后通过jasper报告的绝对路径。
java代码示例
File reportDir = new File("myReportDirRealtiveToApplication"); //relative path
String absolutePath = reportDir.getAbsolutePath() + File.separator; //Convert to absolute
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("SUBREPORT_DIR", absolutePath); //Pass as parameter
将参数贴图传递给导出/填充方法,下面是一个示例,当然您将使用当前正在使用的内容....
JasperFillManager.fillReportToFile(jasperFileName, paramMap, myConnection); //Fill the report