2

サブレポートを含むレポート テンプレートがあります。
メイン レポートには、サブレポートでも使用できるパラメータがいくつかあります。
メイン レポート パラメータは次のように定義されます。

<parameter name="PID" class="java.lang.Integer"/>

サブレポートでは、同じ名前で同じパラメーターを定義しました。

<parameter name="PID" class="java.lang.Integer"/>

そして、次のようにサブレポートのマスターレポートのパラメーターを提供しました:\

     <subreport>
            <reportElement x="0" y="0" width="555" height="50"/>
            <parametersMapExpression>
                 new HashMap($P{REPORT_PARAMETERS_MAP})
            </parametersMapExpression>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression class="java.lang.String"><![CDATA["subRPT.jasper"]]></subreportExpression>
     </subreport>

しかし、これはこれをスローします:

SEVERE: null
net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Incompatible java.lang.Integer value assigned to parameter PID in the subRPT dataset.
    at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:711)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:329)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:419)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2035)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
    at biorec.control.reporting$1.doInBackground(reporting.java:177)

何が問題ですか?

ありがとう

4

3 に答える 3

1

最初にサブレポート JRXML を Jasper サーバーに保存してから、同じサブレポートを使用するデスクトップに保存し、パレットからサブレポート要素をドラッグします。

ステップ1:-

    Select "Use an existing report" option and select the same subreport 

     it will ask for database, if you are using the same database 

次に、[次へ] ボタンをクリックします

    then it will ask for parameters , select all the parameter expression 

そして次

  choose "Store the directory name in  a parameter" option 

その後終了。

サブレポートを選択してプロパティタブに移動すると、Ireport では実行されず、「サブレポート式」を選択します。ここで、Jasperserver にあるサブレポートのパスを指定する必要があります。

 format "repo:/path_of_subreport in jasper".
于 2012-12-10T10:20:12.017 に答える
1
<subreportParameter name="PID">
    <subreportParameterExpression>
        <![CDATA[$P{PID}]]> 
    </subreportParameterExpression>
</subreportParameter>
于 2012-12-12T08:56:07.513 に答える
0

皆さん、ありがとうございます。
しかし問題は、私の JasperReport ライブラリと iReport の間のバージョンの不一致にありました。
同じバージョンを使用すると問題が修正されました。

于 2013-01-05T18:50:54.200 に答える