How can I change parameter value when pressing a textElement? - jasper-reports

Is it possible to make to Jasper software so that when pressing a text element value of parameter changed?
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0 -->
<!-- 2016-02-19T23:46:44 -->
<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="Main Menu" pageWidth="500" pageHeight="85" orientation="Landscape" whenNoDataType="AllSectionsNoDetail" columnWidth="500" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="e7435a7b-5c14-49c7-8fe8-822df3de3810">
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="ireport.jasperserver.url" value="http://stats.trackif.com/jasperserver-pro/services/repository/"/>
<property name="ireport.jasperserver.user" value="jasperadmin"/>
<property name="ireport.jasperserver.report.resource" value="/csi/New_Version/Main_Menu_files/main_jrxml"/>
<property name="ireport.jasperserver.reportUnit" value="/csi/New_Version/Main_Menu"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<style name="MenuItem" mode="Opaque" forecolor="#E1FFE1" backcolor="#333333" hTextAlign="Center" vTextAlign="Middle" fontName="" fontSize="13"/>
<style name="MenuItem_Dashboard" style="MenuItem">
<conditionalStyle>
<conditionExpression><![CDATA[$P{SelectedMenuItem} == 0]]></conditionExpression>
<style backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="MenuItem_Members" style="MenuItem">
<conditionalStyle>
<conditionExpression><![CDATA[$P{SelectedMenuItem} == 1]]></conditionExpression>
<style backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="MenuItem_Trackers" style="MenuItem">
<conditionalStyle>
<conditionExpression><![CDATA[$P{SelectedMenuItem} == 2]]></conditionExpression>
<style backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground"/>
<style name="IconBackground_Members_Table" style="IconBackground" pattern="">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 1, $P{SelectedIcon} == 0)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground_Members_Chart" style="IconBackground">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 1, $P{SelectedIcon} == 1)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground_Trackers_Table" style="IconBackground" pattern="">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 2, $P{SelectedIcon} == 0)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground_Trackers_Chart" style="IconBackground">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 2, $P{SelectedIcon} == 1)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="MenuItem_Alerts" style="MenuItem">
<conditionalStyle>
<conditionExpression><![CDATA[$P{SelectedMenuItem} == 3]]></conditionExpression>
<style backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground_Alerts_Table" style="IconBackground" pattern="">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 3, $P{SelectedIcon} == 0)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<style name="IconBackground_Alerts_Chart" style="IconBackground">
<conditionalStyle>
<conditionExpression><![CDATA[AND($P{SelectedMenuItem} == 3, $P{SelectedIcon} == 1)]]></conditionExpression>
<style mode="Opaque" backcolor="#24AD80"/>
</conditionalStyle>
</style>
<parameter name="SelectedMenuItem" class="java.lang.Integer">
<parameterDescription><![CDATA[]]></parameterDescription>
<defaultValueExpression><![CDATA[0]]></defaultValueExpression>
</parameter>
<parameter name="SelectedIcon" class="java.lang.Integer">
<defaultValueExpression><![CDATA[0]]></defaultValueExpression>
</parameter>
<parameter name="ClientId" class="java.lang.Integer">
<defaultValueExpression><![CDATA[37]]></defaultValueExpression>
</parameter>
<parameter name="StartDate" class="java.util.Date">
<parameterDescription><![CDATA[]]></parameterDescription>
<defaultValueExpression><![CDATA[new Date(new Date(System.currentTimeMillis()-15*24*60*60*1000).getTime()-1000*60*60*24*15)]]></defaultValueExpression>
</parameter>
<parameter name="EndDate" class="java.util.Date">
<defaultValueExpression><![CDATA[TODAY()]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[]]>
</queryString>
<variable name="Count_Number" class="java.lang.Integer" calculation="Count">
<variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
</variable>
<title>
<band height="85" splitType="Stretch">
<textField evaluationTime="Report" isBlankWhenNull="true">
<reportElement style="IconBackground_Trackers_Chart" x="245" y="40" width="45" height="45" uuid="ddb8960a-425e-4ddf-8ab8-8bdce87b316c">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
</textField>
<textField evaluationTime="Report" isBlankWhenNull="true">
<reportElement style="IconBackground_Trackers_Table" x="200" y="40" width="45" height="45" uuid="b32db645-a654-44c6-a77b-03d296eacd69">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</textField>
<textField evaluationTime="Report" isBlankWhenNull="true">
<reportElement style="IconBackground_Members_Chart" x="145" y="40" width="45" height="45" uuid="5960e8a3-3dcc-4e99-b410-7758820f469c">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
</textField>
<textField evaluationTime="Report" isBlankWhenNull="true">
<reportElement style="IconBackground_Members_Table" x="100" y="40" width="45" height="45" uuid="9f93dc32-99ba-4218-946e-f65ba0834c4a">
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
</textField>
<textField evaluationTime="Band" hyperlinkType="ReportExecution">
<reportElement key="" style="MenuItem_Dashboard" x="0" y="0" width="100" height="40" uuid="17bba765-2b33-48ee-a157-4d091a553548">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textFieldExpression><![CDATA["Dashboard"]]></textFieldExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FMain_Page_Totals&ClientId=" + $P{ClientId}]]></hyperlinkReferenceExpression>
<hyperlinkParameter name="_report">
<hyperlinkParameterExpression><![CDATA["/csi/New_Version/main_page_totals"]]></hyperlinkParameterExpression>
</hyperlinkParameter>
<hyperlinkParameter name="ClientId">
<hyperlinkParameterExpression><![CDATA[$P{ClientId}]]></hyperlinkParameterExpression>
</hyperlinkParameter>
</textField>
<textField evaluationTime="Band" hyperlinkType="ReportExecution">
<reportElement style="MenuItem_Members" x="100" y="0" width="100" height="40" uuid="5cfc95a0-730c-423a-885e-a5c8f3e92f18">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textFieldExpression><![CDATA["Members"]]></textFieldExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FMembers_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=1"]]></hyperlinkReferenceExpression>
</textField>
<textField evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement style="MenuItem_Trackers" x="200" y="0" width="100" height="40" uuid="4e6a3fb2-6a9a-4468-a457-b1d484e13e35">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textFieldExpression><![CDATA["Trackers"]]></textFieldExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FTrackers_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=2"]]></hyperlinkReferenceExpression>
</textField>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement x="106" y="46" width="32" height="32" uuid="3440245e-27de-46c8-b516-c43b24953313">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 1]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:table.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FMembers_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=1"]]></hyperlinkReferenceExpression>
</image>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement x="151" y="46" width="32" height="32" uuid="b67f389c-0e19-43f3-9b86-aa884ee4a3bc">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 1]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:chart.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FMembers_Chart_By_Day&ClientId=" + $P{ClientId} + "&SelectedMenuItem=1&SelectedIcon=1"]]></hyperlinkReferenceExpression>
<hyperlinkTooltipExpression><![CDATA["Daily"]]></hyperlinkTooltipExpression>
</image>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement x="206" y="46" width="32" height="32" uuid="55c06527-6e84-40fc-9691-2676bfb11b67">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 2]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:table1.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FTrackers_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=2"]]></hyperlinkReferenceExpression>
</image>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement x="251" y="46" width="32" height="32" uuid="398f6b96-fd30-4fc9-99c8-79aaba500838">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 2]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:chart1.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FTrackers_Chart_By_Day&ClientId=" + $P{ClientId} + "&SelectedMenuItem=2&SelectedIcon=1"]]></hyperlinkReferenceExpression>
</image>
<textField evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement style="MenuItem_Alerts" x="300" y="0" width="100" height="40" uuid="c5e36e04-be9f-4051-a9a9-b8bafd1ceb3f">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<textFieldExpression><![CDATA["Alerts"]]></textFieldExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FAlerts_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=3"]]></hyperlinkReferenceExpression>
</textField>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement key="" style="IconBackground_Alerts_Table" x="306" y="46" width="32" height="32" uuid="613ae391-ef0a-487f-a79f-c3cbe92068b7">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 3]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:table1.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FAlerts_Table&ClientId=" + $P{ClientId} + "&SelectedMenuItem=3"]]></hyperlinkReferenceExpression>
</image>
<textField evaluationTime="Report" isBlankWhenNull="true">
<reportElement style="IconBackground_Alerts_Chart" x="345" y="40" width="45" height="45" uuid="e470ee22-217e-4362-ad5f-8ab5ef781b99">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="pixel"/>
</reportElement>
</textField>
<image evaluationTime="Band" hyperlinkType="Reference" hyperlinkTarget="Parent">
<reportElement x="351" y="46" width="32" height="32" uuid="5bbf9696-54ba-44dc-b025-dc7a52a1521c">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<printWhenExpression><![CDATA[$P{SelectedMenuItem} == 3]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["repo:chart1.png"]]></imageExpression>
<hyperlinkReferenceExpression><![CDATA["http://stats.trackif.com/jasperserver-pro/dashboard/viewer.html#%2Fcsi%2Fdashboards%2FAlerts_Chart_By_Day&ClientId=" + $P{ClientId} + "&SelectedMenuItem=3&SelectedIcon=1"]]></hyperlinkReferenceExpression>
</image>
</band>
</title>
</jasperReport>
In this example I want that when pressing "Members" the SelectedMenuItem parameter would change on value '1'. Default value this parameter = 0.
Is it possible to make this?

