SlideShare a Scribd company logo
1 of 5
Download to read offline
Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering
         Research and Applications (IJERA)       ISSN: 2248-9622 www.ijera.com
                       Vol. 2, Issue 4, July-August 2012, pp.984-988
Report Generation System Using JasperReports and SQL Stored
                         Procedure
          Bhushan S. Sapre*, Pankaj R. Ulhe**, Dr. B. B. Meshram***
     *(Department of Computer Technology, Veetmata Jijabai Technilogical Institute, Matunga, Mumbai)
                       **(Technical Specialist, Mastek Ltd., Seepz, Andheri, Mumbai)
   ***(Head of Dept. of Computer Technology, Veermata Jijabai Technological Institute, Matunga Mumbai)

ABSTRACT

         The contents of this paper mainly focus         elements and relationships, this is useful for making
on study of the Report generation system using           effective management decision[10].
JasperReports, an open-source reporting tool, for                  The traditional generation method of reports
realization and implementation of dynamic and            is relatively curable, once the system development
reusable reports. Stored SQL procedures are used         was completed, all reports’ formats are fixed.
to retrieve data from database. iReport is a GUI         Therefore it is not possible to change format of report
based report designer assists the realization of the     according to changes in circumstances and cannot
reports. The separation of the report template           customize them of personal fashion. When content or
from report data provided by JasperReports has           format of the report changes, we need to modify the
provided ease of development and maintenance of          code constantly to adapt changes which restricts
reports in overall system. This report system is         progress of the project. Therefore we generally use
supported by Spring framework which provides             XML documents to give the definition, using the idea
Java environment of system. This data report             of the separation of report format and report data.
system can be used to generate reports                   Format module of reports extract XML format files
dynamically and improve overall system’s                 from the template library of report format, data
reusability and maintainability.                         module of reports extract relevant data from the
                                                         database, finally, the report was compiled and
Keywords      -   iReport,   JasperReports,    Stored    displayed by reports builder[1]. However, this kind of
Procedure                                                reports needs to develop oriented database, resulting
                                                         in reliance on the data source and reducing reuse and
1. INTRODUCTION                                          portability of the reports.This paper focuses on
          Report is a self-explanatory statement of      JasperReports, an open source reorting tool along
facts relating to a specific subject and serves the      with a GUI based report designer, iReport. It is
purpose of providing information for decision            combined with Hibernate to create dynamic and
making and follow up actions. Report is an important     reusable report generation system.In project which
tool in project management, and its purpose is to help   based on open-source framework of SpringMVC, we
managers quickly grasp the raw data of the basic         used this report system to generate reports and




                                                                                                984 | P a g e
Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering
         Research and Applications (IJERA)       ISSN: 2248-9622 www.ijera.com
                       Vol. 2, Issue 4, July-August 2012, pp.984-988
invoices and successfully constructed a stable and        library and apply it to any kind of Java application
efficient system.                                         process. iReport is distributed, and described by pure
                                                          Java which correspondence with GNU General
2. THE CHOICE,                 ANALYSIS AND               Public License. iReport provides a relatively perfect
APPLICATION OF                  THE   REPORT              platform for visual editing of report template, using it
BUILDER                                                   we just need a simple operation to design the demand
                                                          interface. It can graphically edit JRXML documents
2.1 Working of JasperReports                              and support for PDF, RTF, XML, XLS, CSV, HTML
          With the development of open source             and many other formats, and it also can support for
software, especially Linux OS, open source software       the realization of XML data sources. The relationship
being gradually accepted and respected by the             between the content and performance of report is
people, it played an increasingly important role in IT.   configured by JRXML file; this can bind different
JasperReports is an open source report tool which         domains and different databases, so that reports can
written in pure Java, it can run on any Java-             be applied under different datasource environment.
application environment, including J2EE and other         iReport also compiles JRXML file to form
web applications[10].                                     ‘.JASPER’ file which is used to fill data from
          JasperReports has a good cross platform and     datasource. This method provides separation between
compatibility. It can dynamically display reports of      template of the report and data of the report i.e. report
various styles and formats. It also can display rich      template is independent of the data displayed by the
content of the page and convert these pages into          report. It avoids complexity and is perfect for rapid
XLS, RTF, PDF, HTML and XML format, showing               production of the reports.
its applicability. Moreover, iReport as a production
tool of front-end interface, it has made a considerable   3. USE OF STORED PROCEDURE TO
improvement by providing facility to create charts,       FILL REPORTS
sub-tables, meet schedules, and other more complex
reports[3].                                               3.1 Introduction to Stored Procedure
          Figure 1 describes the process of report                  A stored procedure is a subroutine available
generation by JasperReports. Report generation starts     to applications that access a relational database
with JRXML file which is also called as Report            system. A stored procedure or in simple a proc is a
template. JRXML file contains the report structure        named PL/SQL block which performs one or more
information. JRXML file parsed by JRXmlLoader             specific task. This is similar to a procedure in other
and     converted     into      JasperDesign    Object.   programming languages. A procedure has a header
JasperDesign Object contains only design                  and a body. The header consists of the name of the
information of the report. After compiling                procedure and the parameters or variables passed to
JasperDesign Object using JRCompiler it gets              the procedure. The body consists or declaration
converted into Jasper Report without Data. Now Data       section, execution section and exception section
filled into empty JasperReport Object using               similar to a general PL/SQL Block. A procedure is
RS(Result Set) and it will be converted into              similar to an anonymous PL/SQL Block but it is
JasperPrint Object. Form JasperPrint Object you have      named for repeated usage.
two options: JasperPrintManager from which you can                  Stored Routines (Procedures and Functions)
print the report or view the report on the screen else    are supported in version MySQL 5.0. Stored
JasperExportManager from which you can export             Procedure is a set of statements, which allow ease
report in HTML, PDF, XLS format.                          and flexibility for a programmer because stored
                                                          procedure is easy to execute than reissuing the
