source: trunk/web-app/reports/stockTakeByLocation.jrxml @ 550

Last change on this file since 550 was 550, checked in by gav, 14 years ago

Improvements to stockTakeByLocation report, includes heap memory protection improvements.
Tested against MySQL with 767 InventoryLocations, 3770 InventoryItems and 270MiB of images in database.

File size: 17.6 KB
Line 
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="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">
3        <property name="ireport.scriptlethandling" value="0"/>
4        <property name="ireport.encoding" value="UTF-8"/>
5        <property name="ireport.zoom" value="1.0"/>
6        <property name="ireport.x" value="0"/>
7        <property name="ireport.y" value="144"/>
8        <import value="java.util.*"/>
9        <import value="net.sf.jasperreports.engine.*"/>
10        <import value="net.sf.jasperreports.engine.data.*"/>
11        <style name="Crosstab Data Text" isDefault="false" hAlign="Center"/>
12        <style name="table" isDefault="false" fill="Solid" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
13                <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
14                        <pen lineWidth="0.0" lineColor="#000000"/>
15                        <topPen lineWidth="0.0"/>
16                        <leftPen lineWidth="0.0"/>
17                        <bottomPen lineWidth="0.0"/>
18                        <rightPen lineWidth="0.0"/>
19                </box>
20        </style>
21        <style name="table_TH" isDefault="false" mode="Opaque" backcolor="#C7C7C7" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
22                <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
23                        <pen lineWidth="1.0" lineColor="#000000"/>
24                        <topPen lineWidth="1.0"/>
25                        <leftPen lineWidth="0.0"/>
26                        <bottomPen lineWidth="1.0"/>
27                        <rightPen lineWidth="0.0"/>
28                </box>
29        </style>
30        <style name="table_CH" isDefault="false" mode="Opaque" backcolor="#FFFFFF" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
31                <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
32                        <pen lineWidth="1.0" lineColor="#000000"/>
33                        <topPen lineWidth="0.0"/>
34                        <leftPen lineWidth="0.0"/>
35                        <bottomPen lineWidth="1.0"/>
36                        <rightPen lineWidth="0.0"/>
37                </box>
38        </style>
39        <style name="table_TD" isDefault="false" mode="Opaque" backcolor="#FFFFFF" fontSize="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false">
40                <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
41                        <pen lineWidth="1.0" lineColor="#000000"/>
42                        <topPen lineWidth="1.0"/>
43                        <leftPen lineWidth="0.0"/>
44                        <bottomPen lineWidth="1.0"/>
45                        <rightPen lineWidth="0.0"/>
46                </box>
47                <conditionalStyle>
48                        <conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>
49                        <style isDefault="false" style="table_TD" backcolor="#F7F7F7"/>
50                </conditionalStyle>
51        </style>
52        <style name="table_CF" isDefault="false" mode="Opaque" backcolor="#EDEDED" fontSize="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false">
53                <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
54                        <pen lineWidth="1.0"/>
55                        <topPen lineWidth="1.0"/>
56                        <leftPen lineWidth="0.0"/>
57                        <bottomPen lineWidth="1.0"/>
58                        <rightPen lineWidth="0.0"/>
59                </box>
60        </style>
61        <subDataset name="dataset1">
62                <field name="name" class="java.lang.String"/>
63                <field name="unitsInStock" class="java.lang.Integer"/>
64                <field name="inventoryLocation" class="java.lang.Object"/>
65                <field name="picture" class="java.lang.Object"/>
66                <field name="unitOfMeasure" class="java.lang.Object"/>
67                <field name="description" class="java.lang.String"/>
68                <group name="group1">
69                        <groupExpression><![CDATA[$F{inventoryLocation}.name]]></groupExpression>
70                </group>
71        </subDataset>
72        <parameter name="reportTitle" class="java.lang.String"/>
73        <parameter name="currentUser" class="java.lang.String"/>
74        <parameter name="logoUrl" class="java.lang.String"/>
75        <parameter name="locationString" class="java.lang.String"/>
76        <queryString language="SQL">
77                <![CDATA[]]>
78        </queryString>
79        <field name="inventoryItemList" class="java.util.List"/>
80        <field name="summaryOfCalculationMethod" class="java.lang.String"/>
81        <field name="inventoryItemCount" class="java.lang.Integer"/>
82        <field name="locations" class="java.lang.String"/>
83        <field name="errorMessage" class="java.lang.String"/>
84        <field name="locationCount" class="java.lang.Integer"/>
85        <background>
86                <band splitType="Stretch"/>
87        </background>
88        <pageHeader>
89                <band height="93" splitType="Stretch">
90                        <textField>
91                                <reportElement key="staticText-1" mode="Transparent" x="0" y="50" width="340" height="25" backcolor="#FFFFFF"/>
92                                <textElement textAlignment="Center" verticalAlignment="Top" markup="none">
93                                        <font size="20"/>
94                                </textElement>
95                                <textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
96                        </textField>
97                        <image>
98                                <reportElement x="0" y="0" width="340" height="50"/>
99                                <imageExpression class="java.net.URL"><![CDATA[new URL($P{logoUrl})]]></imageExpression>
100                        </image>
101                        <textField isStretchWithOverflow="true" pattern="dd-MMM-yyyy" isBlankWhenNull="true">
102                                <reportElement x="0" y="75" width="340" height="17"/>
103                                <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"/>
104                                <textFieldExpression class="java.lang.String"><![CDATA["Total - Items: "+$F{inventoryItemCount}+", Locations: "+$F{locationCount}]]></textFieldExpression>
105                        </textField>
106                        <textField>
107                                <reportElement mode="Opaque" x="400" y="4" width="382" height="46" isPrintWhenDetailOverflows="true" forecolor="#FF0000" backcolor="#FFCCCC">
108                                        <printWhenExpression><![CDATA[$F{errorMessage} != null ? true:false]]></printWhenExpression>
109                                </reportElement>
110                                <textElement textAlignment="Center" verticalAlignment="Middle">
111                                        <font size="12" isBold="true"/>
112                                </textElement>
113                                <textFieldExpression class="java.lang.String"><![CDATA[$F{errorMessage}]]></textFieldExpression>
114                        </textField>
115                </band>
116        </pageHeader>
117        <columnHeader>
118                <band splitType="Stretch"/>
119        </columnHeader>
120        <detail>
121                <band height="438" splitType="Stretch">
122                        <componentElement>
123                                <reportElement key="table 1" x="0" y="0" width="782" height="438"/>
124                                <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">
125                                        <datasetRun subDataset="dataset1">
126                                                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{inventoryItemList})]]></dataSourceExpression>
127                                        </datasetRun>
128                                        <jr:column width="127">
129                                                <jr:groupHeader groupName="group1">
130                                                        <jr:cell height="20" rowSpan="1">
131                                                                <textField isStretchWithOverflow="true">
132                                                                        <reportElement x="0" y="0" width="117" height="20"/>
133                                                                        <textElement verticalAlignment="Middle">
134                                                                                <font size="12" isBold="true"/>
135                                                                        </textElement>
136                                                                        <textFieldExpression class="java.lang.String"><![CDATA[$F{inventoryLocation}.name+" in "+$F{inventoryLocation}.inventoryStore.name]]></textFieldExpression>
137                                                                </textField>
138                                                        </jr:cell>
139                                                </jr:groupHeader>
140                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
141                                                        <textField isStretchWithOverflow="true">
142                                                                <reportElement x="0" y="0" width="117" height="20"/>
143                                                                <textElement verticalAlignment="Middle">
144                                                                        <font isBold="true"/>
145                                                                </textElement>
146                                                                <textFieldExpression class="java.lang.String"><![CDATA[$F{inventoryLocation}.name]]></textFieldExpression>
147                                                        </textField>
148                                                </jr:columnHeader>
149                                                <jr:detailCell style="table_TD" height="51" rowSpan="1">
150                                                        <image hAlign="Center" vAlign="Middle">
151                                                                <reportElement x="29" y="0" width="88" height="51"/>
152                                                                <imageExpression class="java.awt.Image"><![CDATA[net.sf.jasperreports.engine.util.JRImageLoader.loadImage($F{picture}.images.first().data)]]></imageExpression>
153                                                        </image>
154                                                </jr:detailCell>
155                                        </jr:column>
156                                        <jr:column width="237">
157                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
158                                                        <textField isStretchWithOverflow="true">
159                                                                <reportElement x="0" y="0" width="237" height="20"/>
160                                                                <textElement verticalAlignment="Middle">
161                                                                        <font isBold="true"/>
162                                                                </textElement>
163                                                                <textFieldExpression class="java.lang.String"><![CDATA["Inventory Item"]]></textFieldExpression>
164                                                        </textField>
165                                                </jr:columnHeader>
166                                                <jr:detailCell style="table_TD" height="51" rowSpan="1">
167                                                        <textField isStretchWithOverflow="true">
168                                                                <reportElement x="0" y="0" width="237" height="25"/>
169                                                                <textElement verticalAlignment="Top"/>
170                                                                <textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
171                                                        </textField>
172                                                        <textField isStretchWithOverflow="true">
173                                                                <reportElement x="0" y="25" width="237" height="25"/>
174                                                                <textElement/>
175                                                                <textFieldExpression class="java.lang.String"><![CDATA[$F{description}]]></textFieldExpression>
176                                                        </textField>
177                                                </jr:detailCell>
178                                        </jr:column>
179                                        <jr:column width="104">
180                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
181                                                        <textField isStretchWithOverflow="true">
182                                                                <reportElement x="0" y="0" width="104" height="20"/>
183                                                                <textElement textAlignment="Center" verticalAlignment="Middle">
184                                                                        <font isBold="true"/>
185                                                                </textElement>
186                                                                <textFieldExpression class="java.lang.String"><![CDATA["In Stock"]]></textFieldExpression>
187                                                        </textField>
188                                                </jr:columnHeader>
189                                                <jr:detailCell style="table_TD" height="51" rowSpan="1">
190                                                        <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
191                                                                <leftPen lineWidth="0.0"/>
192                                                                <rightPen lineWidth="0.0"/>
193                                                        </box>
194                                                        <textField isStretchWithOverflow="true">
195                                                                <reportElement x="0" y="0" width="104" height="51"/>
196                                                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
197                                                                <textFieldExpression class="java.lang.String"><![CDATA[$F{unitsInStock}+" "+$F{unitOfMeasure}.name]]></textFieldExpression>
198                                                        </textField>
199                                                </jr:detailCell>
200                                        </jr:column>
201                                        <jr:column width="90">
202                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
203                                                        <textField isStretchWithOverflow="true">
204                                                                <reportElement x="0" y="0" width="90" height="20"/>
205                                                                <textElement textAlignment="Center" verticalAlignment="Middle">
206                                                                        <font isBold="true"/>
207                                                                </textElement>
208                                                                <textFieldExpression class="java.lang.String"><![CDATA["Actual Stock"]]></textFieldExpression>
209                                                        </textField>
210                                                </jr:columnHeader>
211                                                <jr:detailCell style="table_TD" height="51" rowSpan="1">
212                                                        <rectangle>
213                                                                <reportElement x="5" y="11" width="80" height="30"/>
214                                                        </rectangle>
215                                                </jr:detailCell>
216                                        </jr:column>
217                                        <jr:column width="82">
218                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
219                                                        <textField isStretchWithOverflow="true">
220                                                                <reportElement x="0" y="0" width="82" height="20"/>
221                                                                <textElement textAlignment="Center" verticalAlignment="Middle">
222                                                                        <font isBold="true"/>
223                                                                </textElement>
224                                                                <textFieldExpression class="java.lang.String"><![CDATA["Correction Required"]]></textFieldExpression>
225                                                        </textField>
226                                                </jr:columnHeader>
227                                                <jr:detailCell style="table_TD" height="51" rowSpan="1">
228                                                        <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
229                                                                <leftPen lineWidth="0.0"/>
230                                                                <rightPen lineWidth="0.0"/>
231                                                        </box>
232                                                        <rectangle radius="10">
233                                                                <reportElement x="31" y="15" width="30" height="20"/>
234                                                        </rectangle>
235                                                </jr:detailCell>
236                                        </jr:column>
237                                        <jr:column width="139">
238                                                <jr:columnHeader style="table_CH" height="20" rowSpan="1">
239                                                        <textField isStretchWithOverflow="true">
240                                                                <reportElement x="0" y="0" width="139" height="20"/>
241                                                                <textElement verticalAlignment="Middle">
242                                                                        <font isBold="true"/>
243                                                                </textElement>
244                                                                <textFieldExpression class="java.lang.String"><![CDATA["Notes"]]></textFieldExpression>
245                                                        </textField>
246                                                </jr:columnHeader>
247                                                <jr:detailCell style="table_TD" height="51" rowSpan="1"/>
248                                        </jr:column>
249                                </jr:table>
250                        </componentElement>
251                </band>
252        </detail>
253        <columnFooter>
254                <band splitType="Stretch"/>
255        </columnFooter>
256        <pageFooter>
257                <band height="34" splitType="Stretch">
258                        <textField pattern="dd-MMM-yyyy">
259                                <reportElement x="82" y="0" width="200" height="17"/>
260                                <textElement/>
261                                <textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
262                        </textField>
263                        <textField>
264                                <reportElement x="662" y="14" width="80" height="20"/>
265                                <textElement textAlignment="Right"/>
266                                <textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
267                        </textField>
268                        <textField evaluationTime="Report">
269                                <reportElement x="742" y="14" width="40" height="20"/>
270                                <textElement/>
271                                <textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
272                        </textField>
273                        <textField>
274                                <reportElement x="0" y="0" width="82" height="17"/>
275                                <textElement markup="none"/>
276                                <textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
277                        </textField>
278                        <textField>
279                                <reportElement x="82" y="17" width="200" height="17"/>
280                                <textElement markup="none"/>
281                                <textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
282                        </textField>
283                        <textField>
284                                <reportElement x="0" y="17" width="82" height="17"/>
285                                <textElement markup="none"/>
286                                <textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
287                        </textField>
288                </band>
289        </pageFooter>
290        <lastPageFooter>
291                <band height="34">
292                        <textField evaluationTime="Report">
293                                <reportElement x="742" y="14" width="40" height="20"/>
294                                <textElement/>
295                                <textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
296                        </textField>
297                        <textField pattern="dd-MMM-yyyy">
298                                <reportElement x="82" y="0" width="200" height="17"/>
299                                <textElement/>
300                                <textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
301                        </textField>
302                        <textField>
303                                <reportElement x="0" y="0" width="82" height="17"/>
304                                <textElement markup="none"/>
305                                <textFieldExpression class="java.lang.String"><![CDATA["Generated: "]]></textFieldExpression>
306                        </textField>
307                        <textField>
308                                <reportElement x="0" y="17" width="82" height="17"/>
309                                <textElement markup="none"/>
310                                <textFieldExpression class="java.lang.String"><![CDATA["By: "]]></textFieldExpression>
311                        </textField>
312                        <textField>
313                                <reportElement x="82" y="17" width="200" height="17"/>
314                                <textElement markup="none"/>
315                                <textFieldExpression class="java.lang.String"><![CDATA[$P{currentUser}]]></textFieldExpression>
316                        </textField>
317                        <textField>
318                                <reportElement x="662" y="14" width="80" height="20"/>
319                                <textElement textAlignment="Right"/>
320                                <textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
321                        </textField>
322                </band>
323        </lastPageFooter>
324        <summary>
325                <band height="369">
326                        <textField>
327                                <reportElement key="staticText-1" x="221" y="12" width="340" height="30"/>
328                                <textElement textAlignment="Center" verticalAlignment="Top" markup="none">
329                                        <font size="20"/>
330                                </textElement>
331                                <textFieldExpression class="java.lang.String"><![CDATA["Summary"]]></textFieldExpression>
332                        </textField>
333                        <textField isStretchWithOverflow="true">
334                                <reportElement x="0" y="60" width="782" height="18"/>
335                                <textElement/>
336                                <textFieldExpression class="java.lang.String"><![CDATA[$F{summaryOfCalculationMethod}]]></textFieldExpression>
337                        </textField>
338                        <textField isStretchWithOverflow="true" pattern="dd-MMM-yyyy" isBlankWhenNull="true">
339                                <reportElement x="0" y="125" width="782" height="17"/>
340                                <textElement verticalAlignment="Middle" markup="none"/>
341                                <textFieldExpression class="java.lang.String"><![CDATA["Locations found: "]]></textFieldExpression>
342                        </textField>
343                        <textField isStretchWithOverflow="true" pattern="dd-MMM-yyyy" isBlankWhenNull="true">
344                                <reportElement x="14" y="143" width="768" height="17"/>
345                                <textElement verticalAlignment="Middle" markup="none"/>
346                                <textFieldExpression class="java.lang.String"><![CDATA[$F{locations}+"."]]></textFieldExpression>
347                        </textField>
348                        <textField isStretchWithOverflow="true" pattern="dd-MMM-yyyy" isBlankWhenNull="true">
349                                <reportElement x="14" y="101" width="768" height="17"/>
350                                <textElement verticalAlignment="Middle" markup="none"/>
351                                <textFieldExpression class="java.lang.String"><![CDATA[$P{locationString}]]></textFieldExpression>
352                        </textField>
353                        <textField isStretchWithOverflow="true" pattern="dd-MMM-yyyy" isBlankWhenNull="true">
354                                <reportElement x="0" y="84" width="782" height="17"/>
355                                <textElement verticalAlignment="Middle" markup="none"/>
356                                <textFieldExpression class="java.lang.String"><![CDATA["Locations requested ('e.g:' is ignored and '%' is a wild card): "]]></textFieldExpression>
357                        </textField>
358                </band>
359        </summary>
360        <noData>
361                <band height="85" splitType="Stretch">
362                        <textField>
363                                <reportElement x="0" y="35" width="782" height="50"/>
364                                <textElement textAlignment="Center" markup="none">
365                                        <font size="14" isBold="true"/>
366                                </textElement>
367                                <textFieldExpression class="java.lang.String"><![CDATA["No data to display. \n"+
368"Please run report again."]]></textFieldExpression>
369                        </textField>
370                        <textField>
371                                <reportElement key="staticText-1" x="0" y="0" width="782" height="35"/>
372                                <textElement textAlignment="Center" markup="none">
373                                        <font size="20"/>
374                                </textElement>
375                                <textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
376                        </textField>
377                </band>
378        </noData>
379</jasperReport>
Note: See TracBrowser for help on using the repository browser.