Related

Hiding Sub-Report based on value returned from it using Jasper Studio

I am working on a report where I am having the scenario like the following:
I have got the value of Col 3 & Row 1 from Sub-Report 1 to Main Report. Now, I want to hide the Sub-report 1 if the value returned by it is 1. The way I am trying to do this is as follows:
Get the value in Main Report using the Edit Return Values option in Jasper Studio.
Apply $V{rowNumberSum}==1 on Print When Expression
What is the result?
When I apply Print When Expression, the value of rowNumberSum becomes null.
Here is the code for sub-report named as Blank_A4
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.10.0.final using JasperReports Library version 6.10.0-unknown -->
<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="Blank_A4" pageWidth="300" pageHeight="300" columnWidth="260" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="4fcf5f85-7a0c-44bc-b2ca-658905e3b408">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="FeaturesAnalyzedIn12MonthsAdapter"/>
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<style name="Table 1_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table 1_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table 1_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="Dataset1" uuid="a870c303-592a-48fa-b215-f208cbe6dd89">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="FeaturesAnalyzedAndReviewedIn12MonthsAdapter"/>
<property name="net.sf.jasperreports.data.adapter" value="/home/jamshaid/JaspersoftWorkspace/Line Chart/FeaturesAnalyzedAndReviewedIn12MonthsAdapter.xml"/>
<parameter name="JSON_INPUT_STREAM" class="java.io.InputStream" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.source" class="java.lang.String" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.sources" class="java.util.List" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.date.pattern" class="java.lang.String" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.number.pattern" class="java.lang.String" isForPrompting="false"/>
<parameter name="JSON_LOCALE" class="java.util.Locale" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.locale.code" class="java.lang.String" isForPrompting="false"/>
<parameter name="JSON_TIME_ZONE" class="java.util.TimeZone" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.timezone.id" class="java.lang.String" isForPrompting="false"/>
<queryString language="JSON">
<![CDATA[]]>
</queryString>
<field name="month" class="java.lang.String">
<property name="net.sf.jasperreports.json.field.expression" value="month"/>
<fieldDescription><![CDATA[month]]></fieldDescription>
</field>
<field name="percentage" class="java.math.BigDecimal">
<property name="net.sf.jasperreports.json.field.expression" value="percentage"/>
<fieldDescription><![CDATA[percentage]]></fieldDescription>
</field>
<variable name="rowNumber" class="java.lang.Integer">
<variableExpression><![CDATA[IF($V{REPORT_COUNT}==1,1,0)]]></variableExpression>
</variable>
<variable name="rowNumberSum" class="java.lang.Integer" calculation="First">
<variableExpression><![CDATA[$V{rowNumber}]]></variableExpression>
</variable>
</subDataset>
<parameter name="JSON_INPUT_STREAM" class="java.io.InputStream" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.source" class="java.lang.String" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.sources" class="java.util.List" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.date.pattern" class="java.lang.String" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.number.pattern" class="java.lang.String" isForPrompting="false"/>
<parameter name="JSON_LOCALE" class="java.util.Locale" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.locale.code" class="java.lang.String" isForPrompting="false"/>
<parameter name="JSON_TIME_ZONE" class="java.util.TimeZone" isForPrompting="false"/>
<parameter name="net.sf.jasperreports.json.timezone.id" class="java.lang.String" isForPrompting="false"/>
<queryString language="JSON">
<![CDATA[]]>
</queryString>
<field name="month" class="java.lang.String">
<property name="net.sf.jasperreports.json.field.expression" value="month"/>
<fieldDescription><![CDATA[month]]></fieldDescription>
</field>
<field name="percentage" class="java.lang.Double">
<property name="net.sf.jasperreports.json.field.expression" value="percentage"/>
<fieldDescription><![CDATA[percentage]]></fieldDescription>
</field>
<variable name="rowNumberSum" class="java.lang.Integer" resetType="None"/>
<summary>
<band height="239" splitType="Stretch">
<componentElement>
<reportElement x="-20" y="20" width="200" height="200" uuid="5d154620-3646-49fc-9702-8af059721751">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table 1_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table 1_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table 1_TD"/>
<property name="com.jaspersoft.studio.components.autoresize.next" value="true"/>
<property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Dataset1" uuid="acaf88bb-ff19-4d07-9e37-cbda2f2104a7">
<returnValue fromVariable="rowNumberSum" toVariable="rowNumberSum"/>
</datasetRun>
<jr:column width="84" uuid="8beb5156-7b6b-451a-a66d-489284355c75">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:detailCell style="Table 1_TD" height="30">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.HorizontalRowLayout"/>
<textField>
<reportElement x="0" y="0" width="84" height="30" uuid="844ce5da-a2b4-418a-a474-be9465b5dd67"/>
<textFieldExpression><![CDATA[$F{month}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="83" uuid="9e71d9b1-0260-4f14-98c6-5df57e36e6d7">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
<jr:detailCell style="Table 1_TD" height="30">
<textField>
<reportElement x="0" y="0" width="83" height="30" uuid="98bb8086-6a7e-47c7-aa09-60c8eb35de83"/>
<textFieldExpression><![CDATA[$F{percentage}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="33" uuid="d4746c5e-5a70-4a5a-9418-59e664a4e715">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
<jr:detailCell style="Table 1_TD" height="30">
<textField>
<reportElement x="0" y="0" width="33" height="30" uuid="b4329a51-bcc3-4fd0-8f85-1f3e5a614719"/>
<textFieldExpression><![CDATA[$V{rowNumberSum}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</summary>
</jasperReport>
Here is the code for my main report:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.10.0.final using JasperReports Library version 6.10.0-unknown -->
<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="main report" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f8bbb1cf-82a2-4390-8cd9-72d0a34c4ead">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="FeaturesAnalyzedAndReviewedIn12MonthsAdapter"/>
<queryString language="JSON">
<![CDATA[]]>
</queryString>
<field name="month" class="java.lang.String">
<property name="net.sf.jasperreports.json.field.expression" value="month"/>
<fieldDescription><![CDATA[month]]></fieldDescription>
</field>
<field name="percentage" class="java.math.BigDecimal">
<property name="net.sf.jasperreports.json.field.expression" value="percentage"/>
<fieldDescription><![CDATA[percentage]]></fieldDescription>
</field>
<variable name="rowNumberSum" class="java.lang.Integer" resetType="None"/>
<variable name="Variable_1" class="java.lang.Integer" resetType="None">
<variableExpression><![CDATA[$V{rowNumberSum}]]></variableExpression>
</variable>
<summary>
<band height="300" splitType="Stretch">
<textField evaluationTime="Band">
<reportElement x="404" y="199" width="100" height="30" uuid="ce192097-9d0e-484b-917b-371b2f1e7bdd"/>
<textFieldExpression><![CDATA["VAlue returned from Sub-Report: "+$V{rowNumberSum}]]></textFieldExpression>
</textField>
<subreport isUsingCache="true" runToBottom="true" overflowType="NoStretch">
<reportElement x="0" y="0" width="300" height="300" uuid="65b11cd3-98b7-4a13-9313-daa21e5a4bac">
<printWhenExpression><![CDATA[$V{rowNumberSum}==null]]></printWhenExpression>
</reportElement>
<parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<returnValue subreportVariable="rowNumberSum" toVariable="rowNumberSum"/>
<subreportExpression><![CDATA["Blank_A4.jasper"]]></subreportExpression>
</subreport>
</band>
</summary>
</jasperReport>
Here is my current output for main report without using print when expression
Output when using print when expression
What do I want to achieve?
Whenever the value returned by Sub-Report 1 is 1, I want main report to hide Sub-Report 1. How do I achieve that?
Sorry about that there are a bunch of places to get information on Scriptlets:
https://community.jaspersoft.com/blog/all-you-want-know-about-scriptlets
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRDefaultScriptlet.html
https://community.jaspersoft.com/questions/1084351/scriptlets-getting-connection-jdbc-jasper-studio-java-class
The last one discusses how to get the DATBASE_CONNECTION within the scriptlet. Based on how you're running this (Jasper Server, Spring or some other framework) you should have other methods available for injection.
Anyhow, here is a sample scriptlet that I had to write because our database implementation didn't have RANK():
public class GroupTopNCounterScriptlet extends JRDefaultScriptlet {
public static final String GROUP_COUNT_VAR = "GroupTopN_COUNT";
public static final String TOP_N_TOTAL = "TopNCountTotal";
int topNTotalCounter = 0;
#Override
public void beforeGroupInit(String groupName) throws JRScriptletException {
Integer groupCount = (Integer) getVariableValue(GROUP_COUNT_VAR);
topNTotalCounter += (groupCount == null) ? 0 : groupCount;
setVariableValue(TOP_N_TOTAL, topNTotalCounter);
}
}
Although you probably want to worry more about beforeDetailEval where you'll need to:
Get the DATABSE_CONNECTION
Query something, either:
the full data set that you can use for calculations and to pass into the List.
a query returning just the count so you can set the printWhen
Set the Variable(s) or Parameter(s) you choose
Update your printWhenExpression and Datasource accordingly

Weird positioning of elements inside a Jasper Report preview

I'm using TIBCO Jaspersoft® Studio 6.8.0 and I'm having some issues positioning things. I thought that the positioning would be kinda automatic following the GUI, but apparently it doesn't work like that.
I have a SubReport (no need for the master report right now) that calls other 2 SubReports, one for a pie chart and one for a crosstab. They both working pretty fine using subdataset from an external json (local json).
The problem is that I can't position them properly: I would need the pie chart to be positioned in the top part of the page, and the crosstab immediatly below.
Here's the subreport (used as master report now). You can see I'm using a mock (xml that calls a json), I will add the json at the end of the question.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<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="ReportAnomalies_subReport" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="0a8e5b1c-8d35-4290-a283-c7fb4e197131">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="report\mock\TestTemp.xml"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<style name="DefaultStyle" isDefault="true" fontName="SinaFont" fontSize="8"/>
<style name="DefaultTableStyle" style="DefaultStyle">
<box>
<pen lineWidth="0.5" lineColor="#888888"/>
</box>
</style>
<style name="DefaultTableHeaderStyle" style="DefaultTableStyle" mode="Opaque" backcolor="#F0F0F0"/>
<style name="Table_H" style="DefaultTableHeaderStyle"/>
<style name="Table_T" style="DefaultTableStyle"/>
<style name="Table_D" style="DefaultTableStyle"/>
<field name="NomeAnomalia" class="java.lang.String"/>
<field name="GruppiAnomalie" class="java.lang.Integer"/>
<field name="Total" class="java.lang.String"/>
<detail>
<band height="290">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<subreport>
<reportElement key="" x="10" y="0" width="535" height="290" uuid="37faa740-d0e0-457e-bb66-a9dbfc252683"/>
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("pieChartData")]]></dataSourceExpression>
<subreportExpression><![CDATA["ReportAnomalies_pieChart.jasper"]]></subreportExpression>
</subreport>
</band>
<band height="80">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<subreport>
<reportElement key="" style="DefaultTableStyle" x="10" y="0" width="535" height="80" uuid="ca3470c0-044b-4905-9524-5c0a948961a5">
<property name="com.jaspersoft.studio.unit.x" value="px"/>
<property name="com.jaspersoft.studio.unit.y" value="px"/>
</reportElement>
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("anomalyList")]]></dataSourceExpression>
<subreportExpression><![CDATA["ReportAnomalies_crosstab.jasper"]]></subreportExpression>
</subreport>
</band>
</detail>
</jasperReport>
The pie chart subreport (I use the workaround <printWhenExpression><![CDATA[$F{print} == 1]]></printWhenExpression> because it will print the pie chart 3 times if not used)
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<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="ReportAnomalies_pieChart" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="0a8e5b1c-8d35-4290-a283-c7fb4e197131">
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<style name="DefaultStyle" isDefault="true" fontName="SinaFont" fontSize="8"/>
<style name="DefaultTableStyle" style="DefaultStyle">
<box>
<pen lineWidth="0.5" lineColor="#888888"/>
</box>
</style>
<style name="DefaultTableHeaderStyle" style="DefaultTableStyle" mode="Opaque" backcolor="#F0F0F0"/>
<style name="Table_H" style="DefaultTableHeaderStyle"/>
<style name="Table_T" style="DefaultTableStyle"/>
<style name="Table_D" style="DefaultTableStyle"/>
<field name="print" class="java.lang.Integer"/>
<field name="severityName" class="java.lang.String"/>
<field name="severityValue" class="java.lang.Integer"/>
<field name="severityLabel" class="java.lang.String"/>
<detail>
<band height="285" splitType="Stretch">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<pieChart>
<chart evaluationTime="Report">
<reportElement style="DefaultTableStyle" x="40" y="0" width="420" height="280" uuid="65c16b4b-d856-4d7f-bb7b-a0c0aa0f3a3a">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<printWhenExpression><![CDATA[$F{print} == 1]]></printWhenExpression>
</reportElement>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<pieDataset maxCount="3">
<keyExpression><![CDATA[$F{severityName}]]></keyExpression>
<valueExpression><![CDATA[$F{severityValue}]]></valueExpression>
<labelExpression><![CDATA[$F{severityLabel}]]></labelExpression>
</pieDataset>
<piePlot>
<plot>
<seriesColor seriesOrder="0" color="#80E31E"/>
<seriesColor seriesOrder="1" color="#F09918"/>
<seriesColor seriesOrder="2" color="#DE3700"/>
</plot>
<itemLabel/>
</piePlot>
</pieChart>
</band>
</detail>
</jasperReport>
Now the crosstab subreport
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<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="Prova" pageWidth="595" pageHeight="842" orientation="Landscape" whenNoDataType="NoPages" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isSummaryNewPage="true" isSummaryWithPageHeaderAndFooter="true" uuid="1916d28f-c2ed-4735-a541-6dfbd82fe676">
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<style name="DefaultStyle" isDefault="true" fontName="SinaFont" fontSize="8"/>
<style name="DefaultTableStyle" style="DefaultStyle">
<box>
<pen lineWidth="0.5" lineColor="#888888"/>
</box>
</style>
<style name="DefaultTableHeaderStyle" style="DefaultTableStyle" mode="Opaque" backcolor="#F0F0F0"/>
<style name="Table_H" style="DefaultTableHeaderStyle"/>
<style name="Table_T" style="DefaultTableStyle"/>
<style name="Table_D" style="DefaultTableStyle"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="NomeAnomalia" class="java.lang.String"/>
<field name="Value" class="java.lang.String"/>
<field name="Code" class="java.lang.String"/>
<field name="Severity" class="java.lang.String"/>
<field name="GruppiAnomalie" class="java.lang.String"/>
<variable name="VI" class="java.lang.Float">
<variableExpression><![CDATA[Float.parseFloat($F{Value})]]></variableExpression>
</variable>
<variable name="GruppiAnomalieI" class="java.lang.Integer">
<variableExpression><![CDATA[Integer.parseInt($F{GruppiAnomalie})]]></variableExpression>
</variable>
<group name="Group1">
<groupExpression><![CDATA[$V{GruppiAnomalieI}]]></groupExpression>
<groupFooter>
<band height="80">
<crosstab columnBreakOffset="20">
<reportElement x="30" y="0" width="520" height="70" uuid="af9d4537-350c-4e0b-a338-009d92c884d5">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
</reportElement>
<box leftPadding="3"/>
<crosstabDataset>
<dataset resetType="Group" resetGroup="Group1"/>
</crosstabDataset>
<rowGroup name="Severity1" width="30">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{Severity}]]></bucketExpression>
</bucket>
<crosstabRowHeader>
<cellContents mode="Opaque" style="Table_H">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<textField>
<reportElement x="0" y="0" width="30" height="20" uuid="683211f0-a5a5-4cb4-aadc-658e5185baca">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[$V{Severity1}.substring(4)]]></textFieldExpression>
</textField>
</cellContents>
</crosstabRowHeader>
<crosstabTotalRowHeader>
<cellContents mode="Opaque" style="Table_T">
<staticText>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="b709de74-24d7-42d1-975c-3ff583a2f091"/>
<text><![CDATA[Totale Severity1]]></text>
</staticText>
</cellContents>
</crosstabTotalRowHeader>
</rowGroup>
<columnGroup name="Code1" height="20">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{Code}]]></bucketExpression>
</bucket>
<crosstabColumnHeader>
<cellContents mode="Opaque" style="Table_H">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<textField>
<reportElement x="0" y="0" width="25" height="20" uuid="8e897853-1771-4c8e-af55-24e5d5e3708a"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="7"/>
</textElement>
<textFieldExpression><![CDATA[$V{Code1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabColumnHeader>
<crosstabTotalColumnHeader>
<cellContents mode="Opaque" style="Table_T">
<staticText>
<reportElement x="0" y="0" width="60" height="20" forecolor="#FFFFFF" uuid="0423ca98-83a4-48b4-828b-ecc91f72c6df"/>
<text><![CDATA[Totale Code1]]></text>
</staticText>
</cellContents>
</crosstabTotalColumnHeader>
</columnGroup>
<measure name="Value_MEASURE1" class="java.lang.Float" calculation="Sum">
<measureExpression><![CDATA[$V{VI}]]></measureExpression>
</measure>
<measure name="NA" class="java.lang.String">
<measureExpression><![CDATA["n/a"]]></measureExpression>
</measure>
<crosstabCell width="25" height="20">
<cellContents mode="Opaque" style="Table_D">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<textField pattern="#,##0.##">
<reportElement x="0" y="0" width="25" height="20" uuid="8f7c6a83-bec1-4fdd-995b-c15df0712202"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="7"/>
</textElement>
<textFieldExpression><![CDATA[$V{Value_MEASURE1} == -1 ? $V{NA} : $V{Value_MEASURE1}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
</crosstab>
</band>
</groupFooter>
</group>
</jasperReport>
And finally the json file, very simple
[
{
"NomeAnomalia": "MIT Impalcati,Travi,Traversi CA CAP",
"GruppiAnomalie": 201,
"Total": "6%",
"anomalyList": [
{
"GruppiAnomalie": 201,
"Code": "cacap1",
"Name": "Macchie di umidita passiva",
"Severity": "0 - Lieve",
"Value": 3.2736806021763885
},
{
"GruppiAnomalie": 201,
"Code": "cacap12",
"Name": "Macchie di umidita passiva",
"Severity": "0 - Lieve",
"Value": 1.2736806021763885
},
{
"GruppiAnomalie": 201,
"Code": "cacap16",
"Name": "Macchie di umidita passiva",
"Severity": "2 - Forte",
"Value": 0.7736806021763885
},
{
"GruppiAnomalie": 201,
"Code": "DifGen1",
"Name": "Macchie di umidita passiva",
"Severity": "1 - Media",
"Value": 1.571812154
}
],
"pieChartData": [
{"print": 1, "severityName": "Lieve", "severityValue": 25, "severityLabel": "25%"},
{"print": 0, "severityName": "Media", "severityValue": 15, "severityLabel": "15%"},
{"print": 0, "severityName": "Forte", "severityValue": 38, "severityLabel": "38%"}
]
},
{
"NomeAnomalia": "MIT Pile,Spalle,Fondazioni CLS",
"GruppiAnomalie": 202,
"Total": "6%",
"anomalyList": [
{
"GruppiAnomalie": 202,
"Code": "cacap1",
"Name": "Macchie di umidita passiva",
"Severity": "0 - Lieve",
"Value": 3.2736806021763885
},
{
"GruppiAnomalie": 202,
"Code": "cacap12",
"Name": "Macchie di umidita passiva",
"Severity": "0 - Lieve",
"Value": 1.2736806021763885
},
{
"GruppiAnomalie": 202,
"Code": "cacap16",
"Name": "Macchie di umidita passiva",
"Severity": "2 - Forte",
"Value": 0.7736806021763885
}
],
"pieChartData": [
{"print": 1, "severityName": "Lieve", "severityValue": 25, "severityLabel": "5%"},
{"print": 0, "severityName": "Media", "severityValue": 15, "severityLabel": "87%"},
{"print": 0, "severityName": "Forte", "severityValue": 38, "severityLabel": "47%"}
]
}
]
I don't think the problem is to be found in subreports...at least not in the operational part, but I still don't know why it appears like this (3 pages instead of 2 and weird positioning)...they are in order, first, second and third page
Any suggestion?
The workaround you use in the pie chart subreport is causing the empty space in the generated report.
You set the print when expression for the pie chart element. That makes the pie chart not print for the second and third records, but the detail band itself will still consume its declared height even if the chart doesn't print.
A simple way to fix this is to set the print when expression for the band instead of the chart element. That will make the whole band not printing for the second and third records.
But a more normal solution would be to place the chart element in the summary band (with no print when expression), and remove the detail band altogether.

JSON DataAdapter using API causing slow report generation

I am having my API where I am sending a request from POSTMAN and it takes less than a second to respond. But, when I use the same API in JasperReport using JSON DataAdapter, it takes about 7 to 15 seconds to respond and generate the report. Here is a snapshot is taken after uploading the report to the server using Mozilla.
Here is the same report on the POSTMAN
It is not fetching anything from the API but just the login key. Here is a snapshot from the JasperStudio
Here is my jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.10.0.final using JasperReports Library version 6.10.0-unknown -->
<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="test_A4" language="javascript" pageWidth="595" pageHeight="200" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="8fe94703-075f-4ae1-affc-bff8d7a8a4b8">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="POST_REQUEST_TO_GET_TOKEN"/>
<property name="ireport.jasperserver.url" value="http://server_address:port/jasperserver/"/>
<property name="ireport.jasperserver.user" value="user"/>
<property name="ireport.jasperserver.reportUnit" value="/Sub_Reports/test_A4"/>
<property name="ireport.jasperserver.report.resource" value="/Sub_Reports/test_A4_files/main_jrxml"/>
<property name="net.sf.jasperreports.data.adapter" value="POST_REQUEST_TO_GET_TOKEN.xml"/>
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<queryString language="JSON">
<![CDATA[]]>
</queryString>
<title>
<band height="59" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="555" height="59" uuid="691c8e97-8888-4786-9350-62d5f187820b"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="19" isBold="true" isItalic="false"/>
</textElement>
<textFieldExpression><![CDATA["This is a drill down sample report"]]></textFieldExpression>
</textField>
</band>
</title>
<summary>
<band height="75" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="555" height="50" uuid="4aba0c46-cda3-4611-97a2-1f446bd4f85b"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[It sends a POST request to an API and receives a token to put it into another POST request which will bring back the data from the API]]></text>
</staticText>
<textField>
<reportElement x="0" y="45" width="555" height="30" uuid="447eee49-5f57-4280-8f47-f5a5a8ff6503"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA["This is in sub-reprots directory"]]></textFieldExpression>
</textField>
</band>
</summary>
</jasperReport>
I am unable to get the cause of many delays. Would anyone please help me figure this out? Thanks a lot.
I am using JasperSoft Studio 6.10 and JasperServer Version 7.

How to set Page footer to the bottom of the every page in Jasper Reports?

For export the page footer are always at the bottom of the page.
But in Print preview the page footer comes immediately after the detail band.
I want the page footer to appear always at the bottom of the page , irrespective of detail band height.
Below is the xml,
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Created with Jaspersoft Studio version 6.0.3.final using JasperReports Library version 6.0.3 -->
<!-- 2015-03-12T14:09:48 -->
<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="Listing Report" pageWidth="1385" pageHeight="922" orientation="Landscape" columnWidth="1335" leftMargin="25" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.5" />
<property name="ireport.x" value="0" />
<property name="ireport.y" value="0" />
<template>
<![CDATA[$P{templatePath}]]>
</template>
<style name="Crosstab Data Text" />
<style name="Zebra" mode="Opaque">
<conditionalStyle> <conditionExpression><![CDATA[$V {
REPORT_COUNT
}
%2==1]]></conditionExpression> <style backcolor="#F0F0F0"/> </conditionalStyle>
</style>
<parameter name="appointmentid" class="java.lang.String" />
<parameter name="reportsetid" class="java.lang.Object" />
<parameter name="savedreportid" class="java.lang.Object" />
<parameter name="dbtablename" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<![CDATA[appointmentlistingseedreport]]>
</parameterDescription>
</parameter>
<parameter name="partialInlineQuery" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<!-----------------Query--------------------->
</parameterDescription>
</parameter>
<parameter name="dynamicdbtablename" class="java.lang.String" isForPrompting="false">
<parameterDescription>
<![CDATA[appointmentlistingdynamicdata]]>
</parameterDescription>
</parameter>
<parameter name="templatePath" class="java.lang.String" />
<queryString>
<!--Query String------------------>
</queryString>
<field name="reportsetid" class="java.lang.Object" />
<field name="savedreportid" class="java.lang.Object" />
<field name="organizationname" class="java.lang.String" />
<field name="duration" class="java.lang.Integer" />
<field name="appointmenttypename" class="java.lang.String" />
<field name="personname" class="java.lang.String" />
<field name="appointmentstatus" class="java.lang.String" />
<field name="appointmentdate" class="java.sql.Date" />
<field name="location" class="java.lang.String" />
<field name="ordername" class="java.lang.String" />
<field name="ordertype" class="java.lang.String" />
<field name="orderstatus" class="java.lang.String" />
<field name="resultstatus" class="java.lang.String" />
<field name="resourcename" class="java.lang.String" />
<field name="appointmentstarttime" class="java.sql.Time" />
<variable name="GrandTotal_Count" class="java.math.BigDecimal" calculation="Count">
<variableExpression>
<![CDATA[$F{reportsetid}]]>
</variableExpression>
</variable>
<variable name="GrandTotal_Variable" class="java.lang.String" calculation="Count">
<variableExpression>
<![CDATA["Grand Total ( " + $V{GrandTotal_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="organizationname_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="organizationname" calculation="Count">
<variableExpression>
<![CDATA[$F{organizationname}]]>
</variableExpression>
</variable>
<variable name="organizationname_Variable" class="java.lang.String" resetType="Group" resetGroup="organizationname" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{organizationname} != null) ? $F{organizationname} : "") + " " + "(" + $V{organizationname_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="location_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="location" calculation="Count">
<variableExpression>
<![CDATA[$F{location}]]>
</variableExpression>
</variable>
<variable name="location_Variable" class="java.lang.String" resetType="Group" resetGroup="location" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{location} != null) ? $F{location} : "") + " " + "(" + $V{location_Count} + ")"]]>
</variableExpression>
</variable>
<variable name="resourcename_Count" class="java.math.BigDecimal" resetType="Group" resetGroup="resourcename" calculation="Count">
<variableExpression>
<![CDATA[$F{resourcename}]]>
</variableExpression>
</variable>
<variable name="resourcename_Variable" class="java.lang.String" resetType="Group" resetGroup="resourcename" calculation="Count">
<variableExpression>
<![CDATA["Total for " + (($F{resourcename} != null) ? $F{resourcename} : "") + " " + "(" + $V{resourcename_Count} + ")"]]>
</variableExpression>
</variable>
<group name="FooterGrandTotal">
<groupFooter>
<band height="20">
<textField>
<reportElement x="0" y="0" width="0" height="20" uuid="a23e46f3-b798-42ec-816e-c3e0c76ee7f6" />
<textElement>
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{GrandTotal_Variable} != null) ? $V{GrandTotal_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="organizationname" isStartNewPage="true">
<groupExpression>
<![CDATA[(($F{organizationname} != null) ? ($F{organizationname} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Org</style> ") :"Org")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="cf936d24-cfb0-44ff-a601-e4bcba0a1cf7" />
<box leftPadding="15" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{organizationname} != null) ? ($F{organizationname} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Org</style> ") :"Org")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="cf936d24-cfb0-44ff-a601-e4bcba0a1cf7" />
<box leftPadding="15" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{organizationname_Variable} != null) ? $V{organizationname_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="location">
<groupExpression>
<![CDATA[(($F{location} != null) ? ($F{location} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Location</style> ") :"Location")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="0f1dc658-577b-4a1a-a937-b21af77454d4" />
<box leftPadding="40" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{location} != null) ? ($F{location} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Location</style> ") :"Location")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="0f1dc658-577b-4a1a-a937-b21af77454d4" />
<box leftPadding="40" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{location_Variable} != null) ? $V{location_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<group name="resourcename">
<groupExpression>
<![CDATA[(($F{resourcename} != null) ? ($F{resourcename} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Resource</style> ") :"Resource")]]>
</groupExpression>
<groupHeader>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333"/>
<box leftPadding="65" />
<textElement markup="styled">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{resourcename} != null) ? ($F{resourcename} +" "+ "<style isItalic='true' forecolor='#aaaaaa'>Resource</style> ") :"Resource")]]>
</textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="20">
<textField>
<reportElement style="Zebra" x="0" y="0" width="1335" height="20" forecolor="#333333" uuid="613e4649-a0be-402b-b641-6792d681a3fd" />
<box leftPadding="65" />
<textElement textAlignment="Left" verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(($V{resourcename_Variable} != null) ? $V{resourcename_Variable} : "")]]>
</textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
<title>
<band height="24" splitType="Stretch" />
</title>
<pageHeader>
<band height="100">
<textField>
<reportElement x="0" y="0" width="1335" height="20" forecolor="#999999" uuid="07f143b8-4615-48bf-a984-3f5d9f1b7fdb" />
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("GENHEALTH FAMILY PRACTICE ASSOCIATES (GFPA)" != null) ? "GENHEALTH FAMILY PRACTICE ASSOCIATES (GFPA)" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="20" width="1335" height="20" forecolor="#999999" uuid="548c383a-181b-4a5e-9773-95bec6028b2f" />
<textElement textAlignment="Left">
<font size="17" isBold="false" isItalic="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Appointment List" != null) ? "Appointment List" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="40" width="1335" height="20" forecolor="#999999" uuid="9a238441-512f-4e24-84c4-d0c6f78a912a" />
<textElement textAlignment="Left">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(("Appointment Date : is not : 03/12/2015" != null) ? "Appointment Date : is not : 03/12/2015" : "")]]>
</textFieldExpression>
</textField>
</band>
</pageHeader>
<columnHeader>
<band height="25" splitType="Stretch">
<staticText>
<reportElement style="table-header" x="0" y="0" width="210" height="20" uuid="2d0b156b-95f8-487c-bb7d-09e729e3e364">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box leftPadding="85" />
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Type]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="210" y="0" width="125" height="20" uuid="e059ad06-5f5d-4056-9217-a21fa154640e">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Date]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="335" y="0" width="125" height="20" uuid="3890f6d6-0d75-4bda-90ca-97cb7a7d4333">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Time]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="460" y="0" width="125" height="20" uuid="9f7d46ea-c2ee-4a6f-ba73-57e90ed1045b">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Dur]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="585" y="0" width="125" height="20" uuid="e4d430ab-b03d-4f18-8779-c8d37e30e21b">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Pat Name]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="710" y="0" width="125" height="20" uuid="3c06f694-8e55-4565-af1a-7386ccee9422">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Appt Sts]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="835" y="0" width="125" height="20" uuid="434fe607-d680-4fef-b67d-0cc18957f6f9">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Name]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="960" y="0" width="125" height="20" uuid="a2f59de7-7964-4d52-8beb-e9f4e3c8ca03">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Type]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="1085" y="0" width="125" height="20" uuid="4b7703eb-2426-4574-bb23-66b35dadaa03">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Order Status]]>
</text>
</staticText>
<staticText>
<reportElement style="table-header" x="1210" y="0" width="125" height="20" uuid="1add3ebc-c688-41af-831c-efba8ee67b92">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="true" />
</textElement>
<text>
<![CDATA[Result Status]]>
</text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement style="Zebra" x="0" y="0" width="210" height="20" uuid="2ae4a4f2-473e-42a9-8055-c02309813c9a">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box leftPadding="85" />
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{appointmenttypename} != null) ? $F{appointmenttypename} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="210" y="0" width="125" height="20" uuid="d9a4e371-73f3-4540-a135-952dacb1d937">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[$P{REPORT_SCRIPTLET}.formatDate($F{appointmentdate})]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="335" y="0" width="125" height="20" uuid="b293699a-e8cb-4dd4-a878-1fc5082f686d">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[$P{REPORT_SCRIPTLET}.formatTime($F{appointmentstarttime})]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="460" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<box rightPadding="10" />
<textElement textAlignment="Right" verticalAlignment="Middle">
<font size="17" isBold="false" />
<paragraph lineSpacing="1_1_2" rightIndent="20" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{duration} != null) ? $F{duration} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="585" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{personname} != null) ? $F{personname} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="710" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{appointmentstatus} != null) ? $F{appointmentstatus} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="835" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{ordername} != null) ? $F{ordername} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="960" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{ordertype} != null) ? $F{ordertype} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="1085" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{orderstatus} != null) ? $F{orderstatus} : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement style="Zebra" x="1210" y="0" width="125" height="20">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true" />
<property name="net.sf.jasperreports.text.truncate.suffix" value="..." />
</reportElement>
<textElement verticalAlignment="Middle">
<font size="17" isBold="false" />
</textElement>
<textFieldExpression>
<![CDATA[(($F{resultstatus} != null) ? $F{resultstatus} : "")]]>
</textFieldExpression>
</textField>
</band>
</detail>
<pageFooter>
<band height="100">
<textField>
<reportElement x="890" y="20" width="445" height="20"/>
<textElement textAlignment="Right">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Confidential" != null) ? "Confidential" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="20" width="445" height="20"/>
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Prepared at 01:16 PM CDT,March 12, 2015" != null) ? "Prepared at 01:16 PM CDT,March 12, 2015" : "")]]>
</textFieldExpression>
</textField>
<textField>
<reportElement x="445" y="20" width="222" height="20"/>
<textElement textAlignment="Right">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[(("Page "+$V{PAGE_NUMBER}+" of" != null) ? "Page "+$V{PAGE_NUMBER}+" of" : "")]]>
</textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="667" y="20" width="222" height="20"/>
<textElement textAlignment="Left">
<font size="17" isBold="true" />
</textElement>
<textFieldExpression>
<![CDATA[((" " + $V{PAGE_NUMBER} != null) ? " " + $V{PAGE_NUMBER} : "")]]>
</textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height="35" splitType="Prevent" />
</summary>
<noData>
<band height="20">
<staticText>
<reportElement x="206" y="0" width="174" height="20"/>
<textElement textAlignment="Center">
<font size="14" isBold="true" />
</textElement>
<text>
<![CDATA[No Data Found]]>
</text>
</staticText>
</band>
</noData>
</jasperReport>
Are you sure its page footer? because page footer will always be at the bottom of page. Try decreasing the height, may be the top of your page footer is at middle of the page. And one more thing, page footer will always be after detail section unless you don't have a column footer in between.
I just facing same issue, It seems that pageFooter extends its height to fill all left space if exists.
Try to change all your page footer elements position to "FixRelativeToBottom"
<reportElement positionType="FixRelativeToBottom" ... >
Or create a frame with this position type and then you put all your elements inside