2.2 iReport: Visual Report Designer Studio                number of individual SQL statements. Stored
                                                          procedure can call another stored procedure also.
          Preocess of report generation starts from       Stored Procedure can very useful where multiple
JRXML file. This JRXML can be written manually            client applications are written in different languages
but it is complex and time consuming. Moreover we         or it can be work on different platforms but they need
need to learn how to structure JRXML file as per          to perform the same database operations.
syntax and semantics of JasperReports. Therefore we                 Store procedure can improve the
choose iReport, a front page showing and producing        performance because by using the stored procedure
tool that matches with JasperReports[11].                 less information needs to be sent between the server
          It is mainly used in the visual design and      and the client. It increases the load on the database
generation of JRXML file in statements form used by       server because less work is done on the client side
JasperReports, as JasperReports itself did not provide    and much work is done on the server side.
a good visual statements design tools, the appearance     We can pass parameters to procedures in three ways,
of iReport has just make up for the deficiencies. At      viz. IN-parameters, OUT-parameters and INOUT-
the same time, iReport can call the JasperReports         parameters



                                                                                                   985 | P a g e
Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering
         Research and Applications (IJERA)       ISSN: 2248-9622 www.ijera.com
                       Vol. 2, Issue 4, July-August 2012, pp.984-988
          The parameter list is available within the                  Jasper Reports is unable to call Oracle
parentheses. Parameter can be declared to use any           stored procedures directly, because procedures do not
valid data type, except that the COLLATE attribute          return standard result sets. As a solution, in Oracle,
cannot be used. By default each parameter is an IN          you can use a stored function to retrieve the results of
parameter. For specifying other type of parameter           a stored procedure. There are a few more steps to do
used the OUT or INOUT keyword before the                    this than if you were able to use a stored procedure,
parameter name.                                             but it currently is the only option, if the query you
          An IN parameter is used to pass the value         need to do can’t be done with a standard SQL query.
into a procedure. The procedure can be change the           In order to to use stored functions to retrieve the
value but when the procedure return the value then          result set of a stored procedure, you will need to use a
modification is not visible to the caller. An OUT           temp table to hold the results, and then return the
parameter is used to pass the value from the                results using types and tables of types. In iReport
procedure to the caller but its visible to the caller. An   designer go to Tools. Under Options, go to Classpath
INOUT parameter is initialized by the caller and it         Tab. Click Add JAR and add the OJDBC14.jar to the
can be modified by the procedure, and any change            classpath. Go to Query Executer tab and set the
made by the procedure is visible to the caller.             Language as PLSQL. Select Database JDBC
          For each OUT or INOUT parameter you               Connection. Select Oracle as the JDBC Driver as
have to pass a user defined variable because then the       shown in the image below and verify the connection
procedure returns the value then only you can obtain        by clicking the Test button. Create a blank report by
it values. But if you invoking the procedure from the       giving a report name and save it. Open the report in
other procedure then you can also pass a routine            the designer and right click on the report name and
parameter or variable as an IN or INOUT parameter.          click on Edit Query. Call your procedure with in { }
          The procedure body contains the valid SQL         a.                                                 {call
procedure statement that can be a simple statement          PUBLISHER_AND_BOOKS(&P(P_PUBLISHER_I
like SELECT or INSERT or they can be a compound             D),                  &P(ORACLE_REF_CURSOR))}.
statement written using BEGIN and END. Compound             P_PUBLISHER_ID is of type string and
statement can consists declarations, loops or other         SYS_REFCURSOR is of type java.sql.ResultSet data
control structure.                                          type custom parameter. You need to import
                                                            ‘java.sql.*’ in JRXML file. This has to be done by
CREATE        [OR      REPLACE]          PROCEDURE          editing XML file manually. You can create this by
proc_name [list of parameters]                              clicking the New Parameter button. If you have more
IS                                                          input parameters use ‘,’ as your delimiter as shown in
  Declaration section                                       the above example. Click Ok and proceed with the
BEGIN                                                       report design. In the designer window right click on
  Execution section                                         Fields and add click Add Fields and make sure all the
EXCEPTION                                                   field name matches the column name in your stored
 Exception section                                          procedure. Now right click on the parameters and add
END;                                                        the parameters matching the stored procedure NOTE:
                                                            make sure you uncheck the "Use for Prompt" in the
3.2 Benefits of Stored Procedures                           property for your out parameter in our example its
          Precompiled execution. SQL Server                 SYS_REFCURSOR is the out parameter. Drag and
compiles each stored procedure once and then                drop the fields in the report detail band.
reutilizes the execution plan. This results in
tremendous performance boosts when stored                   4. SYSTEM ARCHITECTURE AND ITS
procedures are called repeatedly.                           ADVANTAGES
Reduced client/server traffic. If network bandwidth is
a concern in your environment, you'll be happy to           4.1 Process of report generation
learn that stored procedures can reduce long SQL                     The system uses architecture of SpringMVC
queries to a single line that is transmitted over the       which is an open-source framework. Function
wire.                                                       modules of system can be divided into: user
          Efficient reuse of code and programming           management module, system management module,
abstraction. Stored procedures can be used by               project management module, schedule management
multiple users and client programs. If you utilize          module, query and statistics report module.
them in a planned manner, you'll find the                   SpringMVC framework is one of the best MVC
development cycle takes less time.                          frameworks by far, it has a strong Servlet control
          Enhanced security controls. You can grant         functions, its page navigation structure that based on
