Index: /trunk/grails-app/controllers/ReportController.groovy
===================================================================
--- /trunk/grails-app/controllers/ReportController.groovy	(revision 541)
+++ /trunk/grails-app/controllers/ReportController.groovy	(revision 542)
@@ -66,6 +66,27 @@
     }
 
-    def test = {
-        render taskReportService.getReactiveRatio(params, RCU.getLocale(request))
+    def immediateCallouts = {
+
+        params.reportTitle = "Immediate Callouts"
+        params.logoUrl = grailsApplication.mainContext.getResource('images/logo.png').getURL()
+        params.currentUser = authService.currentUser
+
+        if(params.startDate == 'struct')
+            params.startDate = dateUtilService.makeDate(params.startDate_year, params.startDate_month, params.startDate_day)
+        else
+            params.startDate = dateUtilService.today-7
+        params.startDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: params.startDate)
+
+        if(params.endDate == 'struct')
+            params.endDate = dateUtilService.makeDate(params.endDate_year, params.endDate_month, params.endDate_day)
+        else
+            params.endDate = dateUtilService.today
+        params.endDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: params.endDate)
+
+        def dataModel = [taskReportService.getImmediateCallouts(params, RCU.getLocale(request))]
+
+//         render dataModel
+        chain(controller:'jasper', action:'index', model:[data: dataModel], params:params)
+
     }
 
Index: /trunk/grails-app/services/TaskReportService.groovy
===================================================================
--- /trunk/grails-app/services/TaskReportService.groovy	(revision 541)
+++ /trunk/grails-app/services/TaskReportService.groovy	(revision 542)
@@ -10,4 +10,5 @@
     def authService
     def dateUtilService
+    def sessionFactory
 //     def messageSource
 
@@ -18,5 +19,5 @@
     /**
     * Selects and returns the reactive ratio.
-    * @param params The request params, may contain param to specify the search.
+    * @param params The request params, may contain params to specify the search.
     * @param locale The locale to use when generating result.message.
     */
@@ -34,14 +35,14 @@
 
         result.taskQuery = "from Task as task \
-                                        where (task.trash = false \
-                                                    and task.taskStatus != :notStarted \
-                                                    and task.targetStartDate < :endDate \
-                                                    and task.targetStartDate >= :startDate \
-                                                    and ( \
-                                                        task.taskType = :immediateCallout \
-                                                        or task.taskType = :unscheduledBreakin \
-                                                        or task.taskType = :preventativeMaintenance \
-                                                    ) \
-                                        )"
+                                            where (task.trash = false \
+                                                        and task.taskStatus != :notStarted \
+                                                        and task.targetStartDate < :endDate \
+                                                        and task.targetStartDate >= :startDate \
+                                                        and ( \
+                                                            task.taskType = :immediateCallout \
+                                                            or task.taskType = :unscheduledBreakin \
+                                                            or task.taskType = :preventativeMaintenance \
+                                                        ) \
+                                            )"
 
         result.taskQuery = "select distinct task " + result.taskQuery
@@ -55,4 +56,5 @@
         result.preventativeMaintenanceCount = 0
 
+        // Summary Of Calculations.
         result.summaryOfCalculationMethod = 'HQL query: \n\n'
         def tempStringArray = result.taskQuery.split('    ')
@@ -148,5 +150,88 @@
         return result
 
