Transcription

A Tutorial on JasperReports, iReport and JFreeChartPágina 1 de 21A Tutorial on Reporting in JAVA usingJasperReports, iReport and JFreeChartOnur Derin, oderin(a)softhome.net, Parsera Information TechnologiesThis tutorial aims to get the reader acquianted with the three of the open source JAVA reportingtools, namely JasperReports[1], iReport[2] and JFreeChart[3].A.What is a Report?B.How are JasperReports, iReport and JFreeChart related?JasperReportsiReportJFreeChartC.Creating a Sample Report with JasperReports, iReport and JFreeChartCreating the XML File for JasperReports using iReportCreating the Final Report using JasperReportsCreating Report Images using JFreeChartPie ChartBar ChartHintsReferrencesUseful LinksAppendix ASample JasperReport XML File – sample.jrxmlAppendix BSample JasperReports JAVA File - sample.javaA. What is a Report?A report is a nicely formatted way of presenting the data that you have entered. Reports are all aboutquerying a database and displaying the results in a nice format. Data in the database may bedisplayed just as is, that is, in hundreds of pages. However, most of the time, reports are used tograsp information out of a bunch of data. This is mainly done by charts which are graphicalrepresentations of information. When the data is processed to fill out a report, calculations are doneover the specific fields of the entries. The results appear as bars or pies in a chart or as text at the endof the report.Many of the commercially available reporting tools have the following layout for a report avaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 2 de 21Figure 1: General Report Templatetitle appears only once at the very beginning of the report. Title of the report is written in this part.eg. “Employee Performance Report”pageHeader appears at the top of each page. This part may contain date and time information and/ororganization name.columnHeader lists names of those specific fields which you want to display. eg. “Employee Name”,“Starting Hour”, “Finishing Hour”, “Hours Worked”, “Date”detail is the part where those fields of the entries are shown. eg. “John Doe”, “09:00”, “18:00”, “9”,“16.07.2004”columnFooter may display summation of any of the fields. eg. “Total Hours Worked: 180”pageFooter appears at the bottom of each page. This part may contain page count information like“1/7”.summary is the part where information inferred from the data in the “detail” part is displayed. Forexample, after listing the worked hours for each employee in “detail” part, total hours worked foreach employee can be put in a pie to enable a better visual comparison between the employees.B. How are JasperReports, iReport and JFreeChart related?JasperReportsJasperReports is an engine that takes an XML file and forms a report out of that file using the datasource specified in the XML file. A sample XML file is given in Appendix A. This file definesexactly what appears where in the report. Writing this file by hand is not practical. This is avaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 3 de 21iReport comes into play.For more information on JasperReports, ndex.htmliReportiReport is a visual tool to obtain XML files for JasperReports. It provides a WYSIWYG environmentto design reports. Sample.jrxml in Appendix A is obtained using iReport.Anything that can be placed in a report (static text, geometric shapes, images, subreports, groups,texts and images coming from a data source)can be put together in drag’n’drop fashion according tothe report template shown in Figure 1.For more information on JasperReports, artJFreeChart is a free Java class library for generating charts. Several chart types are supported such aspie charts (2D and 3D), bar charts (regular and stacked, with an optional 3D effect), line and areacharts, scatter plots and bubble charts, time series, high/low/open/close charts and candle stickcharts, combination charts, Pareto charts, Gantt charts, wind plots, meter charts and symbol charts,wafer map charts. This library is used to create the images of the charts which we want to embed intothe report.For more information on JasperReports, usekeyword "The JFreeChart Class Library"A. Creating a Sample Report with JasperReports, iReport andJFreeChartA sample report which shows work hours of employees will be created. Report will be created basedon the following database entries shown in Figure 2. Any database can be used as long as you canobtain a reference to a java.sql.Connection.Figure 2: Sample Table – “tutorial table” in “tutorial db”We want to show the same data in the table, however in a different format, for example, all entriesfor each employee grouped together. We also want to display the total hours worked for eachemployee. And finally, to give a comparison among the employees, we want to display theseinformation in a chart. Figure 3 shows what we want to 5