users permission to execute a stored procedure              xwork.xml configuration files is very clear, response
independently of underlying table permissions.              speed of its jump control function is also very fast.
                                                            And SpringMVC has a flexible view of expression
3.3 Using Stored Procedure with JasperReports


                                                                                                    986 | P a g e
Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering
         Research and Applications (IJERA)       ISSN: 2248-9622 www.ijera.com
                       Vol. 2, Issue 4, July-August 2012, pp.984-988
and can support for report output of JasperReports, so   type which is object-oriented, then return to the
that it can greatly simplify and speed up report         JasperReports to generate report view engine.
development[8].                                          Module 2 provides report templates in the form of
         System accesses data through SpringMVC          .JRXML file generated through iReport to
and Hibernate, besides SprongMVC will monitor the        JasperReports Engine.
request of Spring affairs. Business layer uses




construction function of Spring, we use it to manage
the data source and the establishment and recovery of    4.2 Advantages
database connection pool. Data persistent layer
integrates Hibemate in the SpringMVC framework.                    From figure 2 we can see that JasperReports
This has realized a changement from a relational         in the SpringMVC framework has two modules to
query to an object-oriented query, and Hibernate         generate a report: module 2 and module 3. If we
largely optimize a query process. Chart of system        want to develop different reports, only have to
framework and process of JasperReports generating        package the data in the module 2 into different
report shown in Figure 2.                                JavaBean data model, such a development process
          Figure 2 is divided into module 1,2 and 3.     well reflects parallel design pattern of the MVC, it
Module 1 has responsibility to accept request from       can greatly improve the development efficiency of
client and pass it to module 2. Module 1 basically       report. Module 3 realizes style design of reports by
forms Controller part of the MVC framework. Web          iReport, that's easy to design reports according to
application accepts HTTP requests from client passes     business needs, then enabling the division and
it to the Spring framework. Spring framework has a       parallel development of the data and view[10].
controller implementation for each type of request.                Data query module is extremely important
By analyzing the request and parameters packed with      module in this system. Data retrieving is done by this
the request, an appropriate call is made to the          module. Data retrieval is done using SQL stored
JasperReports Engine. JasperReports Engine is            procedure. Problem with JRXML file is that it needs
provided with DAO and path of .JRXML file.               to be compiled whenever any modifications are made
Compilation of the .JRXML file is responsibility of      to file. It is applicable even when query written to
JasperReports Engine. JasperReports Engine makes         access data is changed. Therefore if query keeps
call to database through DAO. Module 2 achieves          changing, we need to compile file the JRXML file as
data access and model package: integrate the             many times the query changes. On the other hand, if
Hibernate which is the open source O/R relational        we use stored procedure, we just need to make a call
mapping tools and bases on Spring framework,             from JRXML file and collect the records in Result
package the relationship data that obtained by JDBC      set. On the database side we change the logic in
connection pool into the object instance of JavaBean     stored procedure without disturbing JRXML file.



                                                                                                987 | P a g e
Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering
         Research and Applications (IJERA)       ISSN: 2248-9622 www.ijera.com
                       Vol. 2, Issue 4, July-August 2012, pp.984-988
When we change stored procedure, we can compile it
without restarting the database server. But if we              6.    Ming Xue, Changjun Zhu, Design and
change the JRXML file, we need to restart                            Implementation of the Hibernate Persistence
application server to compile it. We do not need to                  Layer Data ReportSystem Based on J2EE,
compile JRXML file as long procedure name and/or                     pp 232-235
its parameters do not change. Therefore it is good
option to use stored procedure to fill data in report.      Books:

5. CONCLUSION                                                  7.    Feng Zhang,Hong Wang,Jiao Zhu, Know-
         This paper mainly focuses on an open-                       how of Java Advanced (Beijing, Science
source reporting tool JasperReports and visual report                Press, 2008).
designer iReport. This data report system separates
report template from report data. This helps to                8.    Weiqing Sun, Java Web design and
achieve flexibility in reports. The report template can              development based on MVC (Beijing,
be changed irrespective of the report data displayed                 Electronic Industry Press, 2004).
by report. Stored procedures retrieve data to fill in the
report. Currently this idea has been applied to the
open-source SpringMVC framework. This data report           E-References:
system has helped to meet business needs of the
project and has provided a fast and scalable data              1.    Official     website     of    JasperReports.
report system.                                                       http://jasperreports.sourceforge.Net/, 2002.

REFERENCES                                                     2.    Reporting Made Easy with JasperReports
Journal Papers:                                                      and                               Hibernate
    1. Rong Li, Yuewei Ding, Xiaojun, Xu,                            http://xml.ulitzer.com/node/171467, 2007.
        Dynamic    Data    Report    Generation
        Technology based on XML, Micro-                        3.    Using JasperReports with Hibernate
        computer information, vol.12-3, pp.87-                       https://www.hibernate.org/79.html, 2007.
        89,2005.
                                                               4.    Stored    Procedures      and     Functions:
    2.   Lei Liu, Hong Liu, Huayu Wang, The                          http://www.roseindia.net, 2008
         research and implementation of reuse report
         generation system based on Component,                 5.    Stored Procedures: http://plsql-tutorial.com
         Min-microcomputer     system,     vol.24-4,
         pp.739-744,2003.                                      6.    How to call stored procedure that returns
                                                                     sys_refcursor      from     ireport 4.5.1:
    3.   Wenhao Cui, The research and application                    http://stackoverflow.com/, 2008
         of reports generation using JasperReports,
         Journal of Shenyang chemical Institute,               7.    How to call Stored Procedures from
         vol.22-2, pp.176-179, 2008.                                 JasperReports:
                                                                     http://itblackbelt.wordpress.com/2008/02/29
    4.   Li Feng, Wensheng Li, The design and                        /how-to-call-stored-procedures-from-
         implementation of J2EE-based object-                        jasperreports/, 2009
         oriented data report system, Computer
         system application, vol.2, pp.57-58,2006.             8.    SQL        Server     Stored    Procedures:
                                                                     http://databases.about.com,2009
    5.   Fangxia Zhang, Renjin Zhang, The Research
         and Application of JasperReports in Project
         Management System, OSSC-2009,,pp 56-59




                                                                                                   988 | P a g e