-    } // getQuickSearch
+    } // getReactiveRatio
+
+    /**
+    * Selects and returns Immediate Callouts, grouped by Asset.
+    * @param params The request params, may contain params to specify the search.
+    * @param locale The locale to use when generating result.message.
+    */
+    def getImmediateCallouts(params, locale) {
+        def result = [:]
+
+        def namedParams = [:]
+        namedParams.startDate = params.startDate ?: dateUtilService.today
+        namedParams.endDatePlusOne = (params.endDate ?: dateUtilService.today)+1
+        namedParams.immediateCallout = TaskType.read(1)
+
+        result.taskQuery = "from Task as task \
+                                            where (task.trash = false \
+                                                        and task.targetStartDate < :endDatePlusOne \
+                                                        and task.targetStartDate >= :startDate \
+                                                        and task.taskType = :immediateCallout \
+                                                        ) \
+                                            )"
+
+        result.taskQuery = "select distinct task " + result.taskQuery
+        result.taskList = Task.executeQuery(result.taskQuery, namedParams)
+        result.taskCount = result.taskList.size()
+
+        // Assets on Tasks Count.
+        result.totalAssetsOnTasksCount = 0
+        result.assetList = []
+
+        // Add or update asset details in assetList.
+        def addAssetToList = { asset, task ->
+
+            def downTime = 0
+            def faultEntries = Entry.findAllByTaskAndEntryType(task, EntryType.read(1))
+            faultEntries.each() { downTime += (it.durationHour*60 + it.durationMinute) }
+
+            def assetDetails = result.assetList.find { it.id == asset.id }
+            if(assetDetails) {
+                assetDetails.immediateCalloutCount++
+                assetDetails.immediateCalloutTaskList.add(task.toString())
+            }
+            else {
+                assetDetails = [id: asset.id,
+                                            name: asset.name,
+                                            immediateCalloutCount: 1,
+                                            downTime: downTime,
+                                            immediateCalloutTaskList: [task.toString()]]
+
+                result.assetList << assetDetails
+            }
+        } // addAssetToList
+
+        // Summary Of Calculations.
+        result.summaryOfCalculationMethod = 'HQL query: \n\n'
+        def tempStringArray = result.taskQuery.split('    ')
+        tempStringArray.each() {
+            if(it != '') result.summaryOfCalculationMethod += it +'\n'
+        }
+        result.summaryOfCalculationMethod += '\n'+'Calculations: '+'\n\n'
+
+        result.summaryOfCalculationMethod += 'totalAssetsOnTasksCount = A count of unique assets on each task. \n'
+        result.taskList.each() { task ->
+            if(task.primaryAsset) {
+                result.totalAssetsOnTasksCount++
+                addAssetToList(task.primaryAsset, task)
+            }
+            task.associatedAssets.each() { associatedAsset ->
+                if(associatedAsset.id != task.primaryAsset?.id) {
+                    result.totalAssetsOnTasksCount++
+                    addAssetToList(associatedAsset, task)
+                }
+            }
+
+        } // each() task
+
+        // Sort by callout count.
+        result.assetList.sort {a, b -> b.immediateCalloutCount.compareTo(a.immediateCalloutCount)}
+
+        // Success.
+        return result
+
+    } // getImmediateCallouts()
 
 
Index: /trunk/grails-app/views/appCore/start.gsp
===================================================================
--- /trunk/grails-app/views/appCore/start.gsp	(revision 541)
+++ /trunk/grails-app/views/appCore/start.gsp	(revision 542)
@@ -113,4 +113,14 @@
                                             <br />
                                             <g:jasperReport controller="report"
+                                                                            action="immediateCallouts"
+                                                                            jasper="immediateCallouts"
+                                                                            name="Immediate Callouts"
+                                                                            format="PDF, XLS">
+                                                <richui:dateChooser name="startDate" format="dd-MM-yyyy" value="${new Date()-7}" />
+                                                to
+                                                <richui:dateChooser name="endDate" format="dd-MM-yyyy" value="${new Date()}" />
+                                            </g:jasperReport>
+                                            <br />
+                                            <g:jasperReport controller="report"
                                                                             action="templatePortrait"
                                                                             jasper="templatePortrait"
Index: /trunk/web-app/css/main.css
===================================================================
--- /trunk/web-app/css/main.css	(revision 541)
+++ /trunk/web-app/css/main.css	(revision 542)
@@ -17,5 +17,8 @@
 * #666666 - Dark Grey (Nav Text).
 * #333333 - Very Dark Grey (TH, Menu Button).
