2014-10-17 75 views
0

我想通过在主报告表的字段子报表作为参数JasperReports的在主报告表参数传递到子报表

<jasperReport xmlns ---- > 
    <subDataset name="tableDataset" > 
    <queryString> 
     <![CDATA[{select * from person]]> 
    </queryString> 
    <field name="ID" class="java.lang.Integer"/> 
    </subDataset> 
     <title> 
      <jr:table > 
       <jr:column width="133" > 
        <jr:detailCell > 
         <textField> 
          <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
       --- 
       -- 
       </jr:table> 
     </title> 
     <summary> 
       <subreport> 
<subreportParameter name="ID"> 
       <subreportParameterExpression><![CDATA[$F{ID}]]>  </subreportParameterExpression> 
      </subreportParameter> 
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        <subreportExpression><![CDATA["phonemumbers.jasper"]]></subreportExpression> 
       </subreport> 


     </summary> 
</jasperReport> 

我传递的参数为上述子报表,但得到误差字段未找到

回答

0

您将字段作为参数从主报告传递到子报表的方式是正确的。但是你不能直接在子报表中使用这个参数。您必须先在子报表中捕获参数,然后使用它。下面一行添加到您的报表(刚过<import>的和<queryString>前):

<parameter name="ID" class="java.lang.Integer" isForPrompting="false"/> 

现在用它在报表为:

$P{ID} 
+0

是有可能从表主报表参数传递到子报告表 – user2689808 2014-10-17 15:03:02

+0

我完全不明白你想要什么。请相应地编辑您的问题。 – keenUser 2014-10-21 03:14:41

相关问题