More Related Content

What's hot

Chapter01 introduction
Chapter01 introductionChapter01 introduction
Chapter01 introductionNgeam Soly
 
Database management system by Neeraj Bhandari ( Surkhet.Nepal )
Database management system by Neeraj Bhandari ( Surkhet.Nepal )Database management system by Neeraj Bhandari ( Surkhet.Nepal )
Database management system by Neeraj Bhandari ( Surkhet.Nepal )Neeraj Bhandari
 
1 introduction
1   introduction1   introduction
1 introductionNgeam Soly
 
Introduction to oracle(2)
Introduction to oracle(2)Introduction to oracle(2)
Introduction to oracle(2)Sumit Tambe
 
Concepts of NonStop SQL/MX: Part 4 - Storage.
Concepts of NonStop SQL/MX: Part 4 - Storage.Concepts of NonStop SQL/MX: Part 4 - Storage.
Concepts of NonStop SQL/MX: Part 4 - Storage.Frans Jongma
 
Database system-DBMS
Database system-DBMSDatabase system-DBMS
Database system-DBMSikjsamuel
 
Introduction to DBMS and SQL Overview
Introduction to DBMS and SQL OverviewIntroduction to DBMS and SQL Overview
Introduction to DBMS and SQL OverviewPrabu U
 
Oracle R12 OBIEE, Better Decisions Faster with Advanced Analytics
Oracle R12 OBIEE, Better Decisions Faster with Advanced AnalyticsOracle R12 OBIEE, Better Decisions Faster with Advanced Analytics
Oracle R12 OBIEE, Better Decisions Faster with Advanced AnalyticsSpiro (Stuart) Patsos
 
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objects
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objectsConcepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objects
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objectsFrans Jongma
 

What's hot (13)

Chapter01 introduction
Chapter01 introductionChapter01 introduction
Chapter01 introduction
 
Database management system by Neeraj Bhandari ( Surkhet.Nepal )
Database management system by Neeraj Bhandari ( Surkhet.Nepal )Database management system by Neeraj Bhandari ( Surkhet.Nepal )
Database management system by Neeraj Bhandari ( Surkhet.Nepal )
 
Chapter2
Chapter2Chapter2
Chapter2
 
Dbms Lecture Notes
Dbms Lecture NotesDbms Lecture Notes
Dbms Lecture Notes
 
1 introduction
1   introduction1   introduction
1 introduction
 
Introduction to oracle(2)
Introduction to oracle(2)Introduction to oracle(2)
Introduction to oracle(2)
 
Concepts of NonStop SQL/MX: Part 4 - Storage.
Concepts of NonStop SQL/MX: Part 4 - Storage.Concepts of NonStop SQL/MX: Part 4 - Storage.
Concepts of NonStop SQL/MX: Part 4 - Storage.
 
Database system-DBMS
Database system-DBMSDatabase system-DBMS
Database system-DBMS
 
Introduction to DBMS and SQL Overview
Introduction to DBMS and SQL OverviewIntroduction to DBMS and SQL Overview
Introduction to DBMS and SQL Overview
 
Ramij Raja CV
Ramij Raja CVRamij Raja CV
Ramij Raja CV
 
MFC Whitepaper
MFC WhitepaperMFC Whitepaper
MFC Whitepaper
 
Oracle R12 OBIEE, Better Decisions Faster with Advanced Analytics
Oracle R12 OBIEE, Better Decisions Faster with Advanced AnalyticsOracle R12 OBIEE, Better Decisions Faster with Advanced Analytics
Oracle R12 OBIEE, Better Decisions Faster with Advanced Analytics
 
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objects
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objectsConcepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objects
Concepts of NonStop SQL/MX: Part 2 - Introduction to catalogs and other objects
 

Viewers also liked

Instructivo seap codigoconducta
Instructivo seap codigoconductaInstructivo seap codigoconducta
Instructivo seap codigoconductaRobert Gallegos
 
Clase2
Clase2Clase2
Clase2UPTM
 
Manual projetor
Manual projetorManual projetor
Manual projetorIvo Silva
 
Identidad digital (t odas)
Identidad digital (t odas)Identidad digital (t odas)
Identidad digital (t odas)crisbarreiro09
 
Apresentação de Ganhos Blackdever
Apresentação de Ganhos BlackdeverApresentação de Ganhos Blackdever
Apresentação de Ganhos BlackdeverDenis Karnagge
 
Qualicorp unimed rio_adesao
Qualicorp unimed rio_adesaoQualicorp unimed rio_adesao
Qualicorp unimed rio_adesaoeasysaude
 
La importancia del dólar en el mercado mundial
La importancia del dólar en el mercado mundialLa importancia del dólar en el mercado mundial
La importancia del dólar en el mercado mundialjean paul
 
Plan nacional buen vivir 2013 2017
Plan nacional buen vivir 2013 2017Plan nacional buen vivir 2013 2017
Plan nacional buen vivir 2013 2017Robert Gallegos
 