A Tutorial on JasperReports, iReport and JFreeChartPágina 4 de 21Figure 3: Desired Final ReportCreating the XML File for JasperReports using iReportStart by creating a new document in iReport. (File-New Document) In the report properties screen,specify the report name as “EmployeeReport” and confirm other default values.Before proceeding further, bear the following in mind:z Use Edit-Insert Element to insert different types of elements into the report. After selecting theelement, you will see that the cursor turns into a “ ” sign. Pressing the left button of the mouseand dragging it, specify the bounds of the inserted element. Double-clicking on the elementopens the property dialog, use this dialog to edit element properties. Property names aremostly self-explanatory.z Dynamic content of the report is provided by three things. 1. Parameters 2. Fields 3. Variables.All these three are added to the report as “Text Field”s through Edit-Insert element-Text field.z To specify a text field’s content to come from a Parameter, specify the Text field expression inthe property dialog of the element like the following: P{parameterName}z Similarly, to specify a text field’s content to come from a field, specify the Text fieldexpression in the property dialog of the element like the following: F{fieldName} fieldNamecan only be columns in a table of the database. In our case, fieldName can be any of“EmployeeName”, “HoursWorked”, “Date”.z Similarly, to specify a text field’s content to come from a variable, specify the Text fieldexpression in the property dialog of the element like the following: V{variableName}z After specifying a text field’s content to come from either a Parameter, a Field or a Variable,you should define the corresponding content name in “Report Fields”, “Report Parameters” Reporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartzzzPágina 5 de 21“Report Varibles” through “View-Report Fields”, “View-Report Parameters” or “View-ReportVariables”.By defining a “Report parameter”, we ensure that we will provide the JasperReport compilerwith a Hashtable having an entry with key ”parameterName” and value ”parameterValue”prior to the compilation of the report.Similarly, by defining a “Report field”, we ensure that resultset obtained by “Report Query”will contain a column named “fieldName”.Variables are of two types: builtin variables or non-builtin variables. You will see examples ofboth in a few moments.First, insert a static text as the title of report.Specify title to be “Employee Work Hours Report”. Using geometric shapes, the appearance of thereport can be enhanced. However, for the time being, we won’t bother with the aesthetics.To add a group to the report, press the “Groups” icon. On the opened dialog, press New. Specifygroup name as “employee” and group expression as “ F{EmployeeName}”, press OK with otherfields in default values. You will see that two new bands are added as “employeeHeader” and“employeeFooter”.According to the instructions given above, obtain the design in Figure 4. Specify the Report Querythrough Edit-Report query as “SELECT * FROM tutorial table ORDER BY EmployeeName”.“Order by” is necessary because we created “employee” group with group expression “ m?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 6 de 21Figure 4: Final iReport DesignNotice that you can refer to the final XML file in Appendix A whenever you have a question aboutforming the above design. Finally save your design and compile it, you will have a jrxml file.Creating the Final Report using JasperReportsAfter obtaining the jrxml file, it is only a few steps to obtaining the final report. The following codesegment taken from sample.java given in Appendix B is all to get the final report viewed in a 2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 7 de 21// First, load JasperDesign from XML and compile it into JasperReportJasperDesign jasperDesign le\\samJasperReport jasperReport JasperManager.compileReport(jasperDesign);// Second, create a map of parameters to pass to the report.Map parameters new HashMap();parameters.put("employeeChart", createEmployeeChartImage());// Third, get a database connectionConnection conn Database.getConnection();// Fourth, create JasperPrint using fillReport() methodJasperPrint jasperPrint JasperManager.fillReport(jasperReport, parameters, conn);// You can use JasperPrint to create PDFJasperManager.printReportToPdfFile(jasperPrint, "desired-path\\SampleReport.pdf");// Or to view report in the / Or create HTML asperPrint, "desired-path\\SampleReport.hFigure 5: From XML to the final report by JasperReportsOne advantage of JasperReports is that it can export the final print to an HTML file which makesdynamic reporting possible in web pages. The last line in Figure 5 exports the report to an HTMLfile.Creating Report Images using JFreeChartNotice the createEmployeeChartImage() method in Figure 5. This part is where JFreeChart library isused. As stated earlier, this library can be used to obtain different types of charts. In JFreeChartlibrary, mainly what is done is to create an appropriate dataset for the chart type. Then it is a one linecode to create the chart with the dataset and another line to embed the chart image into the report.Follwing are sample codes to form different types of charts available with JFreeChart.Pie ChartThe following code segment taken from sample.java given in Appendix B demonstrates the processof creating a java.awt.Image object from 05

