2011-02-16 197 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> 
相關問題