Falco
Falco

Reputation: 1598

jasper report detect if datail band or subreport is present in current page

I'm developing a report with jasper.

The main report has several subreports.

Only one of these subreport has a fixed text with a note number, something like this.

my text<sup>(2)</sup>

In main report I must print the footnote, but only in all the pages in which the text with the note is present.

An image to better explain:

enter image description here

Upvotes: 0

Views: 1459

Answers (2)

Pals
Pals

Reputation: 141

Does not matter if you place subreport variable in report or not. I tried on my local , its working for similar situation

Variable in Main report

<variable name="subReportCount" class="java.lang.Integer" resetType="Page" incrementType="Page" calculation="Sum">
    <variableExpression><![CDATA[$V{subReportCount}.equals( null ) ? 0 : $V{subReportCount}]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>

Return Value for the subreport

<returnValue subreportVariable="SubVar" toVariable="subReportCount"/>

Print when expression for Footer element, in my case I am showing Page number

<printWhenExpression><![CDATA[$V{subReportCount} > 0]]></printWhenExpression>

This should work , if not please share your jrxml and sample data. Good Luck!

Upvotes: 0

Pals
Pals

Reputation: 141

. Create Variable in main report 'subReportCount' Type = Integer, default 0 Reset Type = 'Page'

. Place this variable (hidden) somewhere after Subreport

. Create variable 'SubVar' in subreport , expression == $V{REPORT_COUNT}

. In main, go to subreport properties -> Edit return Values - > Set From Varible= SubVar , To Variable=subReportCount, Calculation type = Sum

. Page Footer Print When Expression = $V{subReportCount} > 0

This may work if you are trying if subreport is printed atleast once in page.

Upvotes: 1

Related Questions