首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么iReport要抛给我这些子报表异常?

为什么iReport要抛给我这些子报表异常?
EN

Stack Overflow用户
提问于 2015-09-24 23:15:46
回答 2查看 231关注 0票数 0

我是iReport的新手,到目前为止,我所做的只是运行一个已经编译好的报告。事实上,这是一个我们目前正在使用的报告,所以应该不会有任何问题。不过,每当我运行报告时,都会抛出以下错误消息

代码语言:javascript
复制
  Compiling to file... C:\Program Files\Fishbowl\reports\Custom\PackingListTacticalMedical2015.jasper
  Compiling subreports....
  Subreport C:\Program Files\Fishbowl\reports\Custom\SOPackingListTacticalMedical2015.jrxml already compiled.
  **Unable to locate the subreport with expression: "$P{cbLayoutFormat}.equals("standard") ? $P{path} + "POPackingList.jasper" : $P{cbLayoutFormat}.equals("carton") ? $P{path} + "cartonPOPackingList.jasper" : $P{path} + "POPackingListLoc.jasper"".**
  Compilation running time: 13,619

报告仍然在运行和编译,但是当我被提示“输入一个shipID”时--我确实这样做了--结果是空白的。我知道这条信息是什么意思,我只是不明白它的意思。

感谢任何可以在这方面提供指导或解释的人。

EN

回答 2

Stack Overflow用户

发布于 2015-09-25 00:37:34

尝试将子报表的表达式数据类型更改为InputStream,而不是字符串(路径),然后将子报表作为输入流作为参数进行传递。将您的子报表放在resources目录中。然后编译它。

代码语言:javascript
复制
InputStream subReportStream=getClass().getResourceAsStream("subReportName.jasper");

 params.put("SUBREPORT_STREAM", subReportStream);

this work fine for me.
票数 0
EN

Stack Overflow用户

发布于 2016-02-22 14:26:16

按照Fishbowl将其运行路径插入到$P{ path }参数中的方式,在编译和更改报表时,您需要关闭编译子报表选项。此外,如果您想在iReport中运行它,而不是在Fishbowl中运行,那么就必须知道您正在查找的所有数据库ID。解决这个问题的最简单的方法是将报告编译到它们的工作目录中,并且您可以在编译对报告的更改时在Fishbowl中进行刷新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32765033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档