Index: /trunk/grails-app/controllers/ReportController.groovy
===================================================================
--- /trunk/grails-app/controllers/ReportController.groovy	(revision 742)
+++ /trunk/grails-app/controllers/ReportController.groovy	(revision 743)
@@ -285,14 +285,32 @@
 
         flash.errorMessage = g.message(code: result.error.code, args: result.error.args)
-        redirect(action: 'equipmentRegisterOhsGsp')
-
-//         render {
-//             p("DataList:")
-//             result.dataList?.each {
-//                 p("$it")
-//             }
-//         }
+        redirect(action: 'regulatoryRequirementsGsp')
 
     } // regulatoryRequirements
 
+    def mandatoryRequirementsGsp = {
+        render(view: 'mandatoryRequirements')
+    }
+
+    def mandatoryRequirements = {
+
+        def result = assetReportService.getMandatoryRequirements(params, RCU.getLocale(request))
+
+        params.reportTitle = "Asset Mandatory Requirements"
+        params.logoUrl = grailsApplication.mainContext.getResource('images/logo.png').getURL()
+        params.currentUser = authService.currentUser
+        params.startDateString = result.startDateString
+        params.endDateString = result.endDateString
+
+        if(!result.error) {
+            // Jasper plugin controller expects data to be a Collection.
+            chain(controller:'jasper', action:'index', model:[data: [result]], params:params)
+            return
+        }
+
+        flash.errorMessage = g.message(code: result.error.code, args: result.error.args)
+        redirect(action: 'mandatoryRequirementsGsp')
+
+    } // mandatoryRequirements
+
 } // end of class.
Index: /trunk/grails-app/services/AssetReportService.groovy
===================================================================
--- /trunk/grails-app/services/AssetReportService.groovy	(revision 742)
+++ /trunk/grails-app/services/AssetReportService.groovy	(revision 743)
@@ -300,5 +300,4 @@
     } // getEquipmentRegister
 
-
     /**
     * Selects and returns assets regulatory requirements as specified in recurring regulatory tasks.
@@ -330,5 +329,5 @@
 
         result.summary = "This report only selects primary assets and not associated assets. \n"
-        result.summary += "Tasks must have a recurrence enabled and regulatory requirement set."
+        result.summary += "Tasks must have recurrence enabled and regulatory requirement set."
 
         // Subquery to count subTasks..
@@ -388,3 +387,90 @@
     } // getRegulatoryRequirements
 
+    /**
+    * Selects and returns assets mandatory requirements as specified in recurring mandatory tasks.
+    * @param params The request params, may contain params to specify the search.
+    * @param locale The locale to use when generating result.message.
+    */
+    def getMandatoryRequirements(params, locale) {
+        def result = [:]
+
+        def fail = { Map m ->
+            result.error = [ code: m.code, args: [] ]
+            return result
+        }
+
+        result.section = Section.get(params.section.id.toLong())
+        result.site = result.section.site
+
+        result.startDate = params.startDate ?: dateUtilService.oneWeekAgo
+        result.endDate = params.endDate ?: dateUtilService.today
+        // Auto swap date range.
+        if(result.startDate > result.endDate) {
+            def tempStartDate = result.startDate
+            result.startDate = result.endDate
+            result.endDate = tempStartDate
+        }
+
+        result.startDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: result.startDate)
+        result.endDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: result.endDate)
+
+        result.summary = "This report only selects primary assets and not associated assets. \n"
+        result.summary += "Tasks must have recurrence enabled and mandatory requirement set."
+
+        // Subquery to count subTasks..
+        def subTaskQ = new HqlBuilder().query {
+            select 'count(subTask)'
+            from 'task.subTasks as subTask'
+            where 'subTask.trash = false'
+                and 'subTask.targetStartDate < :endDate'
+                and 'subTask.targetCompletionDate >= :startDate'
+        }
+        def subTaskTotalQ = subTaskQ.query
+
+        subTaskQ.and 'subTask.taskStatus.id = 3' // Complete.
+        def subTaskCompletedQ = subTaskQ.query
+
+        def mandatoryTaskQ = new HqlBuilder().query {
+            select 'new map(primaryAsset.name as assetName',
+                        'primaryAsset.description as assetDescription',
+                        'primaryAsset.isActive as assetIsActive',
+                        'task.id as taskId',
+                        'task.description as taskDescription',
+                        "($subTaskTotalQ) as subTaskTotalCount",
+                        "($subTaskCompletedQ) as subTaskCompletedCount)"
+                        namedParams.startDate = result.startDate
+                        namedParams.endDate = result.endDate
+            from 'Task task',
+                    'left join task.primaryAsset as primaryAsset',
+                    'left join task.taskRecurringSchedule as taskRecurringSchedule'
+            where 'task.mandatoryRequirement = true'
+                and 'taskRecurringSchedule.enabled = true'
+                and 'task.trash = false'
+                        namedParams.sectionId = result.section.id
+                and 'primaryAsset.section.id = :sectionId'
+        }
+        result.tasks = Task.executeQuery(mandatoryTaskQ.query, mandatoryTaskQ.namedParams)
+
+        // Build the report table row for each task.
+        result.tasks.each { task ->
+
+            // Caluculate percentages and build description.
+            def percentComplete
+            def completionFigures
+            if(task.subTaskTotalCount) {
+                percentComplete = (task.subTaskCompletedCount / task.subTaskTotalCount) * 100
+                task.completionFigures = "${percentComplete.toInteger()}% ($task.subTaskCompletedCount/$task.subTaskTotalCount)"
+            }
+            else
+                task.completionFigures = '0 sub tasks in date range'
+        } // tasks.each
+
+        result.dataList = result.tasks
+        result.dataList.sort { p1, p2 -> p1.assetName.compareToIgnoreCase(p2.assetName) }
+
+        // Success.
+        return result
+
+    } // getMandatoryRequirements
+
 } // end class
