2012-03-20 11 views

答えて

27

たとえば、JasperCompileManager.compileReport(java.lang.String sourceFileName)メソッドの助けを借りて、簡単なレポートのようにサブレポートをコンパイルできます。

その後、コンパイルされたサブレポートをパラメータとしてマスタレポートに渡すことができます。

サンプル:

JasperReport jasperMasterReport = JasperCompileManager.compileReport(masterReportSource); 
JasperReport jasperSubReport = JasperCompileManager.compileReport(subReportSource); 

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

JasperFillManager.fillReportToFile(jasperMasterReport, parameters, connection); 

スニペットマスターレポートのjrxmlファイル(サンプル)から:

<parameter name="subreportParameter" class="net.sf.jasperreports.engine.JasperReport"/> 
... 
<detail> 
    <band height="50"> 
     ... 
     <subreport> 
       <reportElement isPrintRepeatedValues="false" x="5" y="25" width="325" height="20" isRemoveLineWhenBlank="true" backcolor="#ffcc99"/> 
       <subreportParameter name="City"> 
        <subreportParameterExpression><![CDATA[$F{City}]]></subreportParameterExpression> 
       </subreportParameter> 
       <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
       <returnValue subreportVariable="PriceSum" toVariable="ProductTotalPrice" calculation="Sum"/> 
       <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreportParameter}]]></subreportExpression> 
      </subreport> 
+3

@Alex_Kの男、私はあなたを愛し、私は本当にそれを意味、これは素晴らしいです! ;) –

+1

それは働いていない! –

+0

x、y、width、heightの値を動的に変更できますか? – user1791574

関連する問題