レポートの日付をメイン レポートからサブ レポートに渡すJasperReportがあります。これはうまくいきます。複数のサブレポートを持つサブレポートに同じパラメーターを渡す別の場所もあります。Ireportsでプレビューすると、すべてのページが空白で表示されます。これは、サブサブレポートが呼び出されていることを意味しますが、すべてのサブサブレポート SQL がレポート日付で条件付けられているため、レポート日付が渡されていません。レポートの日付フィールドをサブサブレポートに取得するにはどうすればよいですか? サブレポートをプレビューしてレポートの日付を入力すると、すべてのレポートの日付が機能し、4 つのページすべてに正しいデータが入力されます。
質問する
84108 次
3 に答える
43
パラメータをサブレポートに渡すには、次の手順に従います。
- などのメイン レポート パラメータを作成します
DATE_PARAM
。 - サブレポートを開き、同じ名前と同じタイプのパラメーターを作成します。
- メインレポートに戻る
- サブレポートを右クリックし、プロパティを選択します
- パラメータを選択
- パラメータ名が同じパラメータ名で、メイン レポートからサブ レポートにパラメータを追加します。
パラメーターは、メイン レポートからサブレポートに渡されます。
于 2013-02-17T13:06:47.643 に答える
19
私の推測では、彼らはデフォルト値を使用しています。
メインレポートのパラメータのTEST_DATE
名前がであり、サブレポートの名前がであると仮定すると、XMLTEST_DATE2
の開始要素と終了要素の間に以下を追加する必要があります。subreport
<subreportParameter name="TEST_DATE2">
<subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression>
</subreportParameter>
完全を期すために、メインレポートとサブレポートがある例を次に示します。これは、の値を変更して、SUBREPORT_DIR
配置した場所を指すようにするだけで機能します。
report1.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7e2bc622-d768-437e-8c33-fc777bc06f8c">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEST_DATE" class="java.util.Date"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["C:\\Reports\\"]]></defaultValueExpression>
</parameter>
<pageHeader>
<band height="83" splitType="Stretch">
<textField>
<reportElement uuid="4a2cf434-4473-48db-a89f-17a19d25cc4c" x="0" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$P{TEST_DATE}]]></textFieldExpression>
</textField>
<subreport>
<reportElement uuid="54c02e96-6d47-49db-9b9c-58e1dd153242" x="0" y="30" width="200" height="35"/>
<subreportParameter name="TEST_DATE2">
<subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report1_subreport1.jasper"]]></subreportExpression>
</subreport>
</band>
</pageHeader>
</jasperReport>
report1_subreport1.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1_subreport1" language="groovy" pageWidth="200" pageHeight="35" whenNoDataType="AllSectionsNoDetail" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="3cedac90-63cb-43cb-9d0f-e401543e65dd">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEST_DATE2" class="java.util.Date" isForPrompting="false"/>
<pageHeader>
<band height="35" splitType="Stretch">
<textField>
<reportElement uuid="ca7f3da6-79f0-4d95-92db-6c5dbf777df9" x="0" y="15" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$P{TEST_DATE2}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
</jasperReport>
于 2012-12-12T22:13:53.643 に答える
11
iReport を使用してレポートを作成している場合は、iReport でメイン レポートを開き、レポートのセクションを選択Subreport
して移動し、プロパティをクリックしてタブをクリックします。そこから、サブレポートに渡したいパラメータを選択できます。property
Parameters
Copy from master
于 2013-02-18T06:50:51.890 に答える