当前位置: 首页 > 知识库问答 >
问题:

如何使用java代码中的子报表运行JasperReports的报表。未找到子报表

莘欣怿
2023-03-14

当我使用iReport v2.0.4制作一些带有子报告的报告时,我遵循了这个代码示例

现在我想运行Java这个报告。我的代码是:

 String rs="E:\\Myproject\\NetBeansProjects\\Inventory_control_system_for_hotel\\
          Mainreportname.jrxml";

 JasperReport jasperMasterReport = JasperCompileManager.compileReport(rs);

 Map<String, Object> parameters = new HashMap<String, Object>();
 parameters.put("para_custId", "66778999");     

 JasperPrint jasperPrint=JasperFillManager.fillReport(jasperMasterReport, parameters, JDBC41.con());

 JasperViewer.viewReport(jasperPrint, false);

给出以下错误

    net.sf.jasperreports.engine.JRException: Could not load object from     location\Invoice_ireport_subreport2.jasper
  at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:266)
  at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:308)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:257)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:795)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
at inventory_control_system_for_hotel.newquery.main(newquery.java:77)

现在我正在更改我的IReport版本5.5像这样的错误

`java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)` 

保存我的报告Path=E:\Myproject\NetBeansProjects\Inventory_control_system_for_hotel\Mainreportname.jrxmlSub repoth=E:\Myproject\NetBeansProjects\Inventory_control_system_for_hotel\Subreportname.jrxml像这样

共有1个答案

芮瑾瑜
2023-03-14

在ireport中链接报表和子报表时,必须设置属性“subreport expresion”,该属性是相对于子报表所在的类路径的路径。

Subreport expresion=“报告/发票\u ireport\u subreport2.jasper.jasper”

您的项目中有如下内容:

SRC/main/资源/报告/Invoice_ireport_subreport2.jasper.jasper

 类似资料:
  • 问题内容: 我试图找出为什么我的报告停止工作后我添加了一个报表给它。我已经确认并尝试过所有类似的问题在这里,这里和这里。没有成功。子报表肯定位于同一目录中。定义看起来像: $ P {SUBREPORT_DIR}在哪里 而且仍然出现错误: 为什么?? 问题答案: 在第一条消息中 在哪里 是目录,但不是文件名。这是第一个错误。 第二个:有时jasper找不到子报表,即使路径正确也是如此。 解决此问题的

  • 主要内容:JasperReports <subreport>元素子报表是 JasperReports 的一项不错的功能。此功能允许将一个报表合并到另一个报表中,即一个报表可以是另一个报表的子报表。子报表帮助我们保持报表设计简单,因为我们可以创建许多简单的报表并将它们封装到主报表中。子报告的编译和填充就像普通报告一样。当合并到另一个报告模板中时,任何报告模板都可以用作子报告,(报告模板的)内部没有任何更改。 子报表就像普通的报表模板。它们实际上是net.sf.j

  • 我正在尝试用JasperReports创建一个XLS-Reports。为此,我使用了JasperReports 5.5.0(以及同一版本中的iReport)和apache POI3.9。 基结构是一个带有子报表的主报表,该子报表还包含另一个子报表。为了更好地理解一些代码示例: 我的问题是,如果母版的行高大于子报表的整个带高,子报表就不会将其带高延伸到母版的行高。我知道它必须只是一个简单的组合设置,

  • 我有 2 个子报表,每个子报表包含将成为结果表的一列的信息。由于某些条目很长,我为两个子报表的行提供了相同的通用高度大小,该大小足以满足匆忙的效果,但现在它看起来很丑,所以他们希望我更改它。所以我想知道是否有办法协调两个子报表,以便给定条目中具有最高单元格的子报表指示所有行的宽度,并将该信息发送到另一个子报表以调整同一条目的大小,就像在一个子报表中的常规表上发生的那样。如果这是可能的,还是我必须使

  • 我创建Jasper报告的java代码是 当我在不使用子报表的情况下创建报表时,它会成功运行。当我插入任何子报表时,代码失败,异常显示 我在某个地方读过这一行来使用子报表。 我还需要使用此代码吗?我是PHP开发人员。不太懂爪哇。我使用Jasper报告,因为我们需要创建大PDF。这个工具帮了我们太多。但现在我被一个需要使用子报表的新报告所困扰。

  • 我已经创建了一个Jasper报告,我正试图将报告集成到主报告中。我可以按原样填充子报表中的数据,但如果我将其集成到主报表中,我就不能呈现我在子报表中呈现的数据。事实上,我在集成子报表的地方得到了空白。