1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu JasperReports 3.5 for Java Developers- P8 pdf

17 423 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Integrating JasperReports With Other Frameworks
Tác giả William Anderson
Trường học University of Georgia
Chuyên ngành Computer Science
Thể loại Thesis
Năm xuất bản 2009
Thành phố Atlanta
Định dạng
Số trang 17
Dung lượng 628,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

This makes it easy to write action classes that generate reports.. As both the HttpServlet.doGet and Action.execute methods take an instance of HttpServletResponse as one of their parame

Trang 1

Chapter 11

[ 339 ]

connection = DriverManager.getConnection("jdbc:mysql://localhost:

3306/flightstats?user=user&password=secret");

JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, new HashMap(), connection);

connection.close();

servletOutputStream.flush();

servletOutputStream.close();

return mapping.getInputForward();

} } All the action classes must extend the org.apache.struts.action.Action class

Typically, the execute() method is overridden to implement custom logic for servicing a request As can be seen in this code, the execute() method takes an instance of HttpServletResponse as one of its parameters This makes it easy to write action classes that generate reports

The technique illustrated in the preceding example is not much different from what

we have seen in various earlier examples throughout the book In most examples,

we used standard Java servlets to generate web reports, implementing the report logic in the servlet's doGet() method As both the HttpServlet.doGet() and

Action.execute() methods take an instance of HttpServletResponse as one of their parameters, the technique to generate a report from an action class is virtually identical to the technique used when employing a servlet

Let us take a look at the JSP that will invoke the GenerateReportAction.execute()

method

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Generate Report</title>

</head>

<body>

<p>Click on the button to generate the report.</p>

<html:form action="/generate_report">

<html:submit />

</html:form>

</body>

</html>

Trang 2

Integrating JasperReports with Other Frameworks

[ 340 ]

This JSP will generate a very simple HTML form with a Submit button as its only

input field

Next, let us take a look at the form bean for this JSP

package net.ensode.jasperbook.struts;

import org.apache.struts.action.ActionForm;

public class GenerateReportForm extends ActionForm {

}

As the HTML form generated by the preceding JSP has no input fields other than

a Submit button, its corresponding form bean has no fields We still need to write

it because, when writing Struts applications, each JSP must have a corresponding form bean

To wire the action class, the form bean, and the JSP together, we need to create a

struts-config.xml file and deploy it in the WEB-INF directory of the application's

war file

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>

<! ==================================== Form Bean Definitions >

<form-beans>

<form-bean name="generateReportForm"

type="net.ensode.jasperbook.struts.GenerateReportForm">

</form-bean>

</form-beans>

<! =============================== Action Mapping Definitions >

<action-mappings>

<action path="/generate_report"

type="net.ensode.jasperbook.struts.GenerateReportAction"

name="generateReportForm"

scope="request"

input="generate_report.jsp">

</action>

</action-mappings>

</struts-config>

Trang 3

Chapter 11

[ 341 ]

The <form-bean> tag defines the GenerateReportForm class as a form bean and assigns the logical name generateReportForm to it

The <action> tag maps the GenerateReportAction action class to the

/generate_report path It also specifies that the GenerateReportForm form bean will be associated with this action Finally, it links the generate_report.jsp JSP file through the input attribute

Like all server-side Java web applications, Struts applications must contain a web

xml file in the WEB-INF directory inside the application's war file

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

<display-name>Struts JasperReports Application</display-name>

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>

org.apache.struts.action.ActionServlet </servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>2</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>2</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

<! Standard Action Servlet Mapping >

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

</web-app>

This web.xml file simply defines the Struts ActionServlet to process all the URLs ending in do The Struts ActionServlet calls the appropriate JSP and action class behind the scenes for the appropriate URL

Trang 4

Integrating JasperReports with Other Frameworks

[ 342 ]

Following the standard procedure for deploying web applications, we create a WAR file with the preceding files and required dependencies, deploy it to a servlet container, and point the browser to the corresponding URL We should then see a web page similar to the following:

Clicking on the Submit button generates the report, exports it to PDF, and displays

it in the browser

Trang 5

Chapter 11

[ 343 ]

Summary

The chapter started with integrating JasperReports with Hibernate by writing embedded report queries in the HQL JasperReports with HQL queries is similar to reports containing SQL queries except that the language attribute of the <queryString> element must be set to hql Next, we saw how to integrate JasperReports with the JPA As with Hibernate, JPA integration requires that the

language attribute of the <queryString> element be modified For JPA, the value

of this attribute must be set to ejbql Following our discussion of JPA, we saw how to integrate JasperReports with the Spring framework by taking advantage

of Spring's built-in support for JasperReports integration