Ecu codigo democracia_2009
Ecu codigo democracia_2009Ecu codigo democracia_2009
Ecu codigo democracia_2009Robert Gallegos
 
Prêmio colunistas projeto triumph
Prêmio colunistas   projeto triumphPrêmio colunistas   projeto triumph
Prêmio colunistas projeto triumph27082013
 

Viewers also liked (20)

Fc24961966
Fc24961966Fc24961966
Fc24961966
 
Eo24881888
Eo24881888Eo24881888
Eo24881888
 
Fl2410041009
Fl2410041009Fl2410041009
Fl2410041009
 
Fs2410401044
Fs2410401044Fs2410401044
Fs2410401044
 
Er31950953
Er31950953Er31950953
Er31950953
 
Śniadanie Daje Moc
Śniadanie Daje MocŚniadanie Daje Moc
Śniadanie Daje Moc
 
Instructivo seap codigoconducta
Instructivo seap codigoconductaInstructivo seap codigoconducta
Instructivo seap codigoconducta
 
Presentacio dimarts
Presentacio dimartsPresentacio dimarts
Presentacio dimarts
 
Justiça1
Justiça1Justiça1
Justiça1
 
Clase2
Clase2Clase2
Clase2
 
Manual projetor
Manual projetorManual projetor
Manual projetor
 
Castro antel
Castro antelCastro antel
Castro antel
 
Identidad digital (t odas)
Identidad digital (t odas)Identidad digital (t odas)
Identidad digital (t odas)
 
Apresentação de Ganhos Blackdever
Apresentação de Ganhos BlackdeverApresentação de Ganhos Blackdever
Apresentação de Ganhos Blackdever
 
Qualicorp unimed rio_adesao
Qualicorp unimed rio_adesaoQualicorp unimed rio_adesao
Qualicorp unimed rio_adesao
 
Plantar semillas
Plantar semillasPlantar semillas
Plantar semillas
 
La importancia del dólar en el mercado mundial
La importancia del dólar en el mercado mundialLa importancia del dólar en el mercado mundial
La importancia del dólar en el mercado mundial
 
Plan nacional buen vivir 2013 2017
Plan nacional buen vivir 2013 2017Plan nacional buen vivir 2013 2017
Plan nacional buen vivir 2013 2017
 
Ecu codigo democracia_2009
Ecu codigo democracia_2009Ecu codigo democracia_2009
Ecu codigo democracia_2009
 
Prêmio colunistas projeto triumph
Prêmio colunistas   projeto triumphPrêmio colunistas   projeto triumph
Prêmio colunistas projeto triumph
 

Similar to Fh24984988

Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applicationsinfopapers
 
Log Analysis Engine with Integration of Hadoop and Spark
Log Analysis Engine with Integration of Hadoop and SparkLog Analysis Engine with Integration of Hadoop and Spark
Log Analysis Engine with Integration of Hadoop and SparkIRJET Journal
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET Journal
 
Review on Automation Tool for ERD Normalization
Review on Automation Tool for ERD NormalizationReview on Automation Tool for ERD Normalization
Review on Automation Tool for ERD NormalizationIRJET Journal
 
IRJET- Resume Information Extraction Framework
IRJET- Resume Information Extraction FrameworkIRJET- Resume Information Extraction Framework
IRJET- Resume Information Extraction FrameworkIRJET Journal
 
Java Abs Java Productivity Creator & Analyzer
Java Abs   Java Productivity Creator & AnalyzerJava Abs   Java Productivity Creator & Analyzer
Java Abs Java Productivity Creator & Analyzerncct
 
business analysis-Data warehousing
business analysis-Data warehousingbusiness analysis-Data warehousing
business analysis-Data warehousingDhilsath Fathima
 
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...IRJET Journal
 
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCE
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCEHMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCE
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCEijujournal
 
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce ijujournal
 
Aucfanlab Datalake - Big Data Management Platform -
Aucfanlab Datalake - Big Data Management Platform -Aucfanlab Datalake - Big Data Management Platform -
Aucfanlab Datalake - Big Data Management Platform -Aucfan
 
1000 solved questions
1000 solved questions1000 solved questions
1000 solved questionsKranthi Kumar
 
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easyIEEEMEMTECHSTUDENTSPROJECTS
 
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEEFINALYEARSTUDENTPROJECTS
 
SAP ABAP Interview questions
SAP ABAP Interview questionsSAP ABAP Interview questions
SAP ABAP Interview questionsIT LearnMore
 

Similar to Fh24984988 (20)

Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applications
 
Log Analysis Engine with Integration of Hadoop and Spark
Log Analysis Engine with Integration of Hadoop and SparkLog Analysis Engine with Integration of Hadoop and Spark
Log Analysis Engine with Integration of Hadoop and Spark
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data Visualization
 
Review on Automation Tool for ERD Normalization
Review on Automation Tool for ERD NormalizationReview on Automation Tool for ERD Normalization
Review on Automation Tool for ERD Normalization
 
IRJET- Resume Information Extraction Framework
IRJET- Resume Information Extraction FrameworkIRJET- Resume Information Extraction Framework
IRJET- Resume Information Extraction Framework
 
Java Abs Java Productivity Creator & Analyzer
Java Abs   Java Productivity Creator & AnalyzerJava Abs   Java Productivity Creator & Analyzer
Java Abs Java Productivity Creator & Analyzer
 
business analysis-Data warehousing
business analysis-Data warehousingbusiness analysis-Data warehousing
business analysis-Data warehousing
 
Project Report on SAP
Project Report on SAPProject Report on SAP
Project Report on SAP
 
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...
Performance Enhancement using Appropriate File Formats in Big Data Hadoop Eco...
 
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCE
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCEHMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCE
HMR LOG ANALYZER: ANALYZE WEB APPLICATION LOGS OVER HADOOP MAPREDUCE
 
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce
HMR Log Analyzer: Analyze Web Application Logs Over Hadoop MapReduce
 
43_Sameer_Kumar_Das2
43_Sameer_Kumar_Das243_Sameer_Kumar_Das2
43_Sameer_Kumar_Das2
 
Jasper Reports.pptx
Jasper Reports.pptxJasper Reports.pptx
Jasper Reports.pptx
 
1000 sap-interview-qa
1000 sap-interview-qa1000 sap-interview-qa
1000 sap-interview-qa
 
BigDataDebugging
BigDataDebuggingBigDataDebugging
BigDataDebugging
 
Aucfanlab Datalake - Big Data Management Platform -
Aucfanlab Datalake - Big Data Management Platform -Aucfanlab Datalake - Big Data Management Platform -
Aucfanlab Datalake - Big Data Management Platform -
 
1000 solved questions
1000 solved questions1000 solved questions
1000 solved questions
 
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
 
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
 
SAP ABAP Interview questions
SAP ABAP Interview questionsSAP ABAP Interview questions
SAP ABAP Interview questions
 