A Tutorial on JasperReports, iReport and JFreeChartPágina 8 de 21// create a datasetDefaultPieDataset data new DefaultPieDataset();// fill dataset with employeeDatafor(java.util.Enumeration e employeeData.keys(); e.hasMoreElements();){String employeeName , (Double)employeeData.get(employeeName));}// create a chart with the datasetJFreeChart chart ChartFactory.createPieChart("Employee Chart", data, true, true, true);// create and return the image with the size specified in the XML designreturn chart.createBufferedImage(500, 220);Figure 6: Obtaining employee work hour chart as a Pie ChartFigure 7: Employee Work Hour Pie ChartBar avaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 9 de 21// create a datasetDefaultCategoryDataset defaultCategoryDataset new DefaultCategoryDataset();String s "Employee";// fill dataset with employeeDatafor(java.util.Enumeration e employeeData.keys(); e.hasMoreElements();){String employeeName Value((Double)employeeData.get(employeeName), s, em}// create a chart with the datasetJFreeChart chart ChartFactory.createBarChart3D("Employee Chart","Employee","Total Hours otOrientation.VERTICAL,true,// Show legendtrue,true);// Title// X-Axis label// Y-Axis label// Dataset// create and return the image with the size specified in the XML designreturn chart.createBufferedImage(500, 220);Figure 8: Obtaining employee work hour chart as a Pie ChartFigure 9: Employee Work Hour Bar ChartHintszIn order not to experience problems when displaying texts in the report, select the encoding ofthe XML file as UTF-8 and write local characters in their UTF-8 forms.çÇðÐý\u00e7\u00c7\u011f\u011e\u0131c with cedillaC with cedillag with a line at topG with a line at topi without aReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 10 de 21Ý\u0130I with a dotö\u00f6o with double dotsÖ\u00d6O with double dotsþ\u015fs with cedillaÞ\u015eS with cedillaü\u00fcu with double dotsÜ\u00dcU with double dotsTable 1: List of non-Latin Turkish letters and their UTF-8 correspondants.zOn a Windows system, after the installation of iReport, if iReport fails tocreate .iReport/config.xml under your home directory, create the directory named .iReportunder your home directory in a command prompt yourself by “mkdir ww.jfree.org/jfreechart/Useful tmlAppendix ASample JasperReport XML File – sample.jrxml ?xml version "1.0" encoding "UTF-8" ? !-- Created with iReport - A designer for JasperReports -- !DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report tds/jasperreport.dtd" jasperReportname "EmployeeReport"columnCount "1"printOrder "Vertical"orientation "Portrait"pageWidth "595"pageHeight "842"columnWidth "535"columnSpacing "0"leftMargin "30"rightMargin "30"topMargin "20"bottomMargin "20"whenNoDataType "NoPages"isTitleNewPage "false"isSummaryNewPage "false" property name "ireport.scriptlethandling" value "2" / parameter name "employeeChart" isForPrompting "false" class "java.awt.Image"/ queryString ![CDATA[SELECT * FROM tutorial table ORDER BY /01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 11 de 21 /queryString field name "ID" class "java.lang.Byte"/ field name "EmployeeName" class "java.lang.String"/ field name "HoursWorked" class "java.lang.Double"/ field name "Date" class "java.util.Date"/ variable name "HoursWorked SUM" class "java.lang.Double" resetType "Group"resetGroup "employee" calculation "Nothing" variableExpression ![CDATA[( V{HoursWorked SUM}.doubleValue() ! 0.0)?(new Double( V{HoursWorked SUM}.doubleValue() F{HoursWorked}.doubleValue())):( F{HoursWorked})]] /variableExpression initialValueExpression ![CDATA[new java.lang.Double(0.0)]] /initialValueExpression /variable group name "employee" isStartNewColumn "false" isStartNewPage "false"isResetPageNumber "false" isReprintHeaderOnEachPage "false" minHeightToStartNewPage "0" groupExpression ![CDATA[ F{EmployeeName}]] /groupExpression groupHeader band height "70" isSplitAllowed "true" staticText reportElementmode "Opaque"x "5"y "8"width "74"height "26"forecolor "#000000"backcolor "#FFFFFF"key "element-28"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "14" isBold "true" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Employee:]] /text /staticText textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "80"y "8"width "360"height "26"forecolor "#000000"backcolor "#FFFFFF"key "element-29"stretchType /2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 12 de 21positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "14" isBold "true" isItalic "true" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.lang.String" ![CDATA[ F{EmployeeName}]] /textFieldExpression /textField staticText reportElementmode "Opaque"x "119"y "37"width "140"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-31"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "12" isBold "true" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Hours Worked]] /text /staticText line direction "TopDown" reportElementmode "Opaque"x "119"y "61"width "280"height "0"forecolor "#000000"backcolor "#FFFFFF"key "element-32"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ graphicElement stretchType "NoStretch" pen 05

