In my master report, I have a subreport tag:
<subreport>
<subreportParameter name="quotaSanitarySeal">
<subreportParameterExpression><![CDATA[$F{quotaSanitarySeal}]]>
</subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "subReportTest.jasper"]]>
</subreportExpression>
</subreport>
But when I generate it, It doesn't show up the value of the field...
<textFieldExpression class="java.lang.String"><![CDATA[$F{quotaSanitarySeal} == 0.0 ? "" : $F{quotaSanitarySeal}]]></textFieldExpression>
What I'm missing? I must do something in my subReportTest?
When you pass a field or Variable or Parameter to sub-report. Those values will be stored inside Parameter section of subreport.
So when you are passing a field, you have to create a respective Parameter field inside the sub-report, in your case create a parameter called "quotaSanitarySeal"
in your sub report. Once you added the parameter, then you can pass a value to the parameter from a master report like below,
<subreport>
<subreportParameter name="quotaSanitarySeal">
<subreportParameterExpression><![CDATA[$F{quotaSanitarySeal}]]>
</subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]</dataSourceExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "subReportTest.jasper"]]></subreportExpression>
</subreport>
Once you have successfully passed the value then you can use the parameter like below inside the subreport,
<textFieldExpression class="java.lang.String"><![CDATA[$P{quotaSanitarySeal} == 0.0 ? "" : $P{quotaSanitarySeal}]]></textFieldExpression>
Note: For "subreportExpression"
, you need not set the type class="java.lang.String"
.
Hope this helps.