<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="TableOfContentsReport" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="515" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50" isSummaryNewPage="true" scriptletClass="HeadingsScriptlet">
	<style name="Arial_Normal" isDefault="true" fontName="Arial" fontSize="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
	<style name="Arial_Bold" isDefault="false" fontName="Arial" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
	<style name="Arial_Italic" isDefault="false" fontName="Arial" fontSize="12" isBold="false" isItalic="true" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica-Oblique" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
	<parameter name="ReportTitle" class="java.lang.String">
	</parameter>
	<queryString><![CDATA[SELECT * FROM Orders WHERE OrderID < 12000 ORDER BY ShipCountry]]></queryString>
	<field name="OrderID" class="java.lang.Integer">
	</field>
	<field name="ShipName" class="java.lang.String">
	</field>
	<field name="ShipCity" class="java.lang.String">
	</field>
	<field name="ShipCountry" class="java.lang.String">
	</field>
	<variable name="HeadingsCollection" class="java.util.Collection" calculation="System">
		<initialValueExpression><![CDATA[new java.util.ArrayList()]]></initialValueExpression>
	</variable>
	<variable name="FirstLetter" class="java.lang.String" resetType="None">
		<variableExpression><![CDATA[$F{ShipCountry}.substring(0, 1).toUpperCase()]]></variableExpression>
	</variable>
	<variable name="ShipCountryNumber" class="java.lang.Integer" resetType="Group" resetGroup="ShipCountryGroup" calculation="System">
		<initialValueExpression><![CDATA[($V{ShipCountryNumber} != null)?(new Integer($V{ShipCountryNumber}.intValue() + 1)):(new Integer(1))]]></initialValueExpression>
	</variable>
	<group name="SummaryDummyGroup">
		<groupFooter>
		<band height="60">
			<textField isStretchWithOverflow="true">
				<reportElement x="175" y="20" width="165" height="15" style="Arial_Italic"/>
				<textElement textAlignment="Center"/>
				<textFieldExpression class="java.lang.String"><![CDATA["There were " + 
					String.valueOf($V{REPORT_COUNT}) + 
					" orders on this report."]]></textFieldExpression>
			</textField>
		</band>
		</groupFooter>
	</group>
	<group name="FirstLetterGroup" minHeightToStartNewPage="60">
		<groupExpression><![CDATA[$V{FirstLetter}]]></groupExpression>
		<groupHeader>
		<band height="25">
			<line>
				<reportElement x="0" y="0" width="1" height="1">
					<printWhenExpression><![CDATA[((HeadingsScriptlet)$P{REPORT_SCRIPTLET}).addHeading("FirstLetterGroup")]]></printWhenExpression>
				</reportElement>
				<graphicElement/>
			</line>
			<rectangle>
				<reportElement x="0" y="10" width="515" height="15" forecolor="#c0c0c0" backcolor="#c0c0c0"/>
				<graphicElement/>
			</rectangle>
			<staticText>
				<reportElement mode="Opaque" x="0" y="10" width="170" height="15" backcolor="#c0c0c0" style="Arial_Italic"/>
				<text><![CDATA[Countries Starting With Letter :]]></text>
			</staticText>
			<textField>
				<reportElement mode="Opaque" x="170" y="10" width="345" height="15" backcolor="#c0c0c0" style="Arial_Bold"/>
				<textFieldExpression class="java.lang.String"><![CDATA[$V{FirstLetter}]]></textFieldExpression>
				<anchorNameExpression><![CDATA["FirstLetterGroup_" + $V{FirstLetter}]]></anchorNameExpression>
			</textField>
		</band>
		</groupHeader>
	</group>
	<group name="ShipCountryGroup" minHeightToStartNewPage="60">
		<groupExpression><![CDATA[$F{ShipCountry}]]></groupExpression>
		<groupHeader>
		<band height="20">
			<line>
				<reportElement x="0" y="0" width="1" height="1">
					<printWhenExpression><![CDATA[((HeadingsScriptlet)$P{REPORT_SCRIPTLET}).addHeading("ShipCountryGroup")]]></printWhenExpression>
				</reportElement>
				<graphicElement/>
			</line>
			<line>
				<reportElement x="0" y="19" width="515" height="1"/>
				<graphicElement/>
			</line>
			<textField>
				<reportElement x="0" y="4" width="515" height="15" style="Arial_Bold"/>
				<textFieldExpression class="java.lang.String"><![CDATA["  " + String.valueOf($V{ShipCountryNumber}) + ". " + String.valueOf($F{ShipCountry})]]></textFieldExpression>
				<anchorNameExpression><![CDATA["ShipCountryGroup_" + $V{ShipCountryNumber}]]></anchorNameExpression>
			</textField>
		</band>
		</groupHeader>
		<groupFooter>
		<band height="20">
			<line>
				<reportElement x="0" y="0" width="515" height="1"/>
				<graphicElement/>
			</line>
			<staticText>
				<reportElement x="400" y="1" width="60" height="15" style="Arial_Bold"/>
				<textElement textAlignment="Right"/>
				<text><![CDATA[Count :]]></text>
			</staticText>
			<textField>
				<reportElement x="460" y="1" width="30" height="15" style="Arial_Bold"/>
				<textElement textAlignment="Right"/>
				<textFieldExpression class="java.lang.Integer"><![CDATA[$V{ShipCountryGroup_COUNT}]]></textFieldExpression>
			</textField>
		</band>
		</groupFooter>
	</group>
	<pageHeader>
		<band height="20">
			<rectangle>
				<reportElement x="0" y="5" width="515" height="15" forecolor="#333333" backcolor="#333333"/>
				<graphicElement/>
			</rectangle>
			<staticText>
				<reportElement mode="Opaque" x="0" y="5" width="55" height="15" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold"/>
				<textElement textAlignment="Center"/>
				<text><![CDATA[ID]]></text>
			</staticText>
			<staticText>
				<reportElement mode="Opaque" x="55" y="5" width="205" height="15" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold"/>
				<text><![CDATA[Name]]></text>
			</staticText>
			<staticText>
				<reportElement mode="Opaque" x="260" y="5" width="255" height="15" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold"/>
				<text><![CDATA[City]]></text>
			</staticText>
		</band>
	</pageHeader>
	<detail>
		<band height="20">
			<textField>
				<reportElement x="0" y="5" width="50" height="15"/>
				<textElement textAlignment="Right"/>
				<textFieldExpression class="java.lang.Integer"><![CDATA[$F{OrderID}]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="55" y="5" width="200" height="15"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{ShipName}]]></textFieldExpression>
			</textField>
			<textField isStretchWithOverflow="true">
				<reportElement positionType="Float" x="260" y="5" width="255" height="15"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{ShipCity}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
	<pageFooter>
		<band height="40">
			<line>
				<reportElement x="0" y="10" width="515" height="1"/>
				<graphicElement/>
			</line>
			<textField>
				<reportElement x="200" y="20" width="80" height="15"/>
				<textElement textAlignment="Right"/>
				<textFieldExpression class="java.lang.String"><![CDATA["Page " + String.valueOf($V{PAGE_NUMBER}) + " of"]]></textFieldExpression>
			</textField>
			<textField evaluationTime="Group" evaluationGroup="SummaryDummyGroup">
				<reportElement x="280" y="20" width="75" height="15"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[" " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
			</textField>
		</band>
	</pageFooter>
	<summary>
		<band height="60">
			<subreport>
				<reportElement x="0" y="0" width="515" height="20"/>
				<subreportParameter name="ReportTitle">
					<subreportParameterExpression><![CDATA[$P{ReportTitle}]]></subreportParameterExpression>
				</subreportParameter>
				<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($V{HeadingsCollection})]]></dataSourceExpression>
				<subreportExpression class="java.lang.String"><![CDATA["HeadingsReport.jasper"]]></subreportExpression>
			</subreport>
		</band>
	</summary>
</jasperReport>