Unable to print borders for empty cells in PDF via JasperReports

I am constructing a 'table' by having cells next to each other and they all have borders. But I have a problem where the borders won't show if the cell for workcode text doesn't have a value.
This is my jrxml - (it is a subreport so I have a extra dataset there, and workcodeText is handled this way because I don't know how many workcode text nodes I will have in the xml data.)
<?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="estimate-subreport" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" scriptletClass="com.cybage.mo.CostCalculation" uuid="2df6e224-aab9-42e3-a97c-aa614b05982c">
<property name="ireport.zoom" value="1.5"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1"/>
</style>
<style name="Normal-Text-Small-with-borders" style="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1">
<pen lineWidth="0.5" lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Normal-Text-Small-bold" style="Normal-Text-Small" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1"/>
</style>
<style name="Normal-Text-Small-bold-with-borders" style="Normal-Text-Small-bold" hAlign="Left" vAlign="Top" fontName="Calibri" fontSize="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
<box leftPadding="1" rightPadding="1">
<pen lineColor="#000000"/>
<topPen lineWidth="0.5" lineColor="#000000"/>
<leftPen lineWidth="0.5" lineColor="#000000"/>
<bottomPen lineWidth="0.5" lineColor="#000000"/>
<rightPen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="WorkcodeText" uuid="3615899a-9e63-45db-a26e-d4e6d1670f84">
<queryString language="xPath">
<![CDATA[/MCSResponse/EstimateDisplayResponse/CategoryDetail/WorkcodeDetail/WorkcodeText]]>
</queryString>
<field name="WorkcodeText" class="java.lang.String">
<fieldDescription><![CDATA[child::text()]]></fieldDescription>
</field>
<field name="last_wct" class="java.lang.String">
<fieldDescription><![CDATA[../WorkcodeText[last()]]]></fieldDescription>
</field>
<field name="WorkcodeAmount" class="java.lang.String">
<fieldDescription><![CDATA[/MCSResponse/EstimateDisplayResponse/CategoryDetail/WorkcodeDetail/WorkcodeAmount]]></fieldDescription>
</field>
<variable name="varWorkcodeText" class="java.lang.String">
<variableExpression><![CDATA[$V{varWorkcodeText}+($F{WorkcodeText} != null? $F{WorkcodeText}:" test ")]]></variableExpression>
<initialValueExpression><![CDATA[""]]></initialValueExpression>
</variable>
</subDataset>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["D:\\iReport\\Saquib\\Single_Estimate_Report\\Test\\"]]></defaultValueExpression>
</parameter>
<queryString language="xPath">
<![CDATA[CategoryDetail/WorkcodeDetail]]>
</queryString>
<field name="Workcode" class="java.lang.String">
<fieldDescription><![CDATA[Workcode]]></fieldDescription>
</field>
<field name="WorkcodeName" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeName]]></fieldDescription>
</field>
<field name="ExtraWorkcodeName" class="java.lang.String">
<fieldDescription><![CDATA[ExtraWorkcodeName]]></fieldDescription>
</field>
<field name="WorkcodeAmount" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeAmount]]></fieldDescription>
</field>
<field name="WorkcodeText" class="java.lang.String">
<fieldDescription><![CDATA[WorkcodeText]]></fieldDescription>
</field>
<field name="ItemDetail" class="java.lang.String">
<fieldDescription><![CDATA[ItemDetail]]></fieldDescription>
</field>
<detail>
<band height="15">
<componentElement>
<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="150" y="0" width="300" height="15" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="6b4ddd03-9978-4f83-a247-3fff22149cb1"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="WorkcodeText" uuid="7aeae23c-e1fe-4470-9ee5-98f84cd82159">
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//WorkcodeText")]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="15" width="300">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="Normal-Text-Small-with-borders" positionType="Float" stretchType="RelativeToTallestObject" mode="Transparent" x="0" y="0" width="300" height="15" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" forecolor="#0000FF" uuid="03dd8f13-7604-41be-9155-ae02aa44500e">
<printWhenExpression><![CDATA[$F{WorkcodeText}.equals($F{last_wct})]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Top">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$V{varWorkcodeText}.replaceAll( "<nl>", "\n" )]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
<textField isStretchWithOverflow="true" isBlankWhenNull="false">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="0" y="0" width="20" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3333FF" uuid="8c9080c7-cb77-430c-be2e-b6252f9b8d8e"/>
<textElement verticalAlignment="Top">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{Workcode}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="#,##0.00" isBlankWhenNull="true">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="450" y="0" width="105" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3300FF" uuid="ebdd4d26-bc29-4546-a9b5-24f2be132aa8"/>
<textElement textAlignment="Right">
<font size="9"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[($F{WorkcodeAmount}==""||$F{WorkcodeAmount}==null)?0.00:Float.valueOf($F{WorkcodeAmount})/100]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="false">
<reportElement style="Normal-Text-Small-with-borders" stretchType="RelativeToTallestObject" x="20" y="0" width="130" height="15" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#3333FF" uuid="f5fcc495-f401-4498-ac71-7352581cde59"/>
<textElement verticalAlignment="Top">
<font size="9"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{WorkcodeName}]]></textFieldExpression>
</textField>
</band>
</detail>
This is the XML I am testing with:
<?xml version="1.0" encoding="UTF-8"?>
<CategoryDetail>
<CategoryCode>1</CategoryCode>
<CategoryName>EXTERNAL CREATIVE</CategoryName>
<CategoryTotalName>TOTAL EXTERNAL CREAT</CategoryTotalName>
<CategoryType>1</CategoryType>
<CategoryStatus>YNNYN</CategoryStatus>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1B</Workcode>
<WorkcodeName>VISUALS</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Concept and Development</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1C</Workcode>
<WorkcodeName>COPY WRITING</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Visualisation/Finished Art/Lasers</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1E</Workcode>
<WorkcodeName>PHOTOGRAPHY</WorkcodeName>
<WorkcodeAmount>500</WorkcodeAmount>
<WorkcodeCommissionAmount>75</WorkcodeCommissionAmount>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Setting</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
<WorkcodeText>Jaspersoft was originally called Panscopic, and was founded by Al Campa, CEO, and Raj Bhargava, VP of Products in 2001. Panscopic raised $23M from Doll Capital, Discovery Ventures, Morgenthaler Ventures, and Partech. In 2004 Panscopic teamed up with</WorkcodeText>
<WorkcodeText> Teodor Danciu,[7] acquired the intellectual property of JasperReports, and changed the name of the company to Jaspersoft. Brian Gentile became CEO in 2007.<nl><nl>Jaspersoft provides commercial software around the JasperReports product, and negotiat</WorkcodeText>
<WorkcodeText>e contracts with software developers that wish to embed the JasperReports engine into a closed source product.<nl><nl>Jaspersoft's main related product is JasperReports Server, a Java EE web application that provides advanced report server capabiliti</WorkcodeText>
<WorkcodeText>es such as report scheduling and permissions. It is available under an open source license for use in conjunction with open source infrastructure such as MySQL and JBoss, or a commercial license for enterprise deployments involving commercial databas</WorkcodeText>
<WorkcodeText>es and application servers.</WorkcodeText>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1F</Workcode>
<WorkcodeName>ILLUSTRATIONS</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Photography</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>1G</Workcode>
<WorkcodeName>MODEL FEES</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>Models</ExtraWorkcodeName>
<WorkcodeType>C</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
<WorkcodeDetail>
<WorkcodeCategory>1</WorkcodeCategory>
<Workcode>T9</Workcode>
<WorkcodeName>T3 Overtime Pr.</WorkcodeName>
<WorkcodeCommissionRate>150000</WorkcodeCommissionRate>
<WorkcodeFlags>NNNNNNNN</WorkcodeFlags>
<ExtraWorkcodeName>T3 Overtime Pr.</ExtraWorkcodeName>
<WorkcodeType>T</WorkcodeType>
<WorkcodeEstimateCheck>Y</WorkcodeEstimateCheck>
</WorkcodeDetail>
</CategoryDetail>
try isRemoveLineWhenBlank="true" set to false in your textFields