Index: trunk/grails-app/controllers/ReportController.groovy
===================================================================
--- trunk/grails-app/controllers/ReportController.groovy	(revision 678)
+++ trunk/grails-app/controllers/ReportController.groovy	(revision 679)
@@ -178,8 +178,4 @@
         params.logoUrl = grailsApplication.mainContext.getResource('images/logo.png').getURL()
         params.currentUser = authService.currentUser
-        if(params.section.id == 'all')
-            params.section = "All"
-        else
-            params.section = Section.get(params.section.id.toLong())
 
         def dataModel = assetReportService.getEquipmentRegister(params, RCU.getLocale(request))
Index: trunk/grails-app/services/AssetReportService.groovy
===================================================================
--- trunk/grails-app/services/AssetReportService.groovy	(revision 678)
+++ trunk/grails-app/services/AssetReportService.groovy	(revision 679)
@@ -125,4 +125,7 @@
         def result = [:]
 
+        result.section = Section.get(params.section.id.toLong())
+        result.site = result.section.site
+
         // Inner join used to return only attribTypes that are used by AssetSubItemExtendedAttributes.
         // So the result is only assetSubItem extendedAttributeTypes.
@@ -135,6 +138,5 @@
         result.attribTypes = Asset.executeQuery(attribTypesQ.query, attribTypesQ.namedParams)
 
-        // Since there will be nothing to show in the report table for assets without level 1 assetSubItems,
-        // a list needs to be given to the user.
+        // A useful list of assets without subItems to be given to the user.
         def assetsWithoutEquipmentQ = new HqlBuilder().query {
             select 'distinct asset'
@@ -142,4 +144,6 @@
                     'left join asset.assetSubItems as assetSubItem'
             where 'assetSubItem = null'
+                namedParams.section = result.section
+                and 'asset.section = :section'
         }
         result.assetsWithoutEquipment = AssetSubItem.executeQuery(assetsWithoutEquipmentQ.query, assetsWithoutEquipmentQ.namedParams)
@@ -158,11 +162,30 @@
                     'left join attrib.extendedAttributeType as attribT'
             where 'asset != null' // ensure that only level 1 assetSubItems are returned.
-            if(params.section instanceof Section) {
-                namedParams.section = params.section
+                namedParams.section = result.section
                 and 'asset.section = :section'
-            }
             order 'by asset.name asc, assetSubItem.name asc, attribT.name asc'
         }
         def equipmentResults = AssetSubItem.executeQuery(q.query, q.namedParams)
+
+        // A result is returned for every asset and for any extended attributes.
+        def assetResultsQ = new HqlBuilder().query {
+            select 'new map(asset.name as assetName',
+                        "'   Asset Details' as name", // Place holder 'equipment' name, 3 leading spaces for sorting.
+                        'asset.description as description',
+                        'asset.comment as comment',
+                        'attribT.name as attribType',
+                        'attrib.value as attribValue)'
+            from 'Asset asset',
+                    'left join asset.assetExtendedAttributes as attrib',
+                    'left join attrib.extendedAttributeType as attribT'
+            where 'asset.section = :section'
+                    namedParams.section = result.section
+            order 'by asset.name asc, attribT.name asc'
+        }
+        def assetResults = Asset.executeQuery(assetResultsQ.query, assetResultsQ.namedParams)
+
+        // Add asset details to equipmentResults.
+        equipmentResults.addAll(assetResults)
+        equipmentResults.sort { p1, p2 -> p1.assetName.compareToIgnoreCase(p2.assetName) ?: p1.name.compareToIgnoreCase(p2.name) }
 
         // Build the report table rows.
Index: trunk/grails-app/views/appCore/start.gsp
===================================================================
--- trunk/grails-app/views/appCore/start.gsp	(revision 678)
+++ trunk/grails-app/views/appCore/start.gsp	(revision 679)
@@ -168,6 +168,5 @@
                                                 <g:select optionKey="id"
                                                                     from="${Section.findAllByIsActive(true).sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }}"
-                                                                    name="section.id"
-                                                                    noSelection="['all':/${g.message(code:'default.all.select.text')}/]">
+                                                                    name="section.id">
                                                 </g:select>
                                             </g:jasperReport>
Index: trunk/web-app/reports/equipmentRegister.jrxml
===================================================================
--- trunk/web-app/reports/equipmentRegister.jrxml	(revision 678)
+++ trunk/web-app/reports/equipmentRegister.jrxml	(revision 679)
@@ -4,5 +4,5 @@
 	<property name="ireport.encoding" value="UTF-8"/>
 	<property name="ireport.zoom" value="1.5"/>