-* #555555 - Total Row Grey.
+* #FFFFFF - Table Row (Even).
+* #F7F7F7 - Table Row (Odd).
+* #EDEDED - Total Row Grey (Bg).
+* #555555 - Total Row Grey (Fg).
 */
 
Index: /trunk/web-app/reports/immediateCallouts.jrxml
===================================================================
--- /trunk/web-app/reports/immediateCallouts.jrxml	(revision 542)
+++ /trunk/web-app/reports/immediateCallouts.jrxml	(revision 542)
@@ -0,0 +1,406 @@
+<?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="782" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20" isSummaryNewPage="true" isSummaryWithPageHeaderAndFooter="true">
+	<property name="ireport.scriptlethandling" value="0"/>
+	<property name="ireport.encoding" value="UTF-8"/>
+	<property name="ireport.zoom" value="1.0"/>
+	<property name="ireport.x" value="0"/>
+	<property name="ireport.y" value="384"/>
+	<import value="java.util.*"/>
+	<import value="net.sf.jasperreports.engine.*"/>
+	<import value="net.sf.jasperreports.engine.data.*"/>
+	<style name="Crosstab Data Text" isDefault="false" hAlign="Center"/>
+	<style name="table" isDefault="false" fill="Solid" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
+		<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+			<pen lineWidth="0.0" lineColor="#000000"/>
+			<topPen lineWidth="0.0"/>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="0.0"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+	</style>
+	<style name="table_TH" isDefault="false" mode="Opaque" backcolor="#C7C7C7" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
+		<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+			<pen lineWidth="1.0" lineColor="#000000"/>
+			<topPen lineWidth="1.0"/>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="1.0"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+	</style>
+	<style name="table_CH" isDefault="false" mode="Opaque" backcolor="#FFFFFF" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
+		<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+			<pen lineWidth="1.0" lineColor="#000000"/>
+			<topPen lineWidth="0.0"/>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="1.0"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+	</style>
+	<style name="table_TD" isDefault="false" mode="Opaque" backcolor="#FFFFFF" fontSize="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
+		<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+			<pen lineWidth="1.0" lineColor="#000000"/>
+			<topPen lineWidth="1.0"/>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="1.0"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+		<conditionalStyle>
+			<conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>
+			<style isDefault="false" style="table_TD" backcolor="#F7F7F7"/>
+		</conditionalStyle>
+	</style>
+	<style name="table_CF" isDefault="false" mode="Opaque" backcolor="#EDEDED" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
+		<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+			<pen lineWidth="1.0"/>
+			<topPen lineWidth="1.0"/>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="1.0"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+	</style>
+	<subDataset name="dataset1">
+		<field name="id" class="java.lang.Long"/>
+		<field name="name" class="java.lang.String"/>
+		<field name="immediateCalloutCount" class="java.lang.Integer"/>
+		<field name="immediateCalloutTaskList" class="java.util.List"/>
+		<field name="downTime" class="java.lang.Integer"/>
+		<variable name="immediateCalloutSum" class="java.lang.Integer" calculation="Sum">
+			<variableExpression><![CDATA[$F{immediateCalloutCount}]]></variableExpression>
+		</variable>
+		<group name="assetName">
+			<groupExpression><![CDATA[$F{name}]]></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="startDateString" class="java.lang.String"/>
+	<parameter name="endDateString" class="java.lang.String"/>
+	<queryString language="hql">
+		<![CDATA[]]>
+	</queryString>
+	<field name="taskList" class="java.util.List"/>
+	<field name="summaryOfCalculationMethod" class="java.lang.String"/>
+	<field name="totalAssetsOnTasksCount" class="java.lang.String"/>
+	<field name="assetList" class="java.util.List"/>
+	<background>
+		<band splitType="Stretch"/>
+	</background>
+	<pageHeader>
+		<band height="121" splitType="Stretch">
+			<textField>
+				<reportElement key="staticText-1" x="0" y="57" width="340" height="30"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font size="20"/>
+				</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 pattern="dd-MMM-yyyy" isBlankWhenNull="true">
+				<reportElement x="0" y="87" width="340" height="20"/>
+				<textElement textAlignment="Center" verticalAlignment="Middle" markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{startDateString}+" to "+$P{endDateString}]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageHeader>
+	<columnHeader>
+		<band splitType="Stretch"/>
+	</columnHeader>
+	<detail>
+		<band height="394" splitType="Stretch">
+			<componentElement>
+				<reportElement key="table" style="table" x="0" y="0" width="377" height="394"/>
+				<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{assetList})]]></dataSourceExpression>
+					</datasetRun>
+					<jr:column width="160">
+						<jr:columnHeader style="table_CH" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="160" height="30"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="12" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Asset"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:columnFooter style="table_CF" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="160" height="30"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="12" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Total"]]></textFieldExpression>
+							</textField>
+						</jr:columnFooter>
+						<jr:detailCell style="table_TD" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="160" height="30"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" isBold="false" isItalic="false"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="55">
+						<jr:columnHeader height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="55" height="30"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="12" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Callouts"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:columnFooter style="table_CF" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="55" height="30"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="12" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.Integer"><![CDATA[$V{immediateCalloutSum}]]></textFieldExpression>
+							</textField>
+						</jr:columnFooter>
+						<jr:detailCell style="table_TD" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="55" height="30"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" isBold="false"/>
+								</textElement>
+								<textFieldExpression class="java.lang.Integer"><![CDATA[$F{immediateCalloutCount}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="159">
+						<jr:columnHeader style="table_CH" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="159" height="30"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="12" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Tasks"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:columnFooter style="table_CF" height="30" rowSpan="1"/>
+						<jr:detailCell style="table_TD" height="30" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="159" height="30"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="false"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{immediateCalloutTaskList}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+				</jr:table>
+			</componentElement>
+			<pie3DChart>
+				<chart>
+					<reportElement x="416" y="0" width="366" height="301"/>
+					<chartTitle/>
+					<chartSubtitle/>
+					<chartLegend/>
+				</chart>
+				<pieDataset>
+					<dataset>
+						<datasetRun subDataset="dataset1">
+							<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{assetList})]]></dataSourceExpression>
+						</datasetRun>
+					</dataset>
+					<keyExpression><![CDATA[$F{name}]]></keyExpression>
+					<valueExpression><![CDATA[$F{immediateCalloutCount}]]></valueExpression>
+				</pieDataset>
+				<pie3DPlot depthFactor="0.1" isCircular="false" labelFormat="{2}">
+					<plot/>
+					<itemLabel color="#000000" backgroundColor="#FFFFFF"/>
+				</pie3DPlot>
+			</pie3DChart>
+		</band>
+		<band height="394">
+			<bar3DChart>
+				<chart>
+					<reportElement x="0" y="0" width="782" height="212"/>
+					<chartTitle/>
+					<chartSubtitle/>
+					<chartLegend/>
+				</chart>
+				<categoryDataset>
+					<dataset>
+						<datasetRun subDataset="dataset1">
+							<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{assetList})]]></dataSourceExpression>
+						</datasetRun>
+					</dataset>
+					<categorySeries>
+						<seriesExpression><![CDATA["Immediate Callouts"]]></seriesExpression>
+						<categoryExpression><![CDATA[$F{name}]]></categoryExpression>
+						<valueExpression><![CDATA[$F{immediateCalloutCount}]]></valueExpression>
+					</categorySeries>
+				</categoryDataset>
+				<bar3DPlot isShowLabels="true">
+					<plot labelRotation="-60.0"/>
+					<itemLabel color="#000000" backgroundColor="#FFFFFF"/>
+					<categoryAxisFormat labelRotation="-60.0">
+						<axisFormat>
+							<labelFont/>
+							<tickLabelFont/>
+						</axisFormat>
+					</categoryAxisFormat>
+					<valueAxisFormat>
+						<axisFormat>
+							<labelFont/>
+							<tickLabelFont/>
+						</axisFormat>
+					</valueAxisFormat>
+				</bar3DPlot>
+			</bar3DChart>
+			<bar3DChart>
+				<chart>
+					<reportElement x="0" y="212" width="782" height="182"/>
+					<chartTitle/>
+					<chartSubtitle/>
+					<chartLegend/>
+				</chart>
+				<categoryDataset>
+					<dataset>
+						<datasetRun subDataset="dataset1">
+							<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{assetList})]]></dataSourceExpression>
+						</datasetRun>
+					</dataset>
+					<categorySeries>
+						<seriesExpression><![CDATA["Down Time"]]></seriesExpression>
+						<categoryExpression><![CDATA[$F{name}]]></categoryExpression>
+						<valueExpression><![CDATA[$F{downTime}]]></valueExpression>
+					</categorySeries>
+				</categoryDataset>
+				<bar3DPlot isShowLabels="true">
+					<plot labelRotation="-60.0">
+						<seriesColor seriesOrder="0" color="#FF9900"/>
+					</plot>
+					<itemLabel color="#000000" backgroundColor="#FFFFFF"/>
+					<categoryAxisFormat labelRotation="-60.0">
+						<axisFormat>
+							<labelFont/>
+							<tickLabelFont/>
+						</axisFormat>
+					</categoryAxisFormat>
+					<valueAxisFormat>
+						<axisFormat>
+							<labelFont/>
+							<tickLabelFont/>
+						</axisFormat>
+					</valueAxisFormat>
+				</bar3DPlot>
+			</bar3DChart>
+		</band>
+	</detail>
+	<columnFooter>
+		<band splitType="Stretch"/>
+	</columnFooter>
+	<pageFooter>
+		<band height="40" splitType="Stretch">
+			<textField pattern="dd-MMM-yyyy">
+				<reportElement x="82" y="0" width="200" height="20"/>
+				<textElement/>
+				<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="662" y="20" width="80" height="20"/>
+				<textElement textAlignment="Right"/>
+				<textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
+			</textField>
+			<textField evaluationTime="Report">
+				<reportElement x="742" y="20" width="40" height="20"/>
+				<textElement/>
+				<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="0" width="82" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="82" y="20" width="200" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="20" width="82" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageFooter>
+	<lastPageFooter>
+		<band height="40">
+			<textField evaluationTime="Report">
+				<reportElement x="742" y="20" width="40" height="20"/>
+				<textElement/>
+				<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
+			</textField>
+			<textField pattern="dd-MMM-yyyy">
+				<reportElement x="82" y="0" width="200" height="20"/>
+				<textElement/>
+				<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="0" width="82" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="20" width="82" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="82" y="20" width="200" height="20"/>
+				<textElement markup="none"/>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="662" y="20" width="80" height="20"/>
+				<textElement textAlignment="Right"/>
+				<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="221" y="12" width="340" height="30"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font size="20"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Summary of Calculation Method"]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement x="0" y="50" width="782" height="311"/>
+				<textElement/>
+				<textFieldExpression class="java.lang.String"><![CDATA[$F{summaryOfCalculationMethod}]]></textFieldExpression>
+			</textField>
+		</band>
+	</summary>
+	<noData>
+		<band height="85" splitType="Stretch">
+			<textField>
+				<reportElement x="0" y="35" width="782" height="50"/>
+				<textElement textAlignment="Center" markup="none">
+					<font size="14" 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="782" height="35"/>
+				<textElement textAlignment="Center" markup="none">
+					<font size="20"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
+			</textField>
+		</band>
+	</noData>
+</jasperReport>
