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>
