<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="StretchReport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30">
	<title>
		<band height="210">
			<staticText>
				<reportElement x="5" y="5" width="130" height="200"/>
				<textElement>
					<font size="10"/>
				</textElement>
				<text><![CDATA[The outline on this column is made up of multiple vertical segments, two for each text field (left, right). They stretch with the corresponding text field. This solution has the disadvantage that it is impossible to suppres a text field space when the section overflows to a new page. Check the top of the second page to see that.]]></text>
			</staticText>
			<staticText>
				<reportElement x="145" y="5" width="130" height="200"/>
				<textElement>
					<font size="10"/>
				</textElement>
				<text><![CDATA[In order to minimize the space occupied by the text fields even when they do not print, their height was set to zero. There still seems to be some problems with the bottom line that would sometimes print and sometimes not, when the section breaks, depending on the remaining space.]]></text>
			</staticText>
			<staticText>
				<reportElement x="285" y="5" width="130" height="200"/>
				<textElement>
					<font size="10"/>
				</textElement>
				<text><![CDATA[This solution is similar with the previous. The left and right borders are made up of a single vertical line that stretches with the group represented by the three text fields. The page break behavior is almost the same.]]></text>
			</staticText>
			<staticText>
				<reportElement x="425" y="5" width="130" height="200"/>
				<textElement>
					<font size="10"/>
				</textElement>
				<text><![CDATA[This seems to be the best solution for creating an outline for the three text fields. It is made up of a single rectangle that stretches with the group that contains the three text fields. The page breaks seem to work very well.]]></text>
			</staticText>
		</band>
	</title>
	<pageHeader>
		<band height="15">
			<rectangle>
				<reportElement x="0" y="1" width="555" height="13" backcolor="#ffdddd"/>
				<graphicElement pen="None"/>
			</rectangle>
			<line>
				<reportElement x="0" y="14" width="555" height="1" forecolor="#ff0000"/>
				<graphicElement/>
			</line>
			<staticText>
				<reportElement mode="Opaque" x="0" y="1" width="500" height="13" forecolor="#ff0000" backcolor="#ffdddd"/>
				<textElement>
					<font isBold="true"/>
				</textElement>
				<text><![CDATA[Page Header]]></text>
			</staticText>
			<textField>
				<reportElement mode="Opaque" x="500" y="1" width="55" height="13" forecolor="#ff0000" backcolor="#ffdddd"/>
				<textElement textAlignment="Right">
					<font isBold="true"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["Page " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
			</textField>
		</band>
	</pageHeader>
	<detail>
		<band height="60">
			<line>
				<reportElement positionType="Float" x="5" y="4" width="130" height="1" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="5" y="5" width="1" height="16" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement x="10" y="5" width="100" height="16" isRemoveLineWhenBlank="true"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a FIRST long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="135" y="5" width="1" height="16" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="5" y="22" width="1" height="16" isPrintWhenDetailOverflows="true" forecolor="#808080"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="20" y="22" width="100" height="16" isRemoveLineWhenBlank="true" forecolor="#808080"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a SECOND long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="135" y="22" width="1" height="16" isPrintWhenDetailOverflows="true" forecolor="#808080"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="5" y="39" width="1" height="16" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="30" y="39" width="100" height="16" isRemoveLineWhenBlank="true" forecolor="#c0c0c0"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a THIRD chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="135" y="39" width="1" height="16" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<line>
				<reportElement positionType="Float" x="5" y="56" width="130" height="1" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			<line>
				<reportElement positionType="Float" x="145" y="4" width="130" height="1" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="145" y="5" width="1" height="1" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement x="150" y="5" width="100" height="0" isRemoveLineWhenBlank="true"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a FIRST long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="275" y="5" width="1" height="1" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="145" y="6" width="1" height="1" isPrintWhenDetailOverflows="true" forecolor="#808080"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="160" y="6" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#808080"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a SECOND long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="275" y="6" width="1" height="1" isPrintWhenDetailOverflows="true" forecolor="#808080"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="145" y="7" width="1" height="1" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="170" y="7" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#c0c0c0"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a THIRD chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="275" y="7" width="1" height="1" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<line>
				<reportElement positionType="Float" x="145" y="8" width="130" height="1" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			<elementGroup>
			<rectangle>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="425" y="4" width="130" height="4" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</rectangle>
			<textField isStretchWithOverflow="true">
				<reportElement x="430" y="5" width="100" height="0" isRemoveLineWhenBlank="true"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a FIRST long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="440" y="6" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#808080"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a SECOND long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="450" y="7" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#c0c0c0"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a THIRD chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			</elementGroup>
			<line>
				<reportElement positionType="Float" x="285" y="4" width="130" height="1" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<elementGroup>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="285" y="5" width="1" height="3" isPrintWhenDetailOverflows="true"/>
				<graphicElement/>
			</line>
			<textField isStretchWithOverflow="true">
				<reportElement x="290" y="5" width="100" height="0" isRemoveLineWhenBlank="true"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a FIRST long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="300" y="6" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#808080"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a SECOND long chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="310" y="7" width="100" height="0" isRemoveLineWhenBlank="true" forecolor="#c0c0c0"/>
				<textElement textAlignment="Justified">
					<font size="12"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["This is a THIRD chunk of text that will cause the text field to stretch outside its defined height and force other elements to move downwards."]]></textFieldExpression>
			</textField>
			<line>
				<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="415" y="5" width="1" height="3" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			</elementGroup>
			<line>
				<reportElement positionType="Float" x="285" y="8" width="130" height="1" isPrintWhenDetailOverflows="true" forecolor="#c0c0c0"/>
				<graphicElement/>
			</line>
			<staticText>
				<reportElement positionType="Float" isPrintRepeatedValues="false" x="145" y="9" width="130" height="47" isRemoveLineWhenBlank="true" forecolor="#c0c0c0"/>
				<textElement/>
				<text><![CDATA[Space remover. This static text never prints, but it is used to eliminate the remaining space till the bottom of the band.]]></text>
			</staticText>
		</band>
	</detail>
	<pageFooter>
		<band height="15">
			<rectangle>
				<reportElement x="0" y="1" width="555" height="13" backcolor="#ffdddd"/>
				<graphicElement pen="None"/>
			</rectangle>
			<line>
				<reportElement x="0" y="0" width="555" height="1" forecolor="#ff0000"/>
				<graphicElement/>
			</line>
			<staticText>
				<reportElement mode="Opaque" x="0" y="1" width="500" height="13" forecolor="#ff0000" backcolor="#ffdddd"/>
				<textElement>
					<font isBold="true"/>
				</textElement>
				<text><![CDATA[Page Footer]]></text>
			</staticText>
			<textField>
				<reportElement mode="Opaque" x="500" y="1" width="55" height="13" forecolor="#ff0000" backcolor="#ffdddd"/>
				<textElement textAlignment="Right">
					<font isBold="true"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA["Page " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
			</textField>
		</band>
	</pageFooter>
</jasperReport>