Index: /trunk/grails-app/views/appCore/start.gsp
===================================================================
--- /trunk/grails-app/views/appCore/start.gsp	(revision 742)
+++ /trunk/grails-app/views/appCore/start.gsp	(revision 743)
@@ -171,5 +171,12 @@
                                             <br />
                                             <g:link controller="report" action="regulatoryRequirementsGsp">
+                                                <img  src="${resource(dir:'images/skin',file:'script_lightning.png')}" alt="Regulatory Requirement" title="Regulatory Requirement" />
                                                 Regulatory Requirements
+                                            </g:link>
+                                            <br />
+                                            <br />
+                                            <g:link controller="report" action="mandatoryRequirementsGsp">
+                                                <img  src="${resource(dir:'images/skin',file:'script.png')}" alt="Mandatory Requirement" title="Mandatory Requirement" />
+                                                Mandatory Requirements
                                             </g:link>
                                             <br />
Index: /trunk/grails-app/views/report/mandatoryRequirements.gsp
===================================================================
--- /trunk/grails-app/views/report/mandatoryRequirements.gsp	(revision 743)
+++ /trunk/grails-app/views/report/mandatoryRequirements.gsp	(revision 743)
@@ -0,0 +1,64 @@
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Mandatory Requirements Report</title>
+        <nav:resources override="true"/>
+        <resource:dateChooser />
+    </head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        <div class="body">
+            <h1>Mandatory Requirements Report</h1>
+            <g:render template="/shared/messages" />
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                        <g:jasperForm controller="report"
+                                                    action="mandatoryRequirements"
+                                                    jasper="mandatoryRequirements"
+                                                    name="Mandatory Requirements">
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Date:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <richui:dateChooser name="startDate" id="startDate" format="dd-MM-yyyy" value="${new Date()-7}" />
+                                    to
+                                    <richui:dateChooser name="endDate" id="endDate" format="dd-MM-yyyy" value="${new Date()}" />
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Section:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <g:select optionKey="id"
+                                                        from="${Section.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}"
+                                                        name="section.id">
+                                    </g:select>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Report:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <custom:jasperButtons jasper="mandatoryRequirements" format="PDF, XLS" text="PDF" />
+                                </td>
+                            </tr>
+
+                        </g:jasperForm>
+
+                    </tbody>
+                </table>
+            </div> <!--End dialog-->
+        </div> <!--End body-->
+    </body>
+</html>
Index: /trunk/web-app/reports/mandatoryRequirements.jrxml
===================================================================
--- /trunk/web-app/reports/mandatoryRequirements.jrxml	(revision 743)
+++ /trunk/web-app/reports/mandatoryRequirements.jrxml	(revision 743)
@@ -0,0 +1,335 @@
+<?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="reportName" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="824" leftMargin="9" rightMargin="9" topMargin="9" bottomMargin="9" isSummaryNewPage="true" isSummaryWithPageHeaderAndFooter="true">
+	<property name="ireport.scriptlethandling" value="0"/>
+	<property name="ireport.encoding" value="UTF-8"/>
+	<property name="ireport.zoom" value="1.5"/>
+	<property name="ireport.x" value="0"/>
+	<property name="ireport.y" value="665"/>
+	<import value="net.sf.jasperreports.engine.*"/>
+	<import value="java.util.*"/>
+	<import value="net.sf.jasperreports.engine.data.*"/>
+	<style name="table" isDefault="false">
+		<pen lineWidth="0.5"/>
+		<box>
+			<pen lineWidth="1.0" lineColor="#000000"/>
+			<topPen lineWidth="1.0"/>
+			<leftPen lineWidth="1.0"/>
+			<bottomPen lineWidth="1.0"/>
+			<rightPen lineWidth="1.0"/>
+		</box>
+	</style>
+	<style name="table_TH" isDefault="false" mode="Opaque" backcolor="#F0F8FF">
+		<box>
+			<pen lineWidth="0.5" lineColor="#000000"/>
+		</box>
+	</style>
+	<style name="table_CH" isDefault="false" mode="Opaque" backcolor="#BFE1FF">
+		<box>
+			<pen lineWidth="0.5" lineColor="#000000"/>
+		</box>
+	</style>
+	<style name="table_TD" isDefault="false" mode="Opaque" backcolor="#FFFFFF" pattern="">
+		<box>
+			<pen lineWidth="0.5" lineColor="#000000"/>
+		</box>
+	</style>
+	<style name="table_GH" isDefault="false" mode="Opaque" backcolor="#D2EFF7"/>
+	<subDataset name="dataset1">
+		<queryString language="SQL">
+			<![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{dataList})]]>
+		</queryString>
+		<field name="assetDescription" class="java.lang.String"/>
+		<field name="taskDescription" class="java.lang.String"/>
+		<field name="assetName" class="java.lang.String"/>
+		<field name="completionFigures" class="java.lang.String"/>
+		<field name="taskId" class="java.lang.String"/>
+		<group name="group1">
+			<groupExpression><![CDATA[$F{assetName}]]></groupExpression>
+		</group>
+	</subDataset>
+	<parameter name="reportTitle" class="java.lang.String"/>
+	<parameter name="currentUser" class="java.lang.String"/>
+	<parameter name="logoUrl" class="java.lang.String"/>
+	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
+		<defaultValueExpression><![CDATA["C:\\Documents and Settings\\kromhoutg\\My Documents\\reports\\"]]></defaultValueExpression>
+	</parameter>
+	<parameter name="startDateString" class="java.lang.String"/>
+	<parameter name="endDateString" class="java.lang.String"/>
+	<queryString language="SQL">
+		<![CDATA[]]>
+	</queryString>
+	<field name="dataList" class="java.util.List"/>
+	<field name="site" class="java.lang.Object"/>
+	<field name="section" class="java.lang.Object"/>
+	<field name="summary" class="java.lang.String"/>
+	<background>
+		<band splitType="Stretch"/>
+	</background>
+	<pageHeader>
+		<band height="57" splitType="Stretch">
+			<textField>
+				<reportElement key="staticText-1" x="398" y="5" width="340" height="20"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font fontName="Serif" size="14"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
+			</textField>
+			<image>
+				<reportElement x="0" y="0" width="340" height="57"/>
+				<imageExpression class="java.net.URL"><![CDATA[new URL($P{logoUrl})]]></imageExpression>
+			</image>
+			<textField>
+				<reportElement x="398" y="25" width="340" height="15" isPrintWhenDetailOverflows="true"/>
+				<textElement textAlignment="Center">
+					<font fontName="Serif" size="10"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Site: "+$F{site}.name+", "+"Section: "+$F{section}.name]]></textFieldExpression>
+			</textField>
+			<textField pattern="dd-MMM-yyyy" isBlankWhenNull="true">
+				<reportElement x="398" y="40" width="340" height="12"/>
+				<textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{startDateString}+" to "+$P{endDateString}]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageHeader>
+	<columnHeader>
+		<band splitType="Stretch"/>
+	</columnHeader>
+	<detail>
+		<band height="492" splitType="Immediate">
+			<printWhenExpression><![CDATA[!$F{dataList}.isEmpty()]]></printWhenExpression>
+			<componentElement>
+				<reportElement key="table" style="table" x="2" y="2" width="820" height="488"/>
+				<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">
+						<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{dataList})]]></dataSourceExpression>
+					</datasetRun>
+					<jr:column width="100">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="32" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" isBold="false"/>
+								</textElement>
+								<text><![CDATA[Asset]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" mode="Transparent" x="2" y="0" width="96" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{assetName}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="100">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement x="0" y="0" width="100" height="32"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif"/>
+								</textElement>
+								<text><![CDATA[Description]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" mode="Transparent" x="2" y="0" width="96" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{assetDescription}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="441">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="435" height="32" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="false"/>
+								</textElement>
+								<text><![CDATA[Mandatory Requirement (Recurring Task)]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" mode="Transparent" x="2" y="0" width="435" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Task #"+$F{taskId}+" - "+$F{taskDescription}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="112">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement x="2" y="0" width="108" height="32"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif"/>
+								</textElement>
+								<text><![CDATA[Complete (Sub Tasks)]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" mode="Transparent" x="2" y="0" width="108" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{completionFigures}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+				</jr:table>
+			</componentElement>
+		</band>
+		<band height="85">
+			<printWhenExpression><![CDATA[$F{dataList}.isEmpty()]]></printWhenExpression>
+			<staticText>
+				<reportElement x="0" y="35" width="824" height="50"/>
+				<textElement textAlignment="Center" markup="none">
+					<font fontName="Serif" size="12" isBold="true"/>
+				</textElement>
+				<text><![CDATA[No mandatory requirements found for this section.]]></text>
+			</staticText>
+		</band>
+	</detail>
+	<columnFooter>
+		<band splitType="Stretch"/>
+	</columnFooter>
+	<pageFooter>
+		<band height="28" splitType="Prevent">
+			<textField pattern="dd-MMM-yyyy">
+				<reportElement x="50" y="2" width="200" height="12"/>
+				<textElement>
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="704" y="14" width="80" height="12"/>
+				<textElement textAlignment="Right">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
+			</textField>
+			<textField evaluationTime="Report">
+				<reportElement x="784" y="14" width="40" height="12"/>
+				<textElement>
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="2" width="50" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="50" y="14" width="200" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="14" width="50" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageFooter>
+	<lastPageFooter>
+		<band height="28">
+			<textField evaluationTime="Report">
+				<reportElement x="784" y="14" width="40" height="12"/>
+				<textElement>
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
+			</textField>
+			<textField pattern="dd-MMM-yyyy">
+				<reportElement x="50" y="2" width="200" height="12"/>
+				<textElement>
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="2" width="50" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="14" width="50" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="50" y="14" width="200" height="12"/>
+				<textElement markup="none">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="704" y="14" width="80" height="12"/>
+				<textElement textAlignment="Right">
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
+			</textField>
+		</band>
+	</lastPageFooter>
+	<summary>
+		<band height="369">
+			<textField>
+				<reportElement key="staticText-1" x="242" y="0" width="340" height="30"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font fontName="Serif" size="20"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Summary"]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="2" y="63" width="555" height="48"/>
+				<textElement>
+					<font fontName="Serif"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$F{summary}]]></textFieldExpression>
+			</textField>
+		</band>
+	</summary>
+	<noData>
+		<band height="85" splitType="Stretch">
+			<textField>
+				<reportElement x="0" y="35" width="824" height="50"/>
+				<textElement textAlignment="Center" markup="none">
+					<font fontName="Serif" size="12" isBold="true"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["No data to display. \n"+
+"Please run report again."]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement key="staticText-1" x="0" y="0" width="824" height="35"/>
+				<textElement textAlignment="Center" markup="none">
+					<font fontName="Serif" size="18"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
+			</textField>
+		</band>
+	</noData>
+</jasperReport>