-	<property name="ireport.x" value="31"/>
+	<property name="ireport.x" value="0"/>
 	<property name="ireport.y" value="0"/>
 	<import value="net.sf.jasperreports.engine.*"/>
@@ -10,4 +10,5 @@
 	<import value="net.sf.jasperreports.engine.data.*"/>
 	<style name="table" isDefault="false">
+		<pen lineWidth="0.5"/>
 		<box>
 			<pen lineWidth="1.0" lineColor="#000000"/>
@@ -33,4 +34,5 @@
 		</box>
 	</style>
+	<style name="table_GH" isDefault="false" mode="Opaque" backcolor="#D2EFF7"/>
 	<subDataset name="dataset1">
 		<queryString language="SQL">
@@ -58,5 +60,4 @@
 	<parameter name="currentUser" class="java.lang.String"/>
 	<parameter name="logoUrl" class="java.lang.String"/>
-	<parameter name="section" 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>
@@ -68,4 +69,6 @@
 	<field name="attribTypes" class="java.lang.String"/>
 	<field name="assetsWithoutEquipment" class="java.lang.String"/>
+	<field name="site" class="java.lang.Object"/>
+	<field name="section" class="java.lang.Object"/>
 	<background>
 		<band splitType="Stretch"/>
@@ -85,9 +88,9 @@
 			</image>
 			<textField>
-				<reportElement x="398" y="34" width="340" height="12"/>
+				<reportElement x="398" y="34" width="340" height="12" isPrintWhenDetailOverflows="true"/>
 				<textElement textAlignment="Center">
-					<font fontName="Serif" size="8"/>
-				</textElement>
-				<textFieldExpression class="java.lang.String"><![CDATA["Section: "+$P{section}]]></textFieldExpression>
+					<font fontName="Serif" size="10"/>
+				</textElement>
+				<textFieldExpression class="java.lang.String"><![CDATA["Site: "+$F{site}.name+", "+"Section: "+$F{section}.name]]></textFieldExpression>
 			</textField>
 		</band>
@@ -105,27 +108,11 @@
 					</datasetRun>
 					<jr:column width="100">
-						<jr:groupHeader groupName="assetName">
-							<jr:cell height="20" rowSpan="1">
-								<textField isStretchWithOverflow="true">
-									<reportElement stretchType="RelativeToTallestObject" x="2" y="2" width="96" height="16" isPrintWhenDetailOverflows="true"/>
-									<textElement verticalAlignment="Middle">
-										<font fontName="Serif" size="10"/>
-									</textElement>
-									<textFieldExpression class="java.lang.String"><![CDATA[$F{assetName}]]></textFieldExpression>
-								</textField>
-							</jr:cell>
-						</jr:groupHeader>
-						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
-							<staticText>
-								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="96" height="16" isPrintWhenDetailOverflows="true"/>
-								<textElement verticalAlignment="Middle">
-									<font fontName="Serif"/>
+						<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>
-							<staticText>
-								<reportElement x="2" y="16" width="96" height="16"/>
-								<textElement textAlignment="Center"/>
-								<text><![CDATA[Equipment]]></text>
 							</staticText>
 						</jr:columnHeader>
@@ -139,12 +126,47 @@
 						<jr:detailCell style="table_TD" height="36" rowSpan="1">
 							<textField isStretchWithOverflow="true">
-								<reportElement positionType="Float" stretchType="RelativeToTallestObject" mode="Opaque" x="2" y="0" width="96" height="20" isPrintWhenDetailOverflows="true" backcolor="#D2EFF7"/>
-								<textElement textAlignment="Center" verticalAlignment="Middle">
-									<font fontName="Serif" size="10" isBold="true"/>
+								<reportElement positionType="Float" mode="Opaque" x="2" y="0" width="96" height="18" isPrintWhenDetailOverflows="true" backcolor="#D2EFF7">
+									<printWhenExpression><![CDATA[$F{name}.equals('   Asset Details')]]></printWhenExpression>
+								</reportElement>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" isBold="false"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{assetName}]]></textFieldExpression>
+							</textField>
+							<textField isStretchWithOverflow="true">
+								<reportElement positionType="Float" x="2" y="18" width="96" height="18" isPrintWhenDetailOverflows="true">
+									<printWhenExpression><![CDATA[$F{name}.equals('   Asset Details')]]></printWhenExpression>
+								</reportElement>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif"/>
+								</textElement>
+								<textFieldExpression class="java.lang.String"><![CDATA[$F{description}]]></textFieldExpression>
+							</textField>
+						</jr:detailCell>
+					</jr:column>
+					<jr:column width="100">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="96" height="32" isPrintWhenDetailOverflows="true"/>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif" size="8"/>
+								</textElement>
+								<text><![CDATA[Sub Asset]]></text>
+							</staticText>
+						</jr:columnHeader>
+						<jr:detailCell style="table_TD" height="36" rowSpan="1">
+							<textField isStretchWithOverflow="true">
+								<reportElement positionType="Float" mode="Opaque" x="2" y="0" width="96" height="18" isPrintWhenDetailOverflows="true" backcolor="#D2EFF7">
+									<printWhenExpression><![CDATA[!$F{name}.equals('   Asset Details')]]></printWhenExpression>
+								</reportElement>
+								<textElement textAlignment="Center" verticalAlignment="Middle">
+									<font fontName="Serif"/>
 								</textElement>
 								<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
 							</textField>
 							<textField isStretchWithOverflow="true">
-								<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="2" y="20" width="96" height="15" isPrintWhenDetailOverflows="true"/>
+								<reportElement positionType="Float" x="2" y="18" width="96" height="18" isPrintWhenDetailOverflows="true">
+									<printWhenExpression><![CDATA[!$F{name}.equals('   Asset Details')]]></printWhenExpression>
+								</reportElement>
 								<textElement textAlignment="Center" verticalAlignment="Middle">
 									<font fontName="Serif" size="8"/>
@@ -154,28 +176,8 @@
 						</jr:detailCell>
 					</jr:column>
-					<jr:column width="90">
-						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
-							<staticText>
-								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="86" height="32" isPrintWhenDetailOverflows="true"/>
-								<textElement textAlignment="Center" verticalAlignment="Middle">
-									<font fontName="Serif" size="8"/>
-								</textElement>
-								<text><![CDATA[Comment]]></text>
-							</staticText>
-						</jr:columnHeader>
-						<jr:detailCell style="table_TD" height="36" rowSpan="1">
-							<textField isStretchWithOverflow="true">
-								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="86" height="35" isPrintWhenDetailOverflows="true"/>
-								<textElement textAlignment="Center" verticalAlignment="Middle">
-									<font fontName="Serif" size="8"/>
-								</textElement>
-								<textFieldExpression class="java.lang.String"><![CDATA[$F{comment}]]></textFieldExpression>
-							</textField>
-						</jr:detailCell>
-					</jr:column>
-					<jr:column width="75">
-						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
-							<staticText>
-								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="71" height="32" isPrintWhenDetailOverflows="true"/>
+					<jr:column width="55">
+						<jr:columnHeader style="table_CH" height="32" rowSpan="1">
+							<staticText>
+								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="51" height="32" isPrintWhenDetailOverflows="true"/>
 								<textElement textAlignment="Center" verticalAlignment="Middle">
 									<font fontName="Serif" size="8"/>
@@ -186,5 +188,5 @@
 						<jr:detailCell style="table_TD" height="36" rowSpan="1">
 							<textField isStretchWithOverflow="true">
-								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="71" height="35" isPrintWhenDetailOverflows="true"/>
+								<reportElement stretchType="RelativeToTallestObject" x="2" y="0" width="51" height="35" isPrintWhenDetailOverflows="true"/>
 								<textElement textAlignment="Center" verticalAlignment="Middle">
 									<font fontName="Serif" size="8"/>
@@ -497,5 +499,5 @@
 			</textField>
 			<textField>
-				<reportElement x="13" y="66" width="824" height="19" forecolor="#FF0033">
+				<reportElement x="13" y="66" width="824" height="19" forecolor="#000000">
 					<printWhenExpression><![CDATA[$F{assetsWithoutEquipment}]]></printWhenExpression>
 				</reportElement>
@@ -503,5 +505,5 @@
 					<font fontName="Serif"/>
 				</textElement>
-				<textFieldExpression class="java.lang.String"><![CDATA["The following assets have no sub items (equipment) and therefore are not listed in the equipment table: \n"+$F{assetsWithoutEquipment}]]></textFieldExpression>
+				<textFieldExpression class="java.lang.String"><![CDATA["The following assets have no sub assets (equipment):"]]></textFieldExpression>
 			</textField>
 		</band>