Fh24984988

  • 1. Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 2, Issue 4, July-August 2012, pp.984-988 Report Generation System Using JasperReports and SQL Stored Procedure Bhushan S. Sapre*, Pankaj R. Ulhe**, Dr. B. B. Meshram*** *(Department of Computer Technology, Veetmata Jijabai Technilogical Institute, Matunga, Mumbai) **(Technical Specialist, Mastek Ltd., Seepz, Andheri, Mumbai) ***(Head of Dept. of Computer Technology, Veermata Jijabai Technological Institute, Matunga Mumbai) ABSTRACT The contents of this paper mainly focus elements and relationships, this is useful for making on study of the Report generation system using effective management decision[10]. JasperReports, an open-source reporting tool, for The traditional generation method of reports realization and implementation of dynamic and is relatively curable, once the system development reusable reports. Stored SQL procedures are used was completed, all reports’ formats are fixed. to retrieve data from database. iReport is a GUI Therefore it is not possible to change format of report based report designer assists the realization of the according to changes in circumstances and cannot reports. The separation of the report template customize them of personal fashion. When content or from report data provided by JasperReports has format of the report changes, we need to modify the provided ease of development and maintenance of code constantly to adapt changes which restricts reports in overall system. This report system is progress of the project. Therefore we generally use supported by Spring framework which provides XML documents to give the definition, using the idea Java environment of system. This data report of the separation of report format and report data. system can be used to generate reports Format module of reports extract XML format files dynamically and improve overall system’s from the template library of report format, data reusability and maintainability. module of reports extract relevant data from the database, finally, the report was compiled and Keywords - iReport, JasperReports, Stored displayed by reports builder[1]. However, this kind of Procedure reports needs to develop oriented database, resulting in reliance on the data source and reducing reuse and 1. INTRODUCTION portability of the reports.This paper focuses on Report is a self-explanatory statement of JasperReports, an open source reorting tool along facts relating to a specific subject and serves the with a GUI based report designer, iReport. It is purpose of providing information for decision combined with Hibernate to create dynamic and making and follow up actions. Report is an important reusable report generation system.In project which tool in project management, and its purpose is to help based on open-source framework of SpringMVC, we managers quickly grasp the raw data of the basic used this report system to generate reports and 984 | P a g e
  • 2. Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 2, Issue 4, July-August 2012, pp.984-988 invoices and successfully constructed a stable and library and apply it to any kind of Java application efficient system. process. iReport is distributed, and described by pure Java which correspondence with GNU General 2. THE CHOICE, ANALYSIS AND Public License. iReport provides a relatively perfect APPLICATION OF THE REPORT platform for visual editing of report template, using it BUILDER we just need a simple operation to design the demand interface. It can graphically edit JRXML documents 2.1 Working of JasperReports and support for PDF, RTF, XML, XLS, CSV, HTML With the development of open source and many other formats, and it also can support for software, especially Linux OS, open source software the realization of XML data sources. The relationship being gradually accepted and respected by the between the content and performance of report is people, it played an increasingly important role in IT. configured by JRXML file; this can bind different JasperReports is an open source report tool which domains and different databases, so that reports can written in pure Java, it can run on any Java- be applied under different datasource environment. application environment, including J2EE and other iReport also compiles JRXML file to form web applications[10]. ‘.JASPER’ file which is used to fill data from JasperReports has a good cross platform and datasource. This method provides separation between compatibility. It can dynamically display reports of template of the report and data of the report i.e. report various styles and formats. It also can display rich template is independent of the data displayed by the content of the page and convert these pages into report. It avoids complexity and is perfect for rapid XLS, RTF, PDF, HTML and XML format, showing production of the reports. its applicability. Moreover, iReport as a production tool of front-end interface, it has made a considerable 3. USE OF STORED PROCEDURE TO improvement by providing facility to create charts, FILL REPORTS sub-tables, meet schedules, and other more complex reports[3]. 3.1 Introduction to Stored Procedure Figure 1 describes the process of report A stored procedure is a subroutine available generation by JasperReports. Report generation starts to applications that access a relational database with JRXML file which is also called as Report system. A stored procedure or in simple a proc is a template. JRXML file contains the report structure named PL/SQL block which performs one or more information. JRXML file parsed by JRXmlLoader specific task. This is similar to a procedure in other and converted into JasperDesign Object. programming languages. A procedure has a header JasperDesign Object contains only design and a body. The header consists of the name of the information of the report. After compiling procedure and the parameters or variables passed to JasperDesign Object using JRCompiler it gets the procedure. The body consists or declaration converted into Jasper Report without Data. Now Data section, execution section and exception section filled into empty JasperReport Object using similar to a general PL/SQL Block. A procedure is RS(Result Set) and it will be converted into similar to an anonymous PL/SQL Block but it is JasperPrint Object. Form JasperPrint Object you have named for repeated usage. two options: JasperPrintManager from which you can Stored Routines (Procedures and Functions) print the report or view the report on the screen else are supported in version MySQL 5.0. Stored JasperExportManager from which you can export Procedure is a set of statements, which allow ease report in HTML, PDF, XLS format. and flexibility for a programmer because stored procedure is easy to execute than reissuing the 2.2 iReport: Visual Report Designer Studio number of individual SQL statements. Stored procedure can call another stored procedure also. Preocess of report generation starts from Stored Procedure can very useful where multiple JRXML file. This JRXML can be written manually client applications are written in different languages but it is complex and time consuming. Moreover we or it can be work on different platforms but they need need to learn how to structure JRXML file as per to perform the same database operations. syntax and semantics of JasperReports. Therefore we Store procedure can improve the choose iReport, a front page showing and producing performance because by using the stored procedure tool that matches with JasperReports[11]. less information needs to be sent between the server It is mainly used in the visual design and and the client. It increases the load on the database generation of JRXML file in statements form used by server because less work is done on the client side JasperReports, as JasperReports itself did not provide and much work is done on the server side. a good visual statements design tools, the appearance We can pass parameters to procedures in three ways, of iReport has just make up for the deficiencies. At viz. IN-parameters, OUT-parameters and INOUT- the same time, iReport can call the JasperReports parameters 985 | P a g e
  • 3. Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 2, Issue 4, July-August 2012, pp.984-988 The parameter list is available within the Jasper Reports is unable to call Oracle parentheses. Parameter can be declared to use any stored procedures directly, because procedures do not valid data type, except that the COLLATE attribute return standard result sets. As a solution, in Oracle, cannot be used. By default each parameter is an IN you can use a stored function to retrieve the results of parameter. For specifying other type of parameter a stored procedure. There are a few more steps to do used the OUT or INOUT keyword before the this than if you were able to use a stored procedure, parameter name. but it currently is the only option, if the query you An IN parameter is used to pass the value need to do can’t be done with a standard SQL query. into a procedure. The procedure can be change the In order to to use stored functions to retrieve the value but when the procedure return the value then result set of a stored procedure, you will need to use a modification is not visible to the caller. An OUT temp table to hold the results, and then return the parameter is used to pass the value from the results using types and tables of types. In iReport procedure to the caller but its visible to the caller. An designer go to Tools. Under Options, go to Classpath INOUT parameter is initialized by the caller and it Tab. Click Add JAR and add the OJDBC14.jar to the can be modified by the procedure, and any change classpath. Go to Query Executer tab and set the made by the procedure is visible to the caller. Language as PLSQL. Select Database JDBC For each OUT or INOUT parameter you Connection. Select Oracle as the JDBC Driver as have to pass a user defined variable because then the shown in the image below and verify the connection procedure returns the value then only you can obtain by clicking the Test button. Create a blank report by it values. But if you invoking the procedure from the giving a report name and save it. Open the report in other procedure then you can also pass a routine the designer and right click on the report name and parameter or variable as an IN or INOUT parameter. click on Edit Query. Call your procedure with in { } The procedure body contains the valid SQL a. {call procedure statement that can be a simple statement PUBLISHER_AND_BOOKS(&P(P_PUBLISHER_I like SELECT or INSERT or they can be a compound D), &P(ORACLE_REF_CURSOR))}. statement written using BEGIN and END. Compound P_PUBLISHER_ID is of type string and statement can consists declarations, loops or other SYS_REFCURSOR is of type java.sql.ResultSet data control structure. type custom parameter. You need to import ‘java.sql.*’ in JRXML file. This has to be done by CREATE [OR REPLACE] PROCEDURE editing XML file manually. You can create this by proc_name [list of parameters] clicking the New Parameter button. If you have more IS input parameters use ‘,’ as your delimiter as shown in Declaration section the above example. Click Ok and proceed with the BEGIN report design. In the designer window right click on Execution section Fields and add click Add Fields and make sure all the EXCEPTION field name matches the column name in your stored Exception section procedure. Now right click on the parameters and add END; the parameters matching the stored procedure NOTE: make sure you uncheck the "Use for Prompt" in the 3.2 Benefits of Stored Procedures property for your out parameter in our example its Precompiled execution. SQL Server SYS_REFCURSOR is the out parameter. Drag and compiles each stored procedure once and then drop the fields in the report detail band. reutilizes the execution plan. This results in tremendous performance boosts when stored 4. SYSTEM ARCHITECTURE AND ITS procedures are called repeatedly. ADVANTAGES Reduced client/server traffic. If network bandwidth is a concern in your environment, you'll be happy to 4.1 Process of report generation learn that stored procedures can reduce long SQL The system uses architecture of SpringMVC queries to a single line that is transmitted over the which is an open-source framework. Function wire. modules of system can be divided into: user Efficient reuse of code and programming management module, system management module, abstraction. Stored procedures can be used by project management module, schedule management multiple users and client programs. If you utilize module, query and statistics report module. them in a planned manner, you'll find the SpringMVC framework is one of the best MVC development cycle takes less time. frameworks by far, it has a strong Servlet control Enhanced security controls. You can grant functions, its page navigation structure that based on users permission to execute a stored procedure xwork.xml configuration files is very clear, response independently of underlying table permissions. speed of its jump control function is also very fast. And SpringMVC has a flexible view of expression 3.3 Using Stored Procedure with JasperReports 986 | P a g e
  • 4. Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 2, Issue 4, July-August 2012, pp.984-988 and can support for report output of JasperReports, so type which is object-oriented, then return to the that it can greatly simplify and speed up report JasperReports to generate report view engine. development[8]. Module 2 provides report templates in the form of System accesses data through SpringMVC .JRXML file generated through iReport to and Hibernate, besides SprongMVC will monitor the JasperReports Engine. request of Spring affairs. Business layer uses construction function of Spring, we use it to manage the data source and the establishment and recovery of 4.2 Advantages database connection pool. Data persistent layer integrates Hibemate in the SpringMVC framework. From figure 2 we can see that JasperReports This has realized a changement from a relational in the SpringMVC framework has two modules to query to an object-oriented query, and Hibernate generate a report: module 2 and module 3. If we largely optimize a query process. Chart of system want to develop different reports, only have to framework and process of JasperReports generating package the data in the module 2 into different report shown in Figure 2. JavaBean data model, such a development process Figure 2 is divided into module 1,2 and 3. well reflects parallel design pattern of the MVC, it Module 1 has responsibility to accept request from can greatly improve the development efficiency of client and pass it to module 2. Module 1 basically report. Module 3 realizes style design of reports by forms Controller part of the MVC framework. Web iReport, that's easy to design reports according to application accepts HTTP requests from client passes business needs, then enabling the division and it to the Spring framework. Spring framework has a parallel development of the data and view[10]. controller implementation for each type of request. Data query module is extremely important By analyzing the request and parameters packed with module in this system. Data retrieving is done by this the request, an appropriate call is made to the module. Data retrieval is done using SQL stored JasperReports Engine. JasperReports Engine is procedure. Problem with JRXML file is that it needs provided with DAO and path of .JRXML file. to be compiled whenever any modifications are made Compilation of the .JRXML file is responsibility of to file. It is applicable even when query written to JasperReports Engine. JasperReports Engine makes access data is changed. Therefore if query keeps call to database through DAO. Module 2 achieves changing, we need to compile file the JRXML file as data access and model package: integrate the many times the query changes. On the other hand, if Hibernate which is the open source O/R relational we use stored procedure, we just need to make a call mapping tools and bases on Spring framework, from JRXML file and collect the records in Result package the relationship data that obtained by JDBC set. On the database side we change the logic in connection pool into the object instance of JavaBean stored procedure without disturbing JRXML file. 987 | P a g e
  • 5. Bhushan S. Sapre, Pankaj R. Ulhe, Dr. B. B. Meshram / International Journal of Engineering Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com Vol. 2, Issue 4, July-August 2012, pp.984-988 When we change stored procedure, we can compile it without restarting the database server. But if we 6. Ming Xue, Changjun Zhu, Design and change the JRXML file, we need to restart Implementation of the Hibernate Persistence application server to compile it. We do not need to Layer Data ReportSystem Based on J2EE, compile JRXML file as long procedure name and/or pp 232-235 its parameters do not change. Therefore it is good option to use stored procedure to fill data in report. Books: 5. CONCLUSION 7. Feng Zhang,Hong Wang,Jiao Zhu, Know- This paper mainly focuses on an open- how of Java Advanced (Beijing, Science source reporting tool JasperReports and visual report Press, 2008). designer iReport. This data report system separates report template from report data. This helps to 8. Weiqing Sun, Java Web design and achieve flexibility in reports. The report template can development based on MVC (Beijing, be changed irrespective of the report data displayed Electronic Industry Press, 2004). by report. Stored procedures retrieve data to fill in the report. Currently this idea has been applied to the open-source SpringMVC framework. This data report E-References: system has helped to meet business needs of the project and has provided a fast and scalable data 1. Official website of JasperReports. report system. http://jasperreports.sourceforge.Net/, 2002. REFERENCES 2. Reporting Made Easy with JasperReports Journal Papers: and Hibernate 1. Rong Li, Yuewei Ding, Xiaojun, Xu, http://xml.ulitzer.com/node/171467, 2007. Dynamic Data Report Generation Technology based on XML, Micro- 3. Using JasperReports with Hibernate computer information, vol.12-3, pp.87- https://www.hibernate.org/79.html, 2007. 89,2005. 4. Stored Procedures and Functions: 2. Lei Liu, Hong Liu, Huayu Wang, The http://www.roseindia.net, 2008 research and implementation of reuse report generation system based on Component, 5. Stored Procedures: http://plsql-tutorial.com Min-microcomputer system, vol.24-4, pp.739-744,2003. 6. How to call stored procedure that returns sys_refcursor from ireport 4.5.1: 3. Wenhao Cui, The research and application http://stackoverflow.com/, 2008 of reports generation using JasperReports, Journal of Shenyang chemical Institute, 7. How to call Stored Procedures from vol.22-2, pp.176-179, 2008. JasperReports: http://itblackbelt.wordpress.com/2008/02/29 4. Li Feng, Wensheng Li, The design and /how-to-call-stored-procedures-from- implementation of J2EE-based object- jasperreports/, 2009 oriented data report system, Computer system application, vol.2, pp.57-58,2006. 8. SQL Server Stored Procedures: http://databases.about.com,2009 5. Fangxia Zhang, Renjin Zhang, The Research and Application of JasperReports in Project Management System, OSSC-2009,,pp 56-59 988 | P a g e