Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You can use this sample:</p> <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;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="year_sum_quarter" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"&gt; &lt;property name="ireport.zoom" value="1.0"/&gt; &lt;property name="ireport.x" value="0"/&gt; &lt;property name="ireport.y" value="0"/&gt; &lt;queryString&gt; &lt;![CDATA[]]&gt; &lt;/queryString&gt; &lt;field name="year" class="java.lang.Integer"/&gt; &lt;field name="month" class="java.lang.String"/&gt; &lt;field name="sum" class="java.lang.Integer"/&gt; &lt;field name="q" class="java.lang.Integer"/&gt; &lt;variable name="yearSum" class="java.lang.Integer" resetType="Group" resetGroup="yearGroup" calculation="Sum"&gt; &lt;variableExpression&gt;&lt;![CDATA[$F{sum}]]&gt;&lt;/variableExpression&gt; &lt;/variable&gt; &lt;variable name="qSum" class="java.lang.Integer" resetType="Group" resetGroup="quaterGroup" calculation="Sum"&gt; &lt;variableExpression&gt;&lt;![CDATA[$F{sum}]]&gt;&lt;/variableExpression&gt; &lt;/variable&gt; &lt;group name="yearGroup"&gt; &lt;groupExpression&gt;&lt;![CDATA[$F{year}]]&gt;&lt;/groupExpression&gt; &lt;groupFooter&gt; &lt;band height="20"&gt; &lt;textField&gt; &lt;reportElement x="100" y="0" width="100" height="20"/&gt; &lt;box leftPadding="10"&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="0.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="0.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA["Jan-Dec, " + $F{year}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;textField&gt; &lt;reportElement x="200" y="0" width="100" height="20"/&gt; &lt;box leftPadding="0"&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="0.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="0.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA[$V{yearSum}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;staticText&gt; &lt;reportElement x="0" y="0" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="0.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;staticText&gt; &lt;reportElement x="300" y="0" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="0.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;/band&gt; &lt;/groupFooter&gt; &lt;/group&gt; &lt;group name="quaterGroup"&gt; &lt;groupExpression&gt;&lt;![CDATA[$F{year} + $F{q}]]&gt;&lt;/groupExpression&gt; &lt;/group&gt; &lt;columnHeader&gt; &lt;band height="50"&gt; &lt;staticText&gt; &lt;reportElement x="100" y="30" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[Month]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;staticText&gt; &lt;reportElement x="0" y="30" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[Year]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;staticText&gt; &lt;reportElement x="200" y="30" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[Month Sum]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;staticText&gt; &lt;reportElement x="300" y="30" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[Quarter Sum]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;/band&gt; &lt;/columnHeader&gt; &lt;detail&gt; &lt;band height="20" splitType="Stretch"&gt; &lt;staticText&gt; &lt;reportElement x="300" y="0" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="0.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="0.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;staticText&gt; &lt;reportElement x="0" y="0" width="100" height="20"/&gt; &lt;box&gt; &lt;topPen lineWidth="0.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="0.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement textAlignment="Center" verticalAlignment="Middle"&gt; &lt;font isBold="true" isItalic="true"/&gt; &lt;/textElement&gt; &lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt; &lt;/staticText&gt; &lt;textField&gt; &lt;reportElement x="0" y="0" width="100" height="20"&gt; &lt;printWhenExpression&gt;&lt;![CDATA[$V{yearGroup_COUNT} == 1]]&gt;&lt;/printWhenExpression&gt; &lt;/reportElement&gt; &lt;box leftPadding="10"&gt; &lt;topPen lineWidth="0.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="0.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA[$F{year}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;textField&gt; &lt;reportElement x="200" y="0" width="100" height="20"/&gt; &lt;box leftPadding="10"&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA[$F{sum}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;textField&gt; &lt;reportElement x="100" y="0" width="100" height="20"/&gt; &lt;box leftPadding="10"&gt; &lt;topPen lineWidth="1.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="1.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA[$F{month}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;textField evaluationTime="Group" evaluationGroup="quaterGroup" isBlankWhenNull="false"&gt; &lt;reportElement stretchType="RelativeToBandHeight" isPrintRepeatedValues="false" x="300" y="0" width="100" height="20" printWhenGroupChanges="quaterGroup"&gt; &lt;printWhenExpression&gt;&lt;![CDATA[$V{quaterGroup_COUNT} == 1]]&gt;&lt;/printWhenExpression&gt; &lt;/reportElement&gt; &lt;box leftPadding="10"&gt; &lt;topPen lineWidth="0.0"/&gt; &lt;leftPen lineWidth="1.0"/&gt; &lt;bottomPen lineWidth="0.0"/&gt; &lt;rightPen lineWidth="1.0"/&gt; &lt;/box&gt; &lt;textElement/&gt; &lt;textFieldExpression&gt;&lt;![CDATA[$V{qSum}]]&gt;&lt;/textFieldExpression&gt; &lt;/textField&gt; &lt;line&gt; &lt;reportElement x="300" y="0" width="100" height="1" printWhenGroupChanges="quaterGroup"&gt; &lt;printWhenExpression&gt;&lt;![CDATA[$V{quaterGroup_COUNT} == 1]]&gt;&lt;/printWhenExpression&gt; &lt;/reportElement&gt; &lt;/line&gt; &lt;/band&gt; &lt;/detail&gt; &lt;/jasperReport&gt; </code></pre> <p>The result will be (in pdf format): <img src="https://i.stack.imgur.com/HOOpb.png" alt="Resulting report in PDF format"></p> <p>In this sample I've used two elements in the <em><code>Detail</code></em> band for the <code>Year</code> column: one <em><code>textField</code></em> with only vertical borders and with <strong><em><code>printWhenExpression: "$V{yearGroup_COUNT} == 1"</code></em></strong> property (I'm show it only once for the whole <strong>yearGroup</strong>) and one <em><code>staticText</code></em> without any text and with only vertical borders.</p> <p>I've used three elements in the <em><code>Detail</code></em> band for the <code>Quarter Sum</code> column:<br> one <em><code>textField</code></em> with only vertical borders and with <strong><em><code>printWhenExpression: "$V{quaterGroup_COUNT} == 1"</code></em></strong> property (I'm show it only once for the whole <strong>quaterGroup</strong>), one <em><code>staticText</code></em> without any text and with only vertical borders and the <em><code>line</code></em> element for drawing horizontal border with <strong><em><code>printWhenExpression: "$V{quaterGroup_COUNT} == 1"</code></em></strong> property.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload