Index: trunk/grails-app/controllers/ReportController.groovy
===================================================================
--- trunk/grails-app/controllers/ReportController.groovy	(revision 667)
+++ trunk/grails-app/controllers/ReportController.groovy	(revision 668)
@@ -196,3 +196,20 @@
     } // equipmentRegister
 
+    def inventoryValueGsp = {
+        render(view: 'inventoryValue')
+    }
+
+    def inventoryValue = {
+
+        params.reportTitle = "Inventory Value"
+        params.logoUrl = grailsApplication.mainContext.getResource('images/logo.png').getURL()
+        params.currentUser = authService.currentUser
+
+        def dataModel = inventoryReportService.getInventoryValue(params, RCU.getLocale(request))
+
+        // Jasper plugin controller expects data to be a Collection.
+        chain(controller:'jasper', action:'index', model:[data: [dataModel]], params:params)
+
+    }
+
 } // end of class.
Index: trunk/grails-app/i18n/messages.properties
===================================================================
--- trunk/grails-app/i18n/messages.properties	(revision 667)
+++ trunk/grails-app/i18n/messages.properties	(revision 668)
@@ -437,4 +437,5 @@
 report.error.no.inventory.items.found=Error: no inventory items found, please run report again.
 report.error.too.many.inventory.items=Error: over {0} inventory items, please run report again.
+report.error.multiple.currency.found=Error: multiple currency found.
 
 #
Index: trunk/grails-app/services/InventoryReportService.groovy
===================================================================
--- trunk/grails-app/services/InventoryReportService.groovy	(revision 667)
+++ trunk/grails-app/services/InventoryReportService.groovy	(revision 668)
@@ -1,2 +1,4 @@
+
+import net.kromhouts.HqlBuilder
 
 /**
@@ -164,3 +166,71 @@
     } // getStockTakeOverview()
 
+    /**
+    * Get the data for the inventory value.
+    * @param params The request params, may contain params to specify the search.
+    * @param locale The locale to use when generating result.message.
+    */
+    def getInventoryValue(params, locale) {
+        def result = [:]
+
+        result.inventoryItemList = []
+        result.inventoryItemCount = 0
+        result.inventoryItemTotalValue = new BigDecimal(0)
+        result.currency = null
+        result.errorMessage = null
+        result.summaryOfCalculationMethod = "This report does not convert between different currency.\n"
+        result.summaryOfCalculationMethod += "Therefore all item's are checked to ensure that currency is the same."
+
+        result.site = Site.get(params.site.id.toLong())
+        result.inventoryTypes = params.inventoryTypes.collect { InventoryType.get(it.toInteger()) }
+        result.inventoryGroups = params.inventoryGroups.collect { InventoryGroup.get(it.toInteger()) }
+
+        def fail = { Map m ->
+            result.error = [ code: m.code, args: m.args ]
+            result.errorMessage = g.message(result.error)
+            result.currency = null
+            result.inventoryItemTotalValue = new BigDecimal(0)
+            return result
+        }
+
+        def q = new HqlBuilder().query {
+            select 'distinct inventoryItem'
+            from 'InventoryItem as inventoryItem',
+                    'left join fetch inventoryItem.inventoryLocation as inventoryLocation',
+                    'left join fetch inventoryLocation.inventoryStore as inventoryStore',
+                    'left join fetch inventoryItem.unitOfMeasure as unitOfMeasure',
+                    'left join fetch inventoryItem.picture as picture',
+                    'left join fetch picture.images as Image'
+            where 'inventoryItem.isActive = true'
+                namedParams.siteId = result.site.id
+                and 'inventoryStore.site.id = :siteId'
+                if(result.inventoryTypes) {
+                    namedParams.inventoryTypeIds = result.inventoryTypes.collect {it.id}
+                    and 'inventoryItem.inventoryType.id in(:inventoryTypeIds)'
+                }
+                if(result.inventoryGroups) {
+                    namedParams.inventoryGroupIds = result.inventoryGroups.collect {it.id}
+                    and 'inventoryItem.inventoryGroup.id in(:inventoryGroupIds)'
+                }
+            order 'by inventoryItem.name asc'
+        }
+
+        result.inventoryItemList = InventoryItem.executeQuery(q.query, q.namedParams)
+        result.inventoryItemCount = result.inventoryItemList.size()
+        result.currency = result.inventoryItemList[0]?.estimatedUnitPriceCurrency
+
+        for(inventoryItem in result.inventoryItemList) {
+            // Check all currency is the same.
+            if(result.currency != inventoryItem.estimatedUnitPriceCurrency) {
+                fail(code:'report.error.multiple.currency.found') // No return, populate errors but continue report.
+                break
+            }
+            result.inventoryItemTotalValue += inventoryItem.estimatedUnitPriceAmount * inventoryItem.unitsInStock
+        } // for
+
+        // Success.
+        return result
+
+    } // getInventoryValueByGroupAndType()
+
 } // end class
Index: trunk/grails-app/views/appCore/start.gsp
===================================================================
--- trunk/grails-app/views/appCore/start.gsp	(revision 667)
+++ trunk/grails-app/views/appCore/start.gsp	(revision 668)
@@ -196,4 +196,15 @@
                                     </tr>
 
+                                    <tr class="prop">
+                                        <td valign="top" class="name">
+                                            <label>Inventory:</label>
+                                        </td>
+                                        <td valign="top" class="value">
+                                                <g:link controller="report" action="inventoryValueGsp">
+                                                    Inventory Value
+                                                </g:link>
+                                        </td>
+                                    </tr>
+
                                 </tbody>
                             </table>
Index: trunk/grails-app/views/report/inventoryValue.gsp
===================================================================
--- trunk/grails-app/views/report/inventoryValue.gsp	(revision 668)
+++ trunk/grails-app/views/report/inventoryValue.gsp	(revision 668)
@@ -0,0 +1,80 @@
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Inventory Value Report</title>
+        <nav:resources override="true"/>
+    </head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        <div class="body">
+            <h1>Inventory Value Report</h1>
+            <g:render template="/shared/messages" />
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                        <g:jasperForm controller="report"
+                                                    action="inventoryValue"
+                                                    jasper="inventoryValue"
+                                                    name="Inventory Value">
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Site:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <g:select optionKey="id"
+                                                        from="${Site.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}"
+                                                        name="site.id">
+                                    </g:select>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Inventory Type:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <custom:checkBoxList name="inventoryTypes"
+                                                                            from="${InventoryType.findAllByIsActive(true)}"
+                                                                            optionKey="id"
+                                                                            sortBy="name"
+                                                                            linkController="inventoryTypeDetailed"
+                                                                            linkAction="show"/>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Inventory Group:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <custom:checkBoxList name="inventoryGroups"
+                                                                            from="${InventoryGroup.findAllByIsActive(true)}"
+                                                                            optionKey="id"
+                                                                            sortBy="name"
+                                                                            linkController="inventoryGroupDetailed"
+                                                                            linkAction="show"/>
+                                </td>
+                            </tr>
+
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label>Report:</label>
+                                </td>
+                                <td valign="top" class="value">
+                                    <custom:jasperButtons formName="inventoryValue" format="PDF, XLS" text="PDF" />
+                                </td>
+                            </tr>
+
+                        </g:jasperForm>
+
+                    </tbody>
+                </table>
+            </div> <!--End dialog-->
+        </div> <!--End body-->
+    </body>
+</html>
Index: trunk/web-app/reports/inventoryValue.jrxml
===================================================================
--- trunk/web-app/reports/inventoryValue.jrxml	(revision 668)
+++ trunk/web-app/reports/inventoryValue.jrxml	(revision 668)
@@ -0,0 +1,511 @@
+<?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="12" bottomMargin="12" 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="144"/>
+	<import value="net.sf.jasperreports.engine.*"/>
+	<import value="java.util.*"/>
+	<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>
+	<style name="vertColumns" isDefault="false">
+		<box>
+			<leftPen lineWidth="0.0"/>
+			<bottomPen lineWidth="0.5"/>
+			<rightPen lineWidth="0.0"/>
+		</box>
+	</style>
+	<subDataset name="dataset1">
+		<field name="name" class="java.lang.String"/>
+		<field name="unitsInStock" class="java.lang.Integer"/>
+		<field name="inventoryLocation" class="java.lang.Object"/>
+		<field name="picture" class="java.lang.Object"/>
+		<field name="unitOfMeasure" class="java.lang.Object"/>
+		<field name="description" class="java.lang.String"/>
+		<field name="estimatedUnitPriceAmount" class="java.math.BigDecimal"/>
+		<field name="estimatedUnitPriceCurrency" class="java.lang.String"/>
+		<variable name="totalValue" class="java.math.BigDecimal" calculation="Sum">
+			<variableExpression><![CDATA[$F{estimatedUnitPriceAmount}]]></variableExpression>
+		</variable>
+	</subDataset>
+	<subDataset name="dataset2_inventoryTypes">
+		<field name="name" class="java.lang.String"/>
+	</subDataset>
+	<subDataset name="dataset3_inventoryGroups">
+		<field name="name" class="java.lang.String"/>
+	</subDataset>
+	<parameter name="reportTitle" class="java.lang.String"/>
+	<parameter name="currentUser" class="java.lang.String"/>
+	<parameter name="logoUrl" class="java.lang.String"/>
+	<queryString language="SQL">
+		<![CDATA[]]>
+	</queryString>
+	<field name="inventoryItemList" class="java.util.List"/>
+	<field name="summaryOfCalculationMethod" class="java.lang.String"/>
+	<field name="inventoryItemCount" class="java.lang.Integer"/>
+	<field name="errorMessage" class="java.lang.String"/>
+	<field name="inventoryItemTotalValue" class="java.math.BigDecimal"/>
+	<field name="currency" class="java.lang.String"/>
+	<field name="inventoryTypes" class="java.util.List"/>
+	<field name="site" class="java.lang.Object"/>
+	<field name="inventoryGroups" class="java.util.List"/>
+	<background>
+		<band splitType="Stretch"/>
+	</background>
+	<pageHeader>
+		<band height="54" splitType="Stretch">
+			<textField>
+				<reportElement key="staticText-1" mode="Transparent" x="400" y="6" width="350" height="20" backcolor="#FFFFFF"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font fontName="Serif" size="12"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
+			</textField>
+			<image>
+				<reportElement x="0" y="0" width="340" height="50"/>
+				<imageExpression class="java.net.URL"><![CDATA[new URL($P{logoUrl})]]></imageExpression>
+			</image>
+			<textField>
+				<reportElement x="400" y="26" width="350" height="18"/>
+				<textElement textAlignment="Center" verticalAlignment="Middle">
+					<font fontName="Serif"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Site: "+$F{site}.name]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageHeader>
+	<columnHeader>
+		<band splitType="Stretch"/>
+	</columnHeader>
+	<detail>
+		<band height="438" splitType="Stretch">
+			<componentElement>
+				<reportElement key="table 1" x="0" y="0" width="782" height="438"/>
+				<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{inventoryItemList})]]></dataSourceExpression>
+					</datasetRun>
+					<jr:column width="127">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="117" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Inventory Item"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<image hAlign="Center" vAlign="Middle">
+								<reportElement x="29" y="0" width="88" height="51"/>
+								<imageExpression class="java.awt.Image"><![CDATA[net.sf.jasperreports.engine.util.JRImageLoader.loadImage($F{picture}.images.first().data)]]></imageExpression>
+							</image>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="237">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="237" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Name/Description"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="237" height="25" isPrintWhenDetailOverflows="true"/>
+								<textElement verticalAlignment="Top">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
+							</textField>
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="25" width="237" height="25" isPrintWhenDetailOverflows="true"/>
+								<textElement>
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{description}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="90">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<staticText>
+								<reportElement x="0" y="0" width="90" height="20"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" isBold="true"/>
+								</textElement>
+								<text><![CDATA[Location]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<textField>
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="90" height="51" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{inventoryLocation}.name+ " in "+$F{inventoryLocation}.inventoryStore.name]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="104">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="104" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["In Stock"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+								<leftPen lineWidth="0.0"/>
+								<rightPen lineWidth="0.0"/>
+							</box>
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="104" height="51" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{unitsInStock}+" "+$F{unitOfMeasure}.name]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="90">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="90" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Unit Price"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<textField isStretchWithOverflow="true" pattern="# ##0.00">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="90" height="51" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{estimatedUnitPriceAmount}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="82">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="82" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Total"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
+								<leftPen lineWidth="0.0"/>
+								<rightPen lineWidth="0.0"/>
+							</box>
+							<textField pattern="# ##0.00">
+								<reportElement x="0" y="0" width="82" height="51"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{estimatedUnitPriceAmount}.multiply( $F{unitsInStock} )]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="52">
+						<jr:columnHeader style="table_CH" height="20" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="51" height="20" isPrintWhenDetailOverflows="true"/>
+								<textElement verticalAlignment="Middle">
+									<font fontName="Serif" size="10" isBold="true"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA["Currency"]]></textFieldExpression>
+							</textField>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="51" rowSpan="1">
+							<textField>
+								<reportElement x="0" y="0" width="51" height="51"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{estimatedUnitPriceCurrency}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+				</jr:table>
+			</componentElement>
+		</band>
+	</detail>
+	<columnFooter>
+		<band splitType="Stretch"/>
+	</columnFooter>
+	<pageFooter>
+		<band height="28" splitType="Stretch">
+			<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="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 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="662" 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="742" y="14" width="40" height="12"/>
+				<textElement>
+					<font fontName="Serif" size="8"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
+			</textField>
+		</band>
+	</pageFooter>
+	<lastPageFooter>
+		<band height="28">
+			<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="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 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 evaluationTime="Report">
+				<reportElement x="742" 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="662" 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="0" y="0" width="340" height="27"/>
+				<textElement textAlignment="Center" verticalAlignment="Top" markup="none">
+					<font fontName="Serif" size="20"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Summary"]]></textFieldExpression>
+			</textField>
+			<textField isStretchWithOverflow="true">
+				<reportElement x="0" y="131" width="340" height="38"/>
+				<textElement>
+					<font fontName="Serif"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$F{summaryOfCalculationMethod}]]></textFieldExpression>
+			</textField>
+			<textField isStretchWithOverflow="true" isBlankWhenNull="true">
+				<reportElement x="0" y="72" width="105" height="17" isPrintWhenDetailOverflows="true"/>
+				<textElement verticalAlignment="Middle" markup="none">
+					<font fontName="Serif"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Inventory Items: "]]></textFieldExpression>
+			</textField>
+			<textField isStretchWithOverflow="true" isBlankWhenNull="true">
+				<reportElement x="0" y="55" width="105" height="17" isPrintWhenDetailOverflows="true"/>
+				<textElement verticalAlignment="Middle" markup="none">
+					<font fontName="Serif" size="12" isBold="false"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Total Value("+$F{currency}+"): "]]></textFieldExpression>
+			</textField>
+			<textField isStretchWithOverflow="true" pattern="# ##0.00" isBlankWhenNull="true">
+				<reportElement x="105" y="55" width="235" height="17" isPrintWhenDetailOverflows="true"/>
+				<textElement verticalAlignment="Middle" markup="none">
+					<font fontName="Serif" size="12" isBold="false"/>
+				</textElement>
+				<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{inventoryItemTotalValue}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement mode="Opaque" x="0" y="98" width="340" height="29" forecolor="#FF0000" backcolor="#FFCCCC">
+					<printWhenExpression><![CDATA[$F{errorMessage} != null ? true:false]]></printWhenExpression>
+				</reportElement>
+				<textElement textAlignment="Center" verticalAlignment="Middle">
+					<font fontName="Serif" size="12" isBold="true"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$F{errorMessage}]]></textFieldExpression>
+			</textField>
+			<textField isStretchWithOverflow="true" pattern="# ##0" isBlankWhenNull="true">
+				<reportElement x="105" y="72" width="235" height="17" isPrintWhenDetailOverflows="true"/>
+				<textElement verticalAlignment="Middle" markup="none">
+					<font fontName="Serif"/>
+				</textElement>
+				<textFieldExpression class="java.lang.Integer"><![CDATA[$F{inventoryItemCount}]]></textFieldExpression>
+			</textField>
+			<textField>
+				<reportElement style="vertColumns" x="0" y="176" width="160" height="17"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="Serif" size="12" isBold="false"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Inventory Types"]]></textFieldExpression>
+			</textField>
+			<componentElement>
+				<reportElement stretchType="RelativeToTallestObject" x="175" y="193" width="160" height="17" isPrintWhenDetailOverflows="true"/>
+				<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
+					<datasetRun subDataset="dataset2_inventoryTypes">
+						<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{inventoryTypes})]]></dataSourceExpression>
+					</datasetRun>
+					<jr:listContents height="17" width="160">
+						<textField>
+							<reportElement style="vertColumns" x="0" y="0" width="160" height="17"/>
+							<textElement verticalAlignment="Middle">
+								<font fontName="Serif"/>
+							</textElement>
+							<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
+						</textField>
+					</jr:listContents>
+				</jr:list>
+			</componentElement>
+			<textField>
+				<reportElement style="vertColumns" x="175" y="176" width="160" height="17"/>
+				<textElement verticalAlignment="Middle">
+					<font fontName="Serif" size="12" isBold="false"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Inventory Groups"]]></textFieldExpression>
+			</textField>
+			<componentElement>
+				<reportElement stretchType="RelativeToTallestObject" x="0" y="193" width="160" height="17" isPrintWhenDetailOverflows="true"/>
+				<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
+					<datasetRun subDataset="dataset3_inventoryGroups">
+						<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{inventoryGroups})]]></dataSourceExpression>
+					</datasetRun>
+					<jr:listContents height="17" width="160">
+						<textField>
+							<reportElement style="vertColumns" x="0" y="0" width="160" height="17"/>
+							<textElement verticalAlignment="Middle">
+								<font fontName="Serif"/>
+							</textElement>
+							<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
+						</textField>
+					</jr:listContents>
+				</jr:list>
+			</componentElement>
+		</band>
+	</summary>
+	<noData>
+		<band height="85" splitType="Stretch">
+			<textField>
+				<reportElement x="0" y="35" width="782" height="50"/>
+				<textElement textAlignment="Center" markup="none">
+					<font fontName="Serif" 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 fontName="Serif" size="20"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
+			</textField>
+		</band>
+	</noData>
+</jasperReport>