A Tutorial on JasperReports, iReport and JFreeChartPágina 13 de 21fill "Solid" / /line staticText reportElementmode "Opaque"x "260"y "37"width "140"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-33"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "12" isBold "true" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Date]] /text /staticText line direction "TopDown" reportElementmode "Opaque"x "4"y "4"width "528"height "0"forecolor "#000000"backcolor "#FFFFFF"key "element-36"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ graphicElement stretchType "NoStretch" pen "2Point"fill "Solid" / /line /band /groupHeader groupFooter band height "33" isSplitAllowed "true" line direction "TopDown" reportElementmode "Opaque"x "119"y "3"width avaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartfill "Solid" / Página 14 de 21height "0"forecolor "#000000"backcolor "#FFFFFF"key "element-37"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ graphicElement stretchType "NoStretch" pen "2Point" /line textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "175"y "5"width "98"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-38"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.lang.Double" ![CDATA[ V{HoursWorked SUM}]] /textFieldExpression /textField staticText reportElementmode "Opaque"x "144"y "5"width "29"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-40"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ porting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 15 de 21 textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Total:]] /text /staticText /band /groupFooter /group background band height "0" isSplitAllowed "true" /band /background title band height "43" isSplitAllowed "true" rectangle radius "0" reportElementmode "Opaque"x "1"y "11"width "534"height "28"forecolor "#000000"backcolor "#CCCCCC"key "element-3"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ graphicElement stretchType "NoStretch" pen "2Point"fill "Solid" / /rectangle staticText reportElementmode "Opaque"x "123"y "12"width "288"height "26"forecolor "#000000"backcolor "#FFFFFF"key "element-2"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Center"verticalAlignment "Top" rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName /2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 16 de 21size "18" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Employee Work Hours Report]] /text /staticText /band /title pageHeader band height "3" isSplitAllowed "true" /band /pageHeader columnHeader band height "3" isSplitAllowed "true" /band /columnHeader detail band height "22" isSplitAllowed "true" textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "119"y "0"width "140"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-34"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Center"verticalAlignment "Top" rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.lang.Double" ![CDATA[ F{HoursWorked}]] /textFieldExpression /textField textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "260"y "0"width "140"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-35"stretchType /2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 17 de 21positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.util.Date" ![CDATA[ F{Date}]] /textFieldExpression /textField /band /detail columnFooter band height "4" isSplitAllowed "true" /band /columnFooter pageFooter band height "26" isSplitAllowed "true" textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "6"y "3"width "272"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-45"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.sql.Timestamp" etInstance().getTimeInMillis())]] /textFieldExpression /textField textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Now" hyperlinkType "None" reportElementmode "Opaque"x "225"y "4"width vaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 18 de 21height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-62"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Right" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.lang.String" ![CDATA["Page " V{PAGE NUMBER} " / "]] /textFieldExpression /textField textField isStretchWithOverflow "false" pattern ""isBlankWhenNull "false" evaluationTime "Report" hyperlinkType "None" reportElementmode "Opaque"x "309"y "4"width "99"height "22"forecolor "#000000"backcolor "#FFFFFF"key "element-63"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Left" verticalAlignment "Top"rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "10" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement textFieldExpression class "java.lang.String" ![CDATA["" V{PAGE NUMBER}]] /textFieldExpression /textField /band /pageFooter summary band height "261" isSplitAllowed "true" image scaleImage "RetainShape" vAlign "Middle"hAlign "Center" isUsingCache "false" evaluationTime "Now"hyperlinkType "None" reportElementmode "Opaque"x "11"y vaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on JasperReports, iReport and JFreeChartPágina 19 de 21width "514"height "221"forecolor "#000000"backcolor "#FFFFFF"key "element-41"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ graphicElement stretchType "NoStretch" pen "None"fill "Solid" / imageExpression class "java.awt.Image" ![CDATA[ P{employeeChart}]] /imageExpression /image staticText reportElementmode "Opaque"x "121"y "3"width "293"height "23"forecolor "#000000"backcolor "#FFFFFF"key "element-64"stretchType "NoStretch"positionType "FixRelativeToTop"isPrintRepeatedValues "true"isRemoveLineWhenBlank "false"isPrintInFirstWholeBand "false"isPrintWhenDetailOverflows "false"/ textElement textAlignment "Center"verticalAlignment "Top" rotation "None" lineSpacing "Single" font fontName "Arial" pdfFontName "Helvetica"size "18" isBold "false" isItalic "false" isUnderline "false" isPdfEmbedded "false" pdfEncoding "Cp1252" isStrikeThrough "false" / /textElement text ![CDATA[Employee Work Hours Chart]] /text /staticText /band /summary /jasperReport Appendix BSample JasperReports JAVA File - sample.java/** Sample.java** Created on July 19, 2004, 12:49 vaReporting/JavaReportingTutorial.htm?03/01/2005

A Tutorial on Ja

Sample JasperReports JAVA File - sample.java A. What is a Report? A report is a nicely formatted way of presenting the data that you have entered. Reports are all about . JasperReports is an engine that takes an XML file and forms a report out of that file using the data source specified in the XML file. A sample XML file is given in Appendix A.