The chapter also dealt with JSF and JasperReports integration and illustrated how

to write backing beans that fill a report and display it in the browser Finally, the chapter illustrated the integration of JasperReports with Struts by explaining how to write action classes that fill a report and display it in the browser

Trang 7

<background> element 50, 135

<bucket> element 219

<bucketExpression> element 219

<chart> element

about 190 attributes 190 customizerClass 190 evaluationGroup 191 evaluationTime 191 isShowLegend 191

<columnFooter> element 52

<columnGroup> subelement

about 220 attributes 220 headerPosition attribute 220 height attribute 220

name attribute 220 totalPosition attribute 220

<columnHeader> element 51

<crosstabCell> element 220

<crosstabCell> subelement

about 220 attributes 220 columnTotalGroup attribute 220 height attribute 220

rowTotalGroup attribute 221 width attribute 221

<crosstabDataset> subelement

about 221 attributes 221 isDataPreSorted attribute 221

<crosstab> element

about 219, 220

<columnGroup> subelement 220

<crosstabCell> subelement 220

<crosstabDataset> subelement 221

<crosstabParameter> subelement 221

<measure> subelement 221

<parametersMapExpression>

subelement 221

<reportElement> subelement 222

<rowGroup> subelement 222 subelements 220

<whenNoDataCell> subelement 222

<crosstabParameter> subelement

about 221 attributes 221 class attribute 221 name attribute 221

<crosstabRowHeader> element 219

<datasets> element

about 192 attributes 192

<datasets> element, attributes

incrementGroup 193 incrementType 193 resetGroup 193 resetType 193

<dataSourceExpression> 178

<detail> element 51

<fieldDescription> element 107

<field> element 48, 62

<filterExpression> element 49

<group> element

about 49, 148 attributes 148 isReprintHeaderOnEachPage 148 isResetPageNumber 148

isStartNewColumn 148 isStartNewPage 148

Index

Trang 8

[ 346 ]

<image> element

about 188 attributes 188

<image> element, attributes

evaluationGroup 188 evaluationTime 188 hAlign 188

IsLazy 189 isUsingCache 189 onErrorType 190 vAlign 189

<import> element 47

<jasperReport> root elements

<background> 50

<columnFooter> 52

<columnHeader> 51

<detail> 51, 52

<field> 48

<filterExpression> 49

<group> 49

<import> 47

<lastPageFooter> 53

<noData> 54, 55

<pageFooter> 52

<pageHeader> 50

<parameter> 48

<property> 46

<queryString> 48

<sortField> 48

<style> 47

<subDataset> 47

<summary> 53

<template> 47

<title> 50

<variable> 49

<lastPageFooter> element 53

<measure> subelement

about 221 attributes 221 calculation attribute 241 class attribute 221 name attribute 221

<noData> element 54

<pageFooter> element 52

<pageHeader> element 50

<parameter> element 48

<parametersMapExpression> 178

<parametersMapExpression> subelement 221

<plot> element

about 194 attributes 194

<plot> element, attributes

backcolor 194 backgroundAlpha 194 foregroundAlpha 194 orientation 194

<property> element 46

<queryString> element 48, 62, 73

<reportElement>

about 159 attributes 159

<reportElement>, attributes

backcolor 161 forecolor 161 height 161 isPrintInFirstWholeBand 161 isPrintRepeatedValues 161 isPrintWhenDetailOverFlows 161 isRemoveLineWhenBlank 161 key 161

mode 161 positionType 161 printWhenGroupChanges 161 stretchType 161

width 161

x 161

y 161

<reportElement> subelement

about 222 attributes 222

<returnValue> 178

<rowGroup> element 219

<rowGroup> subelement

about 222 attributes 222 headerPosition attribute 222 name attribute 222

totalPosition attribute 222 width attribute 222

<sortField> element 48

<style> element

about 47, 122 attributes 122

Trang 9

[ 347 ]

<style> element, attributes

backcolor 123 fontName 123 fontSize 123 forecolor 123 hAlign 123 isBold 123 isItalic 123 isStrikeThrough 123 isUnderline 123 linespacing 123 vAlign 123

<subDataset> element 47, 48

<subreport> JRXML element

about 178 subelements 178

<subreport> JRXML element, subelements

<dataSourceExpression> 178

<parametersMapExpression> 178

<returnValue> 178

<summary> element 53

<template> element 47

<textElement> element

linespacing attribute 126 rotation attribute 126 textAlignment attribute 126

<textField> element 62

<title> element 50

<variable> element

about 49, 150 attributes 150

<variable> element, attributes

calculation 152 class 152 incrementerFactoryClass 152 incrementGroup 152

incrementType 152 name 152

resetGroup 152 resetType 152

