Changeset 535
- Timestamp:
- May 16, 2010, 5:47:34 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/ReportController.groovy
r533 r535 44 44 45 45 def reactiveRatio = { 46 params.max = Math.min( params.max ? params.max.toInteger() : 10, 100)47 46 48 47 params.reportTitle = "Reactive Ratio Report" 48 params.logoUrl = resource(dir:'images',file:'logo.png', absolute:true) 49 49 params.currentUser = authService.currentUser 50 params.startDate = dateUtilService.yesterday-14 51 params.endDate = dateUtilService.tomorrow+15 50 51 if(params.startDate == 'struct') 52 params.startDate = dateUtilService.makeDate(params.startDate_year, params.startDate_month, params.startDate_day) 53 else 54 params.startDate = dateUtilService.today-7 55 params.startDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: params.startDate) 56 57 if(params.endDate == 'struct') 58 params.endDate = dateUtilService.makeDate(params.endDate_year, params.endDate_month, params.endDate_day) 59 else 60 params.endDate = dateUtilService.today 61 params.endDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: params.endDate) 62 52 63 def dataModel = [taskReportService.getReactiveRatio(params, RCU.getLocale(request))] 53 64 -
trunk/grails-app/services/TaskReportService.groovy
r533 r535 24 24 def result = [:] 25 25 26 def currentUser = authService.currentUser27 def startOfToday = dateUtilService.today28 def startOfYesterday = dateUtilService.yesterday29 def startOfTomorrow = dateUtilService.tomorrow30 def oneWeekAgo = dateUtilService.oneWeekAgo31 32 def paginateParams = [:]33 paginateParams.max = Math.min(params?.max?.toInteger() ?: 10, paramsMax)34 paginateParams.offset = params?.offset?.toInteger() ?: 035 36 def sort = "task." + (params?.sort ?: "targetStartDate")37 def order = params?.order == "desc" ? "desc" : "asc"38 def orderBy = " order by " + sort + ' ' + order39 40 26 def namedParams = [:] 41 27 namedParams.startDate = params.startDate ?: dateUtilService.today 42 namedParams.endDate = params.endDate ?: dateUtilService.tomorrow 28 namedParams.endDate = params.endDate ?: dateUtilService.today 29 namedParams.endDate++ // Start of next day required. 43 30 namedParams.immediateCallout = TaskType.read(1) 44 31 namedParams.unscheduledBreakin = TaskType.read(2) 45 32 namedParams.preventativeMaintenance = TaskType.read(4) 33 namedParams.notStarted = TaskStatus.read(1) 46 34 47 35 result.taskQuery = "from Task as task \ 48 36 where (task.trash = false \ 37 and task.taskStatus != :notStarted \ 49 38 and task.targetStartDate < :endDate \ 50 39 and task.targetStartDate >= :startDate \ … … 56 45 )" 57 46 58 result.taskQuery = "select distinct task " + result.taskQuery + orderBy59 result.taskList = Task.executeQuery(result.taskQuery, namedParams , paginateParams)47 result.taskQuery = "select distinct task " + result.taskQuery 48 result.taskList = Task.executeQuery(result.taskQuery, namedParams) 60 49 result.taskCount = result.taskList.size() 61 50 62 51 // Counts 63 result.total TaskOnAssetCount = 052 result.totalAssetsOnTasksCount = 0 64 53 result.immediateCalloutCount = 0 65 54 result.unscheduledBreakinCount = 0 66 55 result.preventativeMaintenanceCount = 0 67 56 68 // Count the tasks performed against assets. 57 result.summaryOfCalculationMethod = 'HQL query: \n\n' 58 def tempStringArray = result.taskQuery.split(' ') 59 tempStringArray.each() { 60 if(it != '') result.summaryOfCalculationMethod += it +'\n' 61 } 62 result.summaryOfCalculationMethod += '\n'+'Calculations: '+'\n\n' 63 64 result.summaryOfCalculationMethod += 'totalAssetsOnTasksCount = A count of unique assets on each task. \n' 69 65 result.taskList.each() { task -> 70 66 if(task.primaryAsset) { 71 result.total TaskOnAssetCount++67 result.totalAssetsOnTasksCount++ 72 68 if(task.taskType == namedParams.immediateCallout) result.immediateCalloutCount++ 73 69 if(task.taskType == namedParams.unscheduledBreakin) result.unscheduledBreakinCount++ … … 76 72 task.associatedAssets.each() { associatedAsset -> 77 73 if(associatedAsset.id != task.primaryAsset?.id) { 78 result.total TaskOnAssetCount++74 result.totalAssetsOnTasksCount++ 79 75 if(task.taskType == namedParams.immediateCallout) result.immediateCalloutCount++ 80 76 if(task.taskType == namedParams.unscheduledBreakin) result.unscheduledBreakinCount++ … … 88 84 result.totalPreventativePercentage = 0 89 85 86 result.summaryOfCalculationMethod += 'totalPreventativeCount = unscheduledBreakinCount + preventativeMaintenanceCount\n' 90 87 result.totalPreventativeCount = result.unscheduledBreakinCount + result.preventativeMaintenanceCount 91 88 try { 92 result. immediateCalloutPercentage = (result.immediateCalloutCount / result.totalTaskOnAssetCount)*10093 result. immediateCalloutPercentage = result.immediateCalloutPercentage.toInteger()94 result. totalPreventativePercentage = (result.totalPreventativeCount / result.totalTaskOnAssetCount)*10095 result.totalPreventativePercentage = result.totalPreventativePercentage.toInteger()89 result.summaryOfCalculationMethod += 'immediateCalloutPercentage = (immediateCalloutCount / totalAssetsOnTasksCount)*100 \n' 90 result.summaryOfCalculationMethod += 'totalPreventativePercentage = (totalPreventativeCount / totalAssetsOnTasksCount)*100 \n' 91 result.immediateCalloutPercentage = (result.immediateCalloutCount / result.totalAssetsOnTasksCount)*100 92 result.totalPreventativePercentage = (result.totalPreventativeCount / result.totalAssetsOnTasksCount)*100 96 93 } 97 94 catch(ArithmeticException e) { 95 log.error "Could not calculate percentages: "+e 98 96 } 99 97 -
trunk/grails-app/views/appCore/start.gsp
r533 r535 6 6 <nav:resources override="true"/> 7 7 <resource:tabView skin="tabviewCustom" /> 8 <resource:dateChooser /> 8 9 </head> 9 10 <body> … … 98 99 <tr class="prop"> 99 100 <td valign="top" class="name"> 100 <label>Frequent Reports:</label>101 <label>Frequently Used:</label> 101 102 </td> 102 103 <td valign="top" class="value"> … … 105 106 jasper="reactiveRatio" 106 107 name="Reactive Ratio" 107 format="PDF, HTML, XLS"/> 108 format="PDF, XLS"> 109 <richui:dateChooser name="startDate" format="dd-MM-yyyy" value="${new Date()-7}" /> 110 to 111 <richui:dateChooser name="endDate" format="dd-MM-yyyy" value="${new Date()}" /> 112 </g:jasperReport> 108 113 <br /> 109 114 <g:jasperReport controller="report" … … 111 116 jasper="templatePortrait" 112 117 name="Template (Portrait)" 113 format="PDF, HTML,XLS"/>118 format="PDF, XLS"/> 114 119 <br /> 115 120 <g:jasperReport controller="report" … … 117 122 jasper="templateLandscape" 118 123 name="Template (Landscape)" 119 format="PDF, HTML,XLS"/>124 format="PDF, XLS"/> 120 125 <br /> 121 126 </td> -
trunk/web-app/reports/reactiveRatio.jrxml
r533 r535 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <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=" name" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="782" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20">2 <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"> 3 3 <property name="ireport.scriptlethandling" value="0"/> 4 4 <property name="ireport.encoding" value="UTF-8"/> 5 5 <property name="ireport.zoom" value="1.0"/> 6 6 <property name="ireport.x" value="0"/> 7 <property name="ireport.y" value=" 0"/>7 <property name="ireport.y" value="405"/> 8 8 <import value="java.util.*"/> 9 9 <import value="net.sf.jasperreports.engine.*"/> … … 29 29 </box> 30 30 </style> 31 <style name="table 1" isDefault="false"> 32 <box> 33 <pen lineWidth="1.0" lineColor="#000000"/> 34 </box> 35 </style> 36 <style name="table 1_TH" isDefault="false" mode="Opaque" backcolor="#F0F8FF"> 37 <box> 38 <pen lineWidth="0.5" lineColor="#000000"/> 39 </box> 40 </style> 41 <style name="table 1_CH" isDefault="false" mode="Opaque" backcolor="#BFE1FF"> 42 <box> 43 <pen lineWidth="0.5" lineColor="#000000"/> 44 </box> 45 </style> 46 <style name="table 1_TD" isDefault="false" mode="Opaque" backcolor="#FFFFFF"> 47 <box> 48 <pen lineWidth="0.5" lineColor="#000000"/> 49 </box> 50 </style> 51 <style name="Crosstab Data Text" isDefault="false" hAlign="Center"/> 31 52 <subDataset name="dataset1"/> 32 53 <subDataset name="Table Dataset 1"/> 54 <subDataset name="Table Dataset 2"/> 55 <subDataset name="dataset2"/> 33 56 <parameter name="reportTitle" class="java.lang.String"/> 34 57 <parameter name="currentUser" class="java.lang.String"/> 35 <field name="immediateCalloutPercentage" class="java.lang.Integer"/> 36 <field name="totalPreventativePercentage" class="java.lang.Integer"/> 58 <parameter name="logoUrl" class="java.lang.String"/> 59 <parameter name="startDateString" class="java.lang.String"/> 60 <parameter name="endDateString" class="java.lang.String"/> 61 <field name="immediateCalloutPercentage" class="java.math.BigDecimal"/> 62 <field name="totalPreventativePercentage" class="java.math.BigDecimal"/> 63 <field name="immediateCalloutCount" class="java.lang.Integer"/> 64 <field name="totalAssetsOnTasksCount" class="java.lang.Integer"/> 65 <field name="totalPreventativeCount" class="java.lang.Integer"/> 66 <field name="unscheduledBreakinCount" class="java.lang.Integer"/> 67 <field name="preventativeMaintenanceCount" class="java.lang.Integer"/> 68 <field name="taskQuery" class="java.lang.String"/> 69 <field name="summaryOfCalculationMethod" class="java.lang.String"/> 37 70 <background> 38 71 <band splitType="Stretch"/> 39 72 </background> 40 73 <pageHeader> 41 <band height=" 60" splitType="Stretch">42 <textField> 43 <reportElement key="staticText-1" x="0" y=" 0" width="782" height="35"/>44 <textElement textAlignment="Center" markup="none">74 <band height="121" splitType="Stretch"> 75 <textField> 76 <reportElement key="staticText-1" x="0" y="57" width="340" height="30"/> 77 <textElement textAlignment="Center" verticalAlignment="Top" markup="none"> 45 78 <font size="20"/> 46 79 </textElement> 47 80 <textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression> 48 81 </textField> 82 <image> 83 <reportElement x="0" y="0" width="340" height="57"/> 84 <imageExpression class="java.net.URL"><![CDATA[new URL($P{logoUrl})]]></imageExpression> 85 </image> 86 <textField pattern="dd-MMM-yyyy" isBlankWhenNull="true"> 87 <reportElement x="0" y="87" width="340" height="20"/> 88 <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"/> 89 <textFieldExpression class="java.lang.String"><![CDATA[$P{startDateString}+" to "+$P{endDateString}]]></textFieldExpression> 90 </textField> 49 91 </band> 50 92 </pageHeader> 51 93 <columnHeader> 52 <band height="17"splitType="Stretch"/>94 <band splitType="Stretch"/> 53 95 </columnHeader> 54 96 <detail> 55 <band height="129" splitType="Stretch"> 56 <textField> 97 <band height="394" splitType="Stretch"> 98 <textField isBlankWhenNull="true"> 99 <reportElement x="0" y="40" width="157" height="20"/> 100 <textElement verticalAlignment="Middle" markup="none"/> 101 <textFieldExpression class="java.lang.String"><![CDATA["Immediate Callout: "]]></textFieldExpression> 102 </textField> 103 <textField isBlankWhenNull="true"> 104 <reportElement x="0" y="60" width="157" height="20"/> 105 <textElement verticalAlignment="Middle" markup="none"/> 106 <textFieldExpression class="java.lang.String"><![CDATA["Total Preventative: "]]></textFieldExpression> 107 </textField> 108 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 109 <reportElement x="157" y="40" width="79" height="20"/> 110 <textElement textAlignment="Center" verticalAlignment="Middle"/> 111 <textFieldExpression class="java.lang.String"><![CDATA[$F{immediateCalloutPercentage}.setScale(2, RoundingMode.HALF_UP)]]></textFieldExpression> 112 </textField> 113 <textField isBlankWhenNull="true"> 114 <reportElement x="157" y="60" width="79" height="20"/> 115 <textElement textAlignment="Center" verticalAlignment="Middle"/> 116 <textFieldExpression class="java.lang.String"><![CDATA[$F{totalPreventativePercentage}.setScale(2, RoundingMode.HALF_UP)]]></textFieldExpression> 117 </textField> 118 <textField pattern="###0.00" isBlankWhenNull="true"> 119 <reportElement x="236" y="40" width="117" height="20"/> 120 <textElement textAlignment="Center" verticalAlignment="Middle"/> 121 <textFieldExpression class="java.lang.String"><![CDATA[$F{immediateCalloutCount}]]></textFieldExpression> 122 </textField> 123 <textField isBlankWhenNull="true"> 124 <reportElement x="236" y="60" width="117" height="20"/> 125 <textElement textAlignment="Center" verticalAlignment="Middle"/> 126 <textFieldExpression class="java.lang.String"><![CDATA[$F{totalPreventativeCount}]]></textFieldExpression> 127 </textField> 128 <textField pattern="###0.00" isBlankWhenNull="true"> 129 <reportElement x="0" y="80" width="157" height="20"/> 130 <textElement verticalAlignment="Middle"/> 131 <textFieldExpression class="java.lang.String"><![CDATA["Total: "]]></textFieldExpression> 132 </textField> 133 <textField isBlankWhenNull="true"> 134 <reportElement x="157" y="80" width="79" height="20"/> 135 <textElement textAlignment="Center" verticalAlignment="Middle"/> 136 </textField> 137 <textField isBlankWhenNull="true"> 138 <reportElement x="236" y="80" width="117" height="20"/> 139 <textElement textAlignment="Center" verticalAlignment="Middle"/> 140 <textFieldExpression class="java.lang.String"><![CDATA[$F{totalAssetsOnTasksCount}]]></textFieldExpression> 141 </textField> 142 <line> 143 <reportElement x="0" y="100" width="353" height="1" forecolor="#999999"/> 144 </line> 145 <line> 146 <reportElement x="0" y="79" width="353" height="1" forecolor="#999999"/> 147 </line> 148 <line> 149 <reportElement x="0" y="60" width="353" height="1" forecolor="#999999"/> 150 </line> 151 <line> 152 <reportElement x="0" y="39" width="353" height="1" forecolor="#999999"/> 153 </line> 154 <textField isBlankWhenNull="true"> 155 <reportElement x="0" y="20" width="157" height="20"/> 156 <textElement verticalAlignment="Middle" markup="none"/> 157 </textField> 158 <textField pattern="###0.00" isBlankWhenNull="true"> 159 <reportElement x="236" y="20" width="117" height="20"/> 160 <textElement verticalAlignment="Middle"/> 161 </textField> 162 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 163 <reportElement x="157" y="20" width="79" height="20"/> 164 <textElement verticalAlignment="Middle"/> 165 </textField> 166 <line> 167 <reportElement x="0" y="20" width="353" height="1" forecolor="#999999"/> 168 </line> 169 <pie3DChart> 170 <chart theme="default"> 171 <reportElement x="426" y="0" width="356" height="197"/> 172 <chartTitle/> 173 <chartSubtitle/> 174 <chartLegend/> 175 </chart> 176 <pieDataset> 177 <pieSeries> 178 <keyExpression><![CDATA["Immediate"]]></keyExpression> 179 <valueExpression><![CDATA[$F{immediateCalloutPercentage}]]></valueExpression> 180 <labelExpression><![CDATA[$F{immediateCalloutPercentage}.setScale(0, RoundingMode.HALF_UP)]]></labelExpression> 181 </pieSeries> 182 <pieSeries> 183 <keyExpression><![CDATA["Preventative"]]></keyExpression> 184 <valueExpression><![CDATA[$F{totalPreventativePercentage}]]></valueExpression> 185 <labelExpression><![CDATA[$F{totalPreventativePercentage}.setScale(0, RoundingMode.HALF_UP)]]></labelExpression> 186 </pieSeries> 187 </pieDataset> 188 <pie3DPlot depthFactor="0.1" isCircular="false"> 189 <plot> 190 <seriesColor seriesOrder="0" color="#FF0000"/> 191 <seriesColor seriesOrder="1" color="#00CC00"/> 192 <seriesColor seriesOrder="2" color="#FFFF66"/> 193 </plot> 194 <itemLabel color="#000000" backgroundColor="#FFFFFF"/> 195 </pie3DPlot> 196 </pie3DChart> 197 <textField isBlankWhenNull="true"> 198 <reportElement x="236" y="257" width="117" height="20"/> 199 <textElement textAlignment="Center" verticalAlignment="Middle"/> 200 <textFieldExpression class="java.lang.String"><![CDATA[$F{preventativeMaintenanceCount}]]></textFieldExpression> 201 </textField> 202 <textField isBlankWhenNull="true"> 203 <reportElement x="236" y="277" width="117" height="20"/> 204 <textElement textAlignment="Center" verticalAlignment="Middle"/> 205 <textFieldExpression><![CDATA[$F{totalPreventativeCount}]]></textFieldExpression> 206 </textField> 207 <textField isBlankWhenNull="true"> 208 <reportElement x="157" y="277" width="79" height="20"/> 209 <textElement textAlignment="Center" verticalAlignment="Middle"/> 210 </textField> 211 <line> 212 <reportElement x="0" y="297" width="353" height="1" forecolor="#999999"/> 213 </line> 214 <textField isBlankWhenNull="true"> 215 <reportElement x="0" y="257" width="157" height="20"/> 216 <textElement verticalAlignment="Middle" markup="none"/> 217 <textFieldExpression><![CDATA["Preventative Maintenance"]]></textFieldExpression> 218 </textField> 219 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 220 <reportElement x="157" y="237" width="79" height="20"/> 221 <textElement textAlignment="Center" verticalAlignment="Middle"/> 222 </textField> 223 <textField pattern="###0.00" isBlankWhenNull="true"> 224 <reportElement x="236" y="217" width="117" height="20"/> 225 <textElement verticalAlignment="Middle"/> 226 </textField> 227 <line> 228 <reportElement x="0" y="257" width="353" height="1" forecolor="#999999"/> 229 </line> 230 <textField pattern="###0.00" isBlankWhenNull="true"> 231 <reportElement x="236" y="197" width="117" height="20"/> 232 <textElement verticalAlignment="Middle"/> 233 <textFieldExpression><![CDATA["Count (Assets on Tasks)"]]></textFieldExpression> 234 </textField> 235 <textField isBlankWhenNull="true"> 236 <reportElement x="0" y="237" width="157" height="20"/> 237 <textElement verticalAlignment="Middle" markup="none"/> 238 <textFieldExpression class="java.lang.String"><![CDATA["Unscheduled Breaking: "]]></textFieldExpression> 239 </textField> 240 <line> 241 <reportElement x="0" y="276" width="353" height="1" forecolor="#999999"/> 242 </line> 243 <pie3DChart> 244 <chart> 245 <reportElement x="426" y="197" width="356" height="197"/> 246 <chartTitle/> 247 <chartSubtitle/> 248 <chartLegend/> 249 </chart> 250 <pieDataset> 251 <pieSeries> 252 <keyExpression><![CDATA["Immediate"]]></keyExpression> 253 <valueExpression><![CDATA[$F{immediateCalloutCount}]]></valueExpression> 254 <labelExpression><![CDATA[$F{immediateCalloutCount}]]></labelExpression> 255 </pieSeries> 256 <pieSeries> 257 <keyExpression><![CDATA["Preventative Maintenance"]]></keyExpression> 258 <valueExpression><![CDATA[$F{preventativeMaintenanceCount}]]></valueExpression> 259 <labelExpression><![CDATA[$F{preventativeMaintenanceCount}]]></labelExpression> 260 </pieSeries> 261 <pieSeries> 262 <keyExpression><![CDATA["Unscheduled Breakin"]]></keyExpression> 263 <valueExpression><![CDATA[$F{unscheduledBreakinCount}]]></valueExpression> 264 <labelExpression><![CDATA[$F{unscheduledBreakinCount}]]></labelExpression> 265 </pieSeries> 266 </pieDataset> 267 <pie3DPlot depthFactor="0.1" isCircular="false"> 268 <plot> 269 <seriesColor seriesOrder="0" color="#FF0000"/> 270 <seriesColor seriesOrder="1" color="#00CC00"/> 271 <seriesColor seriesOrder="2" color="#FFFF66"/> 272 </plot> 273 <itemLabel color="#000000" backgroundColor="#FFFFFF"/> 274 </pie3DPlot> 275 </pie3DChart> 276 <textField isBlankWhenNull="true"> 277 <reportElement x="0" y="217" width="157" height="20"/> 278 <textElement verticalAlignment="Middle" markup="none"/> 279 </textField> 280 <textField pattern="###0.00" isBlankWhenNull="true"> 281 <reportElement x="236" y="237" width="117" height="20"/> 282 <textElement textAlignment="Center" verticalAlignment="Middle"/> 283 <textFieldExpression class="java.lang.String"><![CDATA[$F{unscheduledBreakinCount}]]></textFieldExpression> 284 </textField> 285 <line> 286 <reportElement x="0" y="217" width="353" height="1" forecolor="#999999"/> 287 </line> 288 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 289 <reportElement x="157" y="217" width="79" height="20"/> 290 <textElement verticalAlignment="Middle"/> 291 </textField> 292 <line> 293 <reportElement x="0" y="236" width="353" height="1" forecolor="#999999"/> 294 </line> 295 <textField isBlankWhenNull="true"> 296 <reportElement x="157" y="257" width="79" height="20"/> 297 <textElement textAlignment="Center" verticalAlignment="Middle"/> 298 </textField> 299 <textField isBlankWhenNull="true"> 300 <reportElement x="0" y="197" width="157" height="20"/> 301 <textElement verticalAlignment="Middle" markup="none"/> 302 <textFieldExpression><![CDATA["Description"]]></textFieldExpression> 303 </textField> 304 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 305 <reportElement x="157" y="197" width="79" height="20"/> 306 <textElement verticalAlignment="Middle"/> 307 </textField> 308 <textField pattern="###0.00" isBlankWhenNull="true"> 309 <reportElement x="0" y="277" width="157" height="20"/> 310 <textElement verticalAlignment="Middle"/> 311 <textFieldExpression class="java.lang.String"><![CDATA["Total Preventative: "]]></textFieldExpression> 312 </textField> 313 <textField pattern="#,##0.00 %" isBlankWhenNull="true"> 314 <reportElement x="157" y="0" width="79" height="20"/> 315 <textElement verticalAlignment="Middle"/> 316 <textFieldExpression><![CDATA["Percentage (%)"]]></textFieldExpression> 317 </textField> 318 <textField isBlankWhenNull="true"> 57 319 <reportElement x="0" y="0" width="157" height="20"/> 58 <textElement markup="none"/> 59 <textFieldExpression class="java.lang.String"><![CDATA["Immediate Callout (%): "]]></textFieldExpression> 60 </textField> 61 <textField> 62 <reportElement x="0" y="20" width="157" height="20"/> 63 <textElement markup="none"/> 64 <textFieldExpression class="java.lang.String"><![CDATA["Total Preventative (%): "]]></textFieldExpression> 65 </textField> 66 <textField pattern="###0.00"> 67 <reportElement x="157" y="0" width="200" height="20"/> 68 <textElement/> 69 <textFieldExpression class="java.lang.String"><![CDATA[$F{immediateCalloutPercentage}]]></textFieldExpression> 70 </textField> 71 <textField> 72 <reportElement x="157" y="20" width="200" height="20"/> 73 <textElement/> 74 <textFieldExpression class="java.lang.String"><![CDATA[$F{totalPreventativePercentage}]]></textFieldExpression> 320 <textElement verticalAlignment="Middle" markup="none"/> 321 <textFieldExpression><![CDATA["Description"]]></textFieldExpression> 322 </textField> 323 <textField pattern="###0.00" isBlankWhenNull="true"> 324 <reportElement x="236" y="0" width="117" height="20"/> 325 <textElement verticalAlignment="Middle"/> 326 <textFieldExpression><![CDATA["Count (Assets on Tasks)"]]></textFieldExpression> 75 327 </textField> 76 328 </band> 77 329 </detail> 78 330 <columnFooter> 79 <band height="142"splitType="Stretch"/>331 <band splitType="Stretch"/> 80 332 </columnFooter> 81 333 <pageFooter> … … 113 365 </band> 114 366 </pageFooter> 367 <summary> 368 <band height="555"> 369 <textField> 370 <reportElement key="staticText-1" x="221" y="0" width="340" height="30"/> 371 <textElement textAlignment="Center" verticalAlignment="Top" markup="none"> 372 <font size="20"/> 373 </textElement> 374 <textFieldExpression class="java.lang.String"><![CDATA["Summary of Calculation Method"]]></textFieldExpression> 375 </textField> 376 <textField> 377 <reportElement x="0" y="30" width="782" height="311"/> 378 <textElement/> 379 <textFieldExpression class="java.lang.String"><![CDATA[$F{summaryOfCalculationMethod}]]></textFieldExpression> 380 </textField> 381 </band> 382 </summary> 115 383 <noData> 116 384 <band height="85" splitType="Stretch">
Note: See TracChangeset
for help on using the changeset viewer.