2011-02-16 50 views
2

我有一个jrxml文件,并希望添加一个子报表表达式。但是我只有myFile.jrxml,并且不能传递一个jasper文件。是否有可能将我的jrxml文件编译为不是使用java代码的jasper文件,而是使用当前的jrxml文件?如果可能的话,如何做到这一点?从jrxml文件中编译jrxml的jasper文件?可能吗?

<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR}+"/myFile.jasper"]]></subreportExpression> 

我尝试:

<subreport isUsingCache="true"> 

<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[net.sf.jasperreports.engine.JasperCompileManager.compileReport(net.sf.jasperreports.engine.xml.JRXmlLoader.load($P{SUBREPORT_DIR} + "myFile.jrxml"))]]></subreportExpression> 

</subreport> 

但是发生错误: 严重:错误评估表达式: 源文本:net.sf.jasperreports.engine.JasperCompileManager.compileReport(net.sf.jasperreports .engine.xml.JRXmlLoader.load($ P {SUBREPORT_DIR} +“myFile.jrxml”))

回答

2

从我在Ultimate Guide中读到的答案是否定的,这是不可能的。为什么你无法将子报表编译成jasper文件?

+0

因为我应该从父级jrxml传递一些参数。 – 2011-02-16 18:28:38

+4

您可以将参数传递给jasper文件,您不必将参数传递给jrxml然后编译。只需将你的参数传给碧玉,你应该没问题。 – Sean 2011-02-16 18:42:26

1

是的,这是可能的,我不知道这里使用的代码,只是打开iReport 5.0。打开.jrxml文件,它将在屏幕上显示转换选项。给路径保存.jasper文件。现在你有.jrxml,它可编辑jasper

3
<subreportExpression> 
    <![CDATA[JasperCompileManager.compileReport($P{SUBREPORT_DIR}+"/myFile.jrxml")]]> 
</subreportExpression> 
相关问题