<whenNoDataCell> subelement 222

A

anchors

about 230, 231 adding, to reports 230, 231

Apache ANT 26 Apache Commons

about 13, 24 Commons Digester library 25 optional libraries 26

Apache Commons BeanUtils 26 Apache Commons Collections 25 Apache Commons Logging 25 Apache POI 13

B

bar charts

about 198 creating 198-201

binary report template

compiled report template, previewing

34, 35 creating 33 JRXML template, compiling 33 JRXML template, compiling through ANT 36, 38

bookmarkLevel attribute 238 bookmarks

about 237 generating 237, 238

built-in report parameters, empty data-sources

about 88 is_ignore_pagination 88 report_connection 88 report_data_source 88 report_locale 88 report_max_count 88 report_parameters_map 88 report_resource_bundle 88 report_scriptlet 88

report_virtualizer 89

built-in report variables

about 156 column_count 156 column_number 156 nameofgroup_count 156 page_count 156

page_number 156 report_count 156

Trang 10

[ 348 ]

C

chart items

turning, into hyperlinks 232-234

charts

adding, to report 190 area chart 204 bar charts 198 bubble chart 204 candlestick chart 204

<chart> element 190 customizing 192 datasets 192 gantt chart 204 high low chart 204 line chart 204 meter chart 204 multiple axis chart 204 pie charts 195

plotting 194 scatter plot chart 204 stacked area chart 204 stacked bar chart 204 thermometer chart 204 times series chart 204 types 204

XY area chart 204

XY bar chart 204

XY line chart 204

XY line charts 201

class library dependencies

about 13 Apache Commons 13 Apache POI 13 JAXP 13 JFreeChart 13

common element properties

about 167 setting 167, 169

Commons Digester library

about 25 Apache Commons BeanUtils 26 Apache Commons Collections 25 Apache Commons Logging 25

compileReportToFile() method 33 crosstabs 216-220

CSV 258

CSV datasources

about 111 net.sf.jasperreports.engine.data.JRCsvData-Source, using 111

CSV format

reports, exporting to 258-260

custom datasources

about 113 custom JRDataSource implementation, using 115-117

custom JRDataSource implementation, writing 114, 115

custom JRDataSource implementation

employing 115-117 writing 114, 115

D

database report, iReport

creating 278-282 generated report, tweaking 283

database reports

database reporting, through datasource 72- 78

generating 59 methods, comparing 78 report, generating 63-66 report query, modifying through report parameters 67-70

SQL queries, embedding into report template 60-62

datasource

about 57 CSV datasources 111 custom datasources 113 Java objects, as datasources 94 map datasources 89

XML datasources 106

data transfer object See DTO displayReport() method 104 Document Type Definition (DTD) 256 DTO 95

E

empty datasources

built-in report parameters 88 report parameters, assigning values to 87

Trang 11

[ 349 ]

evaluationGroup attribute 188 evaluationTime attribute 188 Excel format

reports, exporting to 252, 253

F

filling 16, 63 fillReportToFile() method

about 39 parameters 39 versions 39

for hyperLinkTarget attribute

about 235 values 235

G

generateReport() method 104 geometrical shapes

adding, to reports 181 ellipses, adding to report 185, 186 lines, adding to report 182, 183 rectangles, adding to report 183, 184

getFieldValue() method 115, 214 getName() method 115

getParameterValue() method 214 getVariableValue() method 214 getWriter() method 267

GPL 271

H

hAlign attribute 188 Hibernate

about 308 JasperReports, integrating with 308-319

HTML format

reports, exporting to 254, 255

HTML reports

directing, to browser 264-269

hyperlinks

about 230, 231 adding, to reports 230, 231 LocalAnchor 232

LocalPage 232 none 232 Reference 232

RemoteAnchor 232 RemotePage 232

I

images

adding, to report 186, 187 example 187

incrementGroup attribute 193 incrementType attribute 193 iReport

about 271 database report, creating 278-282 database report, generating quickly 278 downloading 272-274

features 304 installing 274 report, creating from scratch 284-292 reports, modifying 292

setting up 275-277

IsLazy attribute 189 isUsingCache attribute 189 iText library 27

J

JasperCompileManager.compileReport ToFile() method

about 33 parameters 33

jasper file 16 JasperFillManager class 73 JasperFillManager.fillReport() method 268 JasperForge

about 16 official online forums 17

JasperPrint file 16 JasperReports

built-in report variables 156 common element properties, setting 167, 169

about 8 anchors, adding 230, 231 chart items, turning into hyperlinks 232-235 charts, adding 190 class library dependencies 13 crosstabs 216

Ngày đăng: 14/12/2013, 20:15

w