pentaho report

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Report » pentaho report 
Pentaho Reporting
License:
URL:http://reporting.pentaho.org/
Description:Pentaho Reporting is a collection of open source projects primarily focused on the creation, generation and distribution of rich and sophisticated report content from all sources of information.
Package NameComment
com.nwalsh.saxon Norman Walsh's Saxon Extensions Package

Norman Walsh's Saxon Extensions Package for Saxon 6.*

This package implements Saxon extensions for XSLT.

Copyright (C) 2000 Norman Walsh

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Except as contained in this notice, the names of individuals credited with contribution to this software shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the individuals in question.

Anything derived from this Software that is publically distributed will be identified with a different name and the version strings in any derived Software will be changed so that no possibility of confusion between the derived package and this Software will exist.

Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

com.nwalsh.xalan Norman Walsh's Xalan Extensions Package

Norman Walsh's Xalan Extensions Package for Xalan2

This package implements Xalan extensions for XSLT.

Copyright (C) 2000 Norman Walsh

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Except as contained in this notice, the names of individuals credited with contribution to this software shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the individuals in question.

Anything derived from this Software that is publically distributed will be identified with a different name and the version strings in any derived Software will be changed so that no possibility of confusion between the derived package and this Software will exist.

Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

com.pentaho.messages
com.pentaho.repository.dbbased.solution
com.pentaho.repository.subscribe
com.pentaho.security
com.pentaho.security.acls
com.pentaho.security.acls.voter
com.pentaho.security.jdbc
com.pentaho.security.ldap
com.pentaho.security.ldap.search
com.pentaho.security.ldap.transform
com.pentaho.security.memory
com.pentaho.security.utils
org.hibernate.connection
org.jfree.report Main classes in the JFreeReport class library.

Some rules when working with the report definition objects:

  • Functions cannot be added to the report once the report generation has started.
  • Do not modify the report structure after the report generation is started, unless you know exactly what you are doing.
  • It is safe to modify the report definition before the report is started.
  • Once the report processing has started, the report from the report processor must not be reused for other purposes.

Groups

A group is a set of database rows, where the contents of the group fields are equal for all rows.

Lets look at the following table:

CarColorPrice
Toyotablue10.000
Toyotablue20.000
Toyotared15.000
Lexusblue25.000
Lexusyellow15.000
BMWyellow40.000
BMWblue35.000
BMWgreen5.000

Groups are always defined on sorted tables. A group is defined by selecting one or more rows, which should form the group. A group instance will contain all rows from the beginning of the group until one of the group fields changes.

Lets select the row car for our group:

Selecting that row as group argument will result in 3 group instances. The first group instance will contain the first 3 rows (as the contents of these rows are equal).

The next instance will contain all rows of the "Lexus" car and the last group contains all rows from the "BMW" rows.

If a group is defined by more than one field, then the group will end, if one of the group member fields changes.

Lets define a group which consists of "Car" and "Color".

The first instance of the group will contain the first 2 rows (Toyota,blue). Then the value in the column "Color" changes, so a new group instance is started. This new group contains a single row, as the column "Car" in the next row will contain a different value.

The next two group instances are "Lexus, blue" and "Lexus, yellow", both group instances contain 1 row, as the color changes after 1 row.

The next row starts a new group, as the column "Car" contains a different value (BWM instead of Lexus). It doesn't matter, that the color is still equal, to end a group instance, it is sufficient that one column value changed.

org.jfree.report.data
org.jfree.report.elementfactory Factory classes which make creating bands and elements more easier. These factories are Java-Beans, so it is easy to use them in graphical editors.
org.jfree.report.event The report events in this package is used to inform the report's functions of the current state of the report.

The typical event sequence for a report

  • PageStarted
  • ReportStarted
  • GroupStarted*
  • ItemsStarted
  • ItemsAdvanced*
  • ItemsFinished
  • GroupFinished
  • ReportFinished
  • PageFinished
org.jfree.report.expressions
org.jfree.report.expressions.formula.sys
org.jfree.report.expressions.sys
org.jfree.report.filter Support for the creation of 'filter chains' used to transform data objects into other forms for presentation on reports.

Basic flow of data in JFreeReport

Three interfaces create the abstract way of the dataflow in JFreeReport.

DataSource

By default all data used in the report's elements is read from DataSource implementations. DataSource defines a single function called getValue() which returns the current value of the datasource. DataSources are stateless, and implementations should not maintain a state of the process of querying data. It is not guaranteed that DataSources are in a particular order. If you need to maintain a state or get informed of events, you should implement a function instead of using the DataSource interface.

DataTarget

A DataTarget is a container for a DataSource. A DataTarget queries the DataSource when it needs new data. All elements of the report implement the DataTarget interface and query its assigned DataSource whenever they need to print the data. DataTargets should not rely on the data type of the data returned by the DataSource. If they cannot handle the data returned by the DataSource, DataTargets should perform a controled way of errorhandling instead of just throwing exceptions. Some DataSources can return NullValues, so DataTargets will have to handle this case correctly.

DataFilter

A DataFilter is the conjunction of DataSource and DataTarget. If a DataFilter is queried to return a value, the request if forwareded to the assigned DataSource of the filter. The returned value is then processed and the result is returned.

FormatFilter and FormatParser

FormatFilter and FormatParsers are special implementations of the filter interface. Both of them are using an implementation of java.text.Format to perform parsing and formatting. Commonly used implementation are the SimpleDateFormat to format and parse java.util.Date objects and the DecimalFormat to parse and format Number instances.

A FormatFilter implementation will try to create a string representation of an object using the parse method of its assigned java.text.Format object. It is guaranteed that a FormatFilter will return a default not null String in case that getValue() returns invalid values. This default string is defined by setNullString (String).

A FormatParser implementation will try to parse a String read from its DataSource into an object. The actual work of parsing is delegated to the java.text.Formats parse method. If the string was null or invalid, and parsing was unable to create an object, a predefined value can be returned instead of null.

Common use cases of Filters

  • label

    The label prints predefined text in the report and is mostly used to name fields and columns

    The label uses a StaticDataSource to contain its datavalue. This DataSource is contained in the default StringFilter of org.jfree.report.TextElement. The TextElements StringFilter will convert the static value into a string before it gets printed in the report.

  • number-field

    The number field reads its value from the reports datasource and formats the value using a decimal format, before the string representation is printed.

    The number-field uses a ReportDataSource to obtain values from the reports datamodel. These values are fed into a NumberFormatFilter, where they get formated using the java.text.DecimalFormat, resulting in a string. The TextElement will check the returned value, as this is a string, nothing is done and the string is printed.
    In case the NumberFormat failed to format the value read from the source, it would return a null value to the TextElement to be printed. Now the TextElement's StringFilter will check the value, and return the predefined NullValue-String instead of null.

  • date-function

    The date function field queries the results of a function, and formats the function's return value into a string. The contents of this string can be defined using a format pattern as defined in java.text.SimpleDateFormat.

    The date-function uses a FunctionDataSource to obtain values from the reports function collection. These values are fed into a SimpleDateFormatFilter, where they get formated using the java.text.SimpleDateFormat, resulting in a string. The TextElement will check the returned value, as this is a string, nothing is done and the string is printed.
    In case the DateFormat failed to format the value read from the source, it would return a null value to the TextElement to be printed. Now the TextElement's StringFilter will check the value, and return the predefined NullValue-String instead of null.

These examples should give an idea what can be done with the filters. As filters can contain other filters, you are free to create any combination and put them into the elements.

DataRowConnectable

Elements are connected to the Report's DataSources using a DataRow as connector. The DataRow unifies the access to functions, expressions and the tablemodel. DataSources that need to access one of these sources should use the DataRowDataSource as primary datasource. The specialized sources for accessing Functions and the Reports TableModel should not be used.

org.jfree.report.filter.templates Some predefined filter templates. Templates describe common use cases for filters to ease up the composition of report elements.

The template implementation provide a simple, bean like blackbox interface to the used DataSources and DataFilters and their properties.

org.jfree.report.flow
org.jfree.report.flow.flowing
org.jfree.report.flow.layoutprocessor
org.jfree.report.flow.paginating
org.jfree.report.flow.raw
org.jfree.report.flow.streaming
org.jfree.report.function The function package contains statefull functions and stateless expression for JFreeReport.

The following lines apply to both functions and expressions.

JFreeReport supports 2 kinds of userdefined calculations: Functions are statefull calculations, when the report proceedes they change their state, they sum up, calculate averages, count etc. Statefull means in that case, given you feed the same event multiple times into the function,you are not guaranteed to get the same result.

Expressions in contrast do not maintain a state, they calculate a value or change the report-elements depending on the current Event feed to them. If you feed the same Event into the Expression multiple times, you will always get the same result.

Common to both variants is: Data is fed into the function/expression by using a DataRow object. This object provides the (among others) these methods

  • Object get(String name);
  • Object get(int columnName);
to read the values of a function, expression, a column from the tablemodel or a ReportProperty.

Expressions are simple and easily explained: Expression have the method

Object getValue() which is called when the expression is queried. All expression have to override this method to perform the calculation and to return the value.

Functions are more complex:
Functions have several notification methods, where the system informs the function that a new event is processed.

  • public void pageStarted (ReportEvent event);
  • public void reportStarted (ReportEvent event);
  • public void groupStarted (ReportEvent event);
  • public void itemsStarted (ReportEvent event);
  • public void itemsAdvanced (ReportEvent event);
  • public void itemsFinished (ReportEvent event);
  • public void groupFinished (ReportEvent event);
  • public void reportFinished (ReportEvent event);
  • public void pageFinished (ReportEvent event);
By using the Event-object, you have access to the ReportState. The state can be used for getting the current group, current item and for gaining access to the dataRow. In case you want to manipulate the ReportElements, you also have access to the JFreeReport object.

Functions live in an own environment, separated from the outside world. Changing the original JFreeReport object does not affect the inner JFreeReport-Object. You are also unable to add new Functions or expressions to the report from inside, so all functions and expression have to be set before the report processing has begun.

All Functions have to be cloneable. It is not guaranteed that the report is processed in an linear order, but it is guaranteed that a single instance of a function does pass a reportstate only once.

That means: When processing the report, the system clones the functions on certain save-points (for instance whenever a page is finished). This saved copy can later be used to restart the report processing on that saved point. The copy-state made will never return to a previous save point, but it can (and certainly will occur) that this copy is used to process the report from that saved point on.

So when saving a state after page 2, it will never happen, that this page-2-copy gets used to process page 2 a second time, but it could happen that copies of this page-2-state process the page 3 again and again.

The best way to avoid cloning problems is to use Unmodifiable objects or primitive datatypes when storing a state. Using java.lang.String, one of the java.lang.Number implementers or any other unmodifiable object type is always save. If you use complex objects, lists or hashtables and you get weird results, try to implement a deep-object-copy in the clone() method of the function for these objects.

Using the functions

The function implementation is loaded via its default constructor by the report parser, all function implementations which should be used from within the xml-definitions must define a public default constructor. The functions implementation is defined by specifiying the "class" attribute of the "function" tag and is loaded by using the default class loader. Your function implementation must be in the classloaders classpath.

As with every function, a single function can return one value, something mathematicans express like y = f(x) where x is the data from your report processing.

A function is called several times, for every state change (whenever the report advances) one of the ReportListener methods are called (reportStarted, groupStarted etc). Expressions do not receive events, they just perform their computations based on the current state.

The functions value is returned by the "getValue()" function. You can return any Object, but make sure, that this object does not get modified anymore after it was returned to the caller. (A simple way to obey to this rule is to create a new object whenever the computed object changes).

Functions may reuse results from other functions by using and querying the DataRow object supplied in the report state or the function.

The order of the functions and the order for receiving events is undefined for functions of the same dependency level. So if you define a function which reads values from an other function, it is wise to define the dependencies for these functions.

Defining dependencies is easy: A function with an higher dependency is called before any function with a lower dependency. By default all user functions have the dependency of "0", the lowest possible level. The dependency is defined by specifying the "deplevel" attribute of the function or expression tag.

When using the API, the dependency level is read by "getDependencyLevel()" and can be set with "setDependencyLevel(int)".

For the example above, the caller function would have the dependency level of '0' and the called function the level of '1' or higher.

org.jfree.report.function.bool
org.jfree.report.function.date
org.jfree.report.function.formula
org.jfree.report.function.numeric
org.jfree.report.function.strings
org.jfree.report.function.sys
org.jfree.report.i18n
org.jfree.report.layout Banded layout management. BandLayoutManagers perform the layouting task for within a band for all Elements and Bands contained in the Band. The concept is shamelessly stolen from AWT, as it seems to produce better (and more flexible) results than trying to hardcode an algorithm.

BandLayoutManager should be defined for bands by using the StyleKey BandStyleSheet.LAYOUTMANAGER. The defined Layoutmanager are only usefull for PageableReportProcessors or similiar targets, where bands are mapped into a static coordinate space.

org.jfree.report.layout.model
org.jfree.report.layout.model.context
org.jfree.report.layout.output
org.jfree.report.layout.process
org.jfree.report.layout.process.alignment
org.jfree.report.layout.process.layoutrules
org.jfree.report.layout.process.linebreak
org.jfree.report.layout.process.valign
org.jfree.report.layout.style
org.jfree.report.layout.text
org.jfree.report.modules.data.beans
org.jfree.report.modules.data.sql
org.jfree.report.modules.factories.data.base
org.jfree.report.modules.factories.data.beans
org.jfree.report.modules.factories.data.sql
org.jfree.report.modules.factories.report.base
org.jfree.report.modules.factories.report.compatibility.extended
org.jfree.report.modules.factories.report.compatibility.simple
org.jfree.report.modules.factories.report.flow
org.jfree.report.modules.factories.report.simplex
org.jfree.report.modules.gui.base

This module provides basic preview capabilities for JFreeReport. The preview components use worker threads to perform the pagination and exports.

The various export dialogs will register at this module an plug their functionality into the preview components.

The preview components should be closed when they are no longer used, by calling "close()" to shutdown the workerthreads and to free the used resources.

This module requires the Graphics2D output target to be present.

Configuration keys:

Property name Type Description
org.jfree.report.modules.gui.base.PreviewBase.ToolbarFloatable boolean Defines, whether the toolbar will be floatable. This is not enabled by default.
org.jfree.report.modules.gui.base.PreferredWidth relative-int Defines a preferred size for the preview frame. Both width and height must be set, proportional values are allowed (100%, 90% etc). They have the same syntax as the proportional values in the xml definition.
org.jfree.report.modules.gui.base.PreferredHeight relative-int Defines a preferred size for the preview frame. Both width and height must be set, proportional values are allowed (100%, 90% etc). They have the same syntax as the proportional values in the xml definition.
org.jfree.report.modules.gui.base.MaximumWidth relative-int Defines a maximum size for the preview frame. Both width and height must be set, proportional values are allowed (100%, 90% etc). They have the same syntax as the proportional values in the xml definition.
org.jfree.report.modules.gui.base.MaximumHeight relative-int Defines a maximum size for the preview frame. Both width and height must be set, proportional values are allowed (100%, 90% etc). They have the same syntax as the proportional values in the xml definition.
org.jfree.report.modules.gui.base.EncodingsAvailable string

The property that defines which encodings are available in the export dialogs. This property defaults to "all" and can be set to either "all", "none" or "file".

If the property is set to "file", then the list of available properties is read from the file defined in the property "org.jfree.report.encodings.file".

org.jfree.report.modules.gui.base.EncodingsFile string

The name of the properties file used to define the available encodings. The property points to a resources in the classpath, not to a real file!

This setting defaults to "/org/jfree/report/modules/gui/base/components/jfreereport-encodings.properties"

org.jfree.report.modules.gui.base.SwingDialogTranslation boolean Defines, whether to translate the default components of Swing. This is disabled by default
org.jfree.report.modules.gui.base.actions
org.jfree.report.modules.gui.base.internal
org.jfree.report.modules.gui.common
org.jfree.report.modules.gui.commonswing
org.jfree.report.modules.gui.commonswing.localization
org.jfree.report.modules.gui.config The configuration editor provides a gui to write the "jfreereport.properties" file that can be used to configure this library.
org.jfree.report.modules.gui.config.editor Module editor implementations. Module editors are used to edit the report configuration for a certain module.
org.jfree.report.modules.gui.config.model Tree and list models used in the configuration editor.
org.jfree.report.modules.gui.config.xml XML support classes for the configuration editor.
org.jfree.report.modules.gui.converter The report converter can be used to convert a simple report format definition into the extended report format. It is also suitable for converting old extended reports from version 0.8.3 or lower to the new 0.8.4 namespace.
org.jfree.report.modules.gui.converter.components Swing support classes for the report converter.
org.jfree.report.modules.gui.converter.parser An SAX parser proxy implementation, which translates attribute values depending on the current context of the parser.
org.jfree.report.modules.gui.csv

An CSV export module. The module registers itself during the module initialization in the preview frame.

The module contains support for raw and layouted csv exports. In the raw mode, the current data row will be written to the file, while the layouted mode tries to preserve the layout in the exported file.

As with all table style exports, this target does not support overlapping elements. If two elements request the same cell, the first element wins.

For best layouted results, you should use the excel export target.

org.jfree.report.modules.gui.html

An HTML export module. The module registers itself during the module initialization in the preview frame.

The module supports both HTML 4.01 and XHTML 1.0 output.

As with all table style exports, this target does not support overlapping elements. If two elements request the same cell, the first element wins.

This target supports three modes.

  • Stream mode

    prints all content into a single stream. Generated images will be ignored and the stream contains an inlined stylesheet definition. External images loaded by an file or http url will be referenced in the stream, all other internally generated image content will be discarded.

  • Directory export

    Writes the content and all external content into a directory. The report contents will be written into a single file, while any external content will be written into a separate data directory. This output mode will generate PNG files for all internal images; external images can be copied into the output directory.

  • ZIP Directory export

    Provides the same features as the directory export, but will generate the contents within a ZIP file.

org.jfree.report.modules.gui.pdf

An PDF export module. The module registers itself during the module initialization in the preview frame.

The export is done by using iText; Image content will be recoded to PNG if necessary.

org.jfree.report.modules.gui.plaintext

An plain text export module. The module registers itself during the module initialization in the preview frame.

This output target does not support any graphics. The font will be fixed size, the font size is defined by the output target, not the elements. All elements use the same font. Elements which are smaller than the used font size, will not be printed.

This is no general purpose export, and reports using this export should be carefully designed to suit this export target.

org.jfree.report.modules.gui.print

An AWT printing support module. The module registers itself during the module initialization in the preview frame.

org.jfree.report.modules.gui.rtf
org.jfree.report.modules.gui.swing.common
org.jfree.report.modules.gui.swing.common.localization
org.jfree.report.modules.gui.swing.html
org.jfree.report.modules.gui.swing.pdf
org.jfree.report.modules.gui.swing.preview
org.jfree.report.modules.gui.swing.preview.actions
org.jfree.report.modules.gui.swing.printing
org.jfree.report.modules.gui.xls

An excel export module. The module registers itself during the module initialization in the preview frame.

The export is done using the Apache POI library. This library does not support images.

As with all table style exports, this target does not support overlapping elements. If two elements request the same cell, the first element wins.

org.jfree.report.modules.misc.autotable
org.jfree.report.modules.misc.autotable.flow
org.jfree.report.modules.misc.autotable.xml
org.jfree.report.modules.misc.beanshell Support for the BeanShell expression and beanshell scripting support.
org.jfree.report.modules.misc.bsf
org.jfree.report.modules.misc.configstore.base Base classes for the config store system. This module provides base services to save property files in a plattform and java vm version independent way.
org.jfree.report.modules.misc.configstore.filesystem Supports storing the configuration settings into the local filesystem.
org.jfree.report.modules.misc.datafactory
org.jfree.report.modules.misc.datafactory.sql
org.jfree.report.modules.misc.referencedoc Classes which generate reference documentation for the extended xml parser.
org.jfree.report.modules.misc.survey
org.jfree.report.modules.misc.tablemodel TableModel support classes. The SQL support is now a native part of JFreeReport, and there is no need for ResultSetTableModels at all.
org.jfree.report.modules.output.csv A plain CSV output. This output dumps the datarow (all values from Table and functions).

The first column is the group index, the second column is the report event which created this line. All other columns contain the contents of the datarow.

-1, report-header, column1 , column2, ...
0, group-header, column1 , column2, ...
0, itemband, column1 , column2, ...
..
..
..
0, group-footer, column1 , column2, ...
-1, report-footer, column1 , column2, ...
org.jfree.report.modules.output.pageable.base Support for the output targets that are page- and print oriented.

Currently Graphics2D, PDF and PlainText output are supported by this implementation.

org.jfree.report.modules.output.pageable.graphics Graphics2D report generation classes and the G2OutputTarget. Needed for printing and the report preview.
org.jfree.report.modules.output.pageable.graphics.internal
org.jfree.report.modules.output.pageable.pdf PDF export classes and the PDF output target.
org.jfree.report.modules.output.pageable.pdf.internal
org.jfree.report.modules.output.pageable.plaintext PlainText export target module.

Depends on

  • org.jfree.report.module.output.pageable.base.PageableBaseModule
org.jfree.report.modules.output.pageable.plaintext.driver
org.jfree.report.modules.output.pageable.plaintext.helper
org.jfree.report.modules.output.support.itext Support for iText fonts.

iText uses a set of own font descriptions and does heavily depend on PDF specific features even in generic classes. This package encapsulates all tasks required to create iText fonts.

org.jfree.report.modules.output.table.base

Common base classes for the table style output targets.

Limitations

The TableExports add several restrictions to the report layouts.

Report elements must not overlay each other. It is ok for bands, but the actual data must never overlap. Once a cell is occupied, it cannot be redefined to contain data from other elements. CellData cannot be combined.

Backgrounds can only be defined for the complete cell.

How does the table export work?

All table targets use a two step process to create the output. In the first step, the layout is computed and styles information is collected. The style information will later be reused to form cascading stylesheets or to fill the Excel style tables.

Cell backgrounds are computed during the pagination phase and are stored in the SheetLayout; The content itself is only stored during the content-generation phase and is held in the TableContentProducer. Once the page is completed the computed content and the sheet-layout instace are forwarded to the Output-processor implementations.

org.jfree.report.modules.output.table.csv Layouted CSV output.
org.jfree.report.modules.output.table.csv.helper
org.jfree.report.modules.output.table.html The HTML4 and XHTML output target.

Supported Properties:

  • Author
  • Encoding
  • Title
  • GenerateXHTML
  • StrictLayout
  • BodyFragment
org.jfree.report.modules.output.table.html.helper
org.jfree.report.modules.output.table.html.util
org.jfree.report.modules.output.table.rtf RTF file output, using iText (requires at least version 1.1).

The cell height cannot be defined directly. The only way of influencing the height of a cell is by defining a font for the cell.

The current implementation is not suited for huge documents, as the whole document is held in memory until the complete table was created. This implementation will be fixed in the future.

If possible, use the HTML export to create reports that can be used in a word processor.

org.jfree.report.modules.output.table.rtf.helper
org.jfree.report.modules.output.table.xls The Excel output target.

This target uses the POI library.

org.jfree.report.modules.output.table.xls.helper
org.jfree.report.modules.output.xml The XML output generates a xml representation of the generated output. This example is a small educational outputtarget, to show the global concepts of the OutputProcess. It is kept small and simple.

The target consists of 2 parts. The XMLProcessor is used to prepare the report and to initialize the XMLWriter.

The XMLProcessor

The XMLProcessor instantiates the XMLWriter. The Processor is also used to repaginate the report; this is the report preparation process which calculates function values and resolves function dependencies. Finally, the last report processing run activates the XMLWriter, which writes the generated output to a java.io.Writer.

The XMLWriter

The XMLWriter is a report function. For every received event, the to be printed band is simply written as XML-Stream.
org.jfree.report.modules.parser.base Classes for reading XML-based report definitions.

At the moment two report definition formats are supported, the simple profile is a simplified model of the report definition. Although it does not support all advanced features, its simple structure helps to understand the basic report process and makes it possible to easily write report definitions.

The second parser uses a more complex model, which describes the report is a very detailed way. Due to the low level orientation of the report definition format, writing report definition is more complicated and requires detailed knowledge of the object structures used in JFreeReport. Its more generalized structure allows to define every aspect of the report definition and makes it possible to use all implemented features of JFreeReport.

org.jfree.report.modules.parser.base.common
org.jfree.report.modules.parser.ext The base package for the JFreeReport "extended" parser.

An extensible report definition parser. The parser uses a generic report definition syntax to fully describe the report. The parser heavily relies on factories to create elements and objects.

The used generic approach leads to a complex and very complex and technically detailed report definition, which can be confusing and difficult to use for human authors.

The DTD for the reportdefinition files can be found at http://jfreereport.sourceforge.net/extreport.dtd or in the distribution package.

The document type declaration for this definition type is

<!DOCTYPE report-definition
  PUBLIC "-//JFreeReport//DTD report definition//EN//extended"
         "http://jfreereport.sourceforge.net/extreport.dtd">

The template inheritance is implemented using various instances of the same template class with variing parameter fill level.

ParserHints used by this parser:

JFreeReport-objectext.parser.parser-config.objectfactoriesjava.util.ListA list containing the class names of all used object factories.JFreeReport-objectext.parser.parser-config.stylekeyfactoriesjava.util.ListA list containing the class names of all used stylekey factories.JFreeReport-objectext.parser.parser-config.templatefactoriesjava.util.ListA list containing the class names of all used template factories.JFreeReport-objectext.parser.parser-config.datasourcefactoriesjava.util.ListA list containing the class names of all used datasource factories.JFreeReport-objectext.parser.parser-config.elementfactoriesjava.util.ListA list containing the class names of all used element factories.JFreeReport-objectext.parser.template-definitionjava.util.ListA list containing all predefined templates.JFreeReport-objectparser.typejava.lang.StringA string marking the type of the parser that was used to create the report. The ext-parser uses "org.jfree.report.modules.parser.ext" and the simple parser uses "org.jfree.report.modules.parser.simple".Element, TemplateDescriptionext.parser.template-referencejava.lang.StringContains the name of the referenced template.JFreeReport-objectext.parser.template-definitionjava.util.ListContains the defined template descriptions.
Bound to HintName HintType Description

org.jfree.report.modules.parser.ext.factory.base Object descriptions for the parser.
org.jfree.report.modules.parser.ext.factory.datasource The {@link org.jfree.report.modules.parser.ext.factory.datasource.DataSourceFactory} interface and related classes.

The DataSourceFactory is used to describe and create @link org.jfree.report.filter.DataSource} implementations. The DataSource description is provided as ObjectDescription; as all DataSources have Getter and Setter methods defined to access their properties, generic BeanDescriptions are used to descripe the data sources.

org.jfree.report.modules.parser.ext.factory.elements The {@link org.jfree.report.modules.parser.ext.factory.elements.ElementFactory} interface and related classes.

The Element factory is used to create Elements based on their content type.

org.jfree.report.modules.parser.ext.factory.objects The {@link org.jfree.xml.factory.objects.ClassFactory} interface and related classes.

The {@link org.jfree.xml.factory.objects.ClassFactory} and the {@link org.jfree.xml.factory.objects.ObjectDescription} are used to descripe, generate and serialize objects in a generalized way.

ObjectDescriptions are used to descripe the properties of an object. The properties can either be an primitive object (String, Long, Integer, Short, Byte, Character, Boolean) or an compound object. Compound objects may have other primitive or compound objects defined as properties.

You may use the ObjectReferenceGenerator to create the Reference-Documentation for all known Object-Description implementations.

org.jfree.report.modules.parser.ext.factory.stylekey The {@link org.jfree.report.modules.parser.ext.factory.stylekey.StyleKeyFactory} interface and related classes.

The StyleKeyFactory is used to create StyleKeys in a generic way.

You may use the StyleKeyReferenceGenerator to create the Reference-Documentation for all known StyleKey-Description implementations.

org.jfree.report.modules.parser.ext.factory.templates The {@link org.jfree.report.modules.parser.ext.factory.templates.TemplateDescription} interface and related classes.

Templates are Facade implementations for the low level DataSources. Templates implement the common use-cases for DataSources.

org.jfree.report.modules.parser.ext.readhandlers
org.jfree.report.modules.parser.extwriter Support for writing {@link org.jfree.report.JFreeReport} instances to a character stream in XML format. This package also contains a utility application for converting the old XML format into the new XML format.

The ReportConverter can either be used in command line mode (class org.jfree.report.modules.parser.extwriter.ReportConverter) or with a simple GUI implementation (class org.jfree.report.modules.gui.converter.ReportConverterGUI).

org.jfree.report.modules.parser.extwriter.sql
org.jfree.report.modules.parser.extwriter.staticdata
org.jfree.report.modules.parser.simple A simple report definition parser. The parser uses a simplified report definition syntax, but does not support all features of JFreeReport and is unable to define complex layouts.

The DTD for the reportdefinition files can be found at http://jfreereport.sourceforge.net/report.dtd or in the distribution package.

The document type declaration for this definition type is

<!DOCTYPE report-definition
  PUBLIC "-//JFreeReport//DTD report definition//EN//simple"
         "http://jfreereport.sourceforge.net/report.dtd">
org.jfree.report.modules.parser.simple.readhandlers
org.jfree.report.modules.parser.sql
org.jfree.report.modules.parser.staticdata
org.jfree.report.modules.preferences.base Base classes for the config store system. This module provides base services to save property files in a plattform and java vm version independent way.
org.jfree.report.modules.preferences.filesystem Supports storing the configuration settings into the local filesystem.
org.jfree.report.resourceloader
org.jfree.report.states States used in the JFreeReport state transition diagram.

General report processing

All reports are processed by advancing from one report state to another state. Reporting always starts with a start state and ends with a finish state. Whenever a state advances, the internal state of the state-object should change. If the internal state does not change, the process is caught in an infinite loop and must be interrupted. State-advances are tested by using the ReportState.isProceeding method.

Some report states fire events when they advance into another state. These events are used to inform the report-functions that a certain report processing level has been reached. The only valid receiver of ReportEvents are Expressions and Functions.

Start-State

The start state is the first state of the report processing process and the only state that can be created without having a previous state.

Events fired: During the advance process, a ReportEvent is fired to inform the state-clients that the report processing has started. ReportListener.reportStarted (ReportEvent) is called for all registered listeners.

Advances to: This state advances into the PreGroupHeader state.


PreGroupHeader-State

The PreGroupHeader marks the beginning of a new group. When this state advances, the group is activated and the groupheader of this group should be processed. The system will activate all defined groups before starting to process the items.

Events fired: During the advance process, a ReportEvent is fired to inform the state-clients that a new group has started. ReportListener.groupStarted (ReportEvent) is called for all registered listeners. The currently active group can be queried by using ReportState.getCurrentGroupIndex().

Advances to: This state advances into the PostGroupHeader state.


PostGroupHeader-State

If there are more groups to activate for the current report, the PostGroupHeader will activate those groups by advancing into a new PreGroupHeader state. If all groups are activated, the PostGroupHeader-state will start the ItemProcessing by advancing into a PreItemGroup state.

Events fired:none

Advances to:Either PreGroupHeader or PreItemGroup state.


PreItemGroup-State

This state is used to inform every listener that the ItemProcessing is about to start. At this moment, all groups have been activated. On advance, the ItemStarted event is fired. If there is at least one row to print, this state advances into InItemGroup-state, else this state continues at the PostItemGroup state. The direct advancement into PostItemGroup should only happen if the given TableModel does not contain any rows.

Events fired:ItemStarted

Advances to:Either InItemGroup or PostItemGroup state.


InItemGroup-State

The report engine is now processing the group items. When advancing, a ItemsAdvanced event is fired. Then state advances into a InItemGroup state as long as the current group is valid and the end of the report has not been reached. A group is valid as long as the contents of the fields assigned to the group do not change. As long as the group is valid, this state advances to InItemGroup-state and increases the current row of the DataRow. If the group is no longer valid, this state advances into a PostItemGroup state.

Events fired:ItemsAdvanced. The datarow is automaticly adjusted to reflect the new row. The current row number can be queried by using ReportState.getCurrentRow().

Advances to:Either PostItemGroup or InItemGroup state.


PostItemGroup-State

This state is used to inform every listener that the ItemProcessing is now finished. The advancing will fire the ItemsFinished event and then proceed to PreGroupFooter.

Events fired:ItemsFinished

Advances to:PreGroupFooter


PreGroupFooter-State

The current group is now finished. The GroupFooter should be printed. This state fires the GroupFinished event and then advances to PostGroupFooter.

Events fired:GroupFinished

Advances to:PostGroupFooter


PostGroupFooter-State

This state closes the current group. After that group is closed, the report engine checks if there are more open groups, which are invalid and should be closed. A group is valid as long as the contents of the fields assigned to the group do not change. In this case, the state advances to PreGroupFooter for the to be closed group.

If there is no group that should be closed and there are more rows to process, the next sub-group is opened and the state advances into PreGroupHeader for the new group.

If there are no more groups active and there are no rows to process, then the report processing is almost finished and the state advances to PreReportFooter.

Events fired:none

Advances to:PreGroupHeader, PreGroupFooter or PreReportFooter.


PreReportFooter-State

Now the report is almost finished. The last task to be done is the processing of the ReportFooter. On advance the ReportFinished event is fired and then the state advances into the FinishState.

Events fired:ReportFinished

Advances to:FinishState


Finish-State

This state does not advance and fires an ReportProcessingException when it should advance.

Events fired:none

Advances to:none


org.jfree.report.states.datarow
org.jfree.report.states.process
org.jfree.report.structure
org.jfree.report.style Style sheets for elements and bands.
org.jfree.report.util Common utility classes.
org.jfree.report.util.beans Bean and property support classes.
org.jfree.report.util.geom Strict (fixed point) arithmetics classes for the layouting engine. Using float or double is (sadly) unreliable, as most operation create rounding errors. Although fixed point arithmetics also create errors on certain operations, these errors can be tracked down easier than with floats or doubles.
org.jfree.report.util.i18n
org.jfree.report.util.serializers Handler classes for the SerizalizeHelper.
org.pentaho.core.admin.datasources
org.pentaho.core.admin.datasources.jboss
org.pentaho.core.audit
org.pentaho.core.cache
org.pentaho.core.component
org.pentaho.core.output
org.pentaho.core.publisher
org.pentaho.core.repository
org.pentaho.core.repository.content
org.pentaho.core.runtime
org.pentaho.core.services
org.pentaho.core.session
org.pentaho.core.solution
org.pentaho.core.subscribe
org.pentaho.core.subscribe.quartz
org.pentaho.core.system
org.pentaho.core.ui
org.pentaho.core.util
org.pentaho.data
org.pentaho.data.connection.hql
org.pentaho.data.connection.javascript
org.pentaho.data.connection.mdx
org.pentaho.data.connection.sql
org.pentaho.data.connection.xquery
org.pentaho.designstudio.controls
org.pentaho.designstudio.editors.actionsequence
org.pentaho.designstudio.editors.actionsequence.actions
org.pentaho.designstudio.editors.actionsequence.mql
org.pentaho.designstudio.editors.actionsequence.pages
org.pentaho.designstudio.editors.actionsequence.pages.actions
org.pentaho.designstudio.editors.actionsequence.pages.actions.details
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.charts
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.kettle
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.query
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.reports
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.scheduling
org.pentaho.designstudio.editors.actionsequence.pages.parameters
org.pentaho.designstudio.editors.actionsequence.popup.actions
org.pentaho.designstudio.editors.actionsequence.preferences
org.pentaho.designstudio.editors.actionsequence.wizards
org.pentaho.designstudio.editors.reportwizard
org.pentaho.designstudio.editors.reportwizard.actions
org.pentaho.designstudio.editors.reportwizard.messages
org.pentaho.designstudio.editors.reportwizard.preferences
org.pentaho.designstudio.editors.reportwizard.wizards
org.pentaho.designstudio.editors.xmleditor
org.pentaho.designstudio.intro
org.pentaho.designstudio.messages
org.pentaho.designstudio.util
org.pentaho.designstudio.widgets.flowtable
org.pentaho.jfreereport.legacy
org.pentaho.jfreereport.wizard
org.pentaho.jfreereport.wizard.messages
org.pentaho.jfreereport.wizard.ui
org.pentaho.jfreereport.wizard.ui.dialog
org.pentaho.jfreereport.wizard.ui.step
org.pentaho.jfreereport.wizard.ui.swt
org.pentaho.jfreereport.wizard.utility
org.pentaho.jfreereport.wizard.utility.connection
org.pentaho.messages
org.pentaho.messages.util
org.pentaho.plugin
org.pentaho.plugin.core
org.pentaho.plugin.eclipsebirt
org.pentaho.plugin.email
org.pentaho.plugin.hql
org.pentaho.plugin.jasperreports
org.pentaho.plugin.javascript
org.pentaho.plugin.jfreechart
org.pentaho.plugin.jfreereport
org.pentaho.plugin.jfreereport.components
org.pentaho.plugin.jfreereport.helper
org.pentaho.plugin.jfreereport.outputs
org.pentaho.plugin.jfreereport.reportcharts
org.pentaho.plugin.jfreereport.repository
org.pentaho.plugin.kettle
org.pentaho.plugin.mdx
org.pentaho.plugin.misc
org.pentaho.plugin.mql
org.pentaho.plugin.olap
org.pentaho.plugin.print
org.pentaho.plugin.quartz
org.pentaho.plugin.shark
org.pentaho.plugin.sql
org.pentaho.plugin.versionchecker
org.pentaho.plugin.webservice
org.pentaho.plugin.xmla
org.pentaho.plugin.xquery
org.pentaho.reportdesigner.crm.report
org.pentaho.reportdesigner.crm.report.commands
org.pentaho.reportdesigner.crm.report.commands.align
org.pentaho.reportdesigner.crm.report.commands.debug
org.pentaho.reportdesigner.crm.report.commands.morph
org.pentaho.reportdesigner.crm.report.components
org.pentaho.reportdesigner.crm.report.configuration
org.pentaho.reportdesigner.crm.report.connection
org.pentaho.reportdesigner.crm.report.datasetplugin
org.pentaho.reportdesigner.crm.report.datasetplugin.composer
org.pentaho.reportdesigner.crm.report.datasetplugin.jdbc
org.pentaho.reportdesigner.crm.report.datasetplugin.multidataset
org.pentaho.reportdesigner.crm.report.datasetplugin.properties
org.pentaho.reportdesigner.crm.report.datasetplugin.sampledb
org.pentaho.reportdesigner.crm.report.datasetplugin.staticfactory
org.pentaho.reportdesigner.crm.report.inspections
org.pentaho.reportdesigner.crm.report.inspections.impl
org.pentaho.reportdesigner.crm.report.lineal
org.pentaho.reportdesigner.crm.report.model
org.pentaho.reportdesigner.crm.report.model.dataset
org.pentaho.reportdesigner.crm.report.model.functions
org.pentaho.reportdesigner.crm.report.model.layoutmanager
org.pentaho.reportdesigner.crm.report.model.textlayout
org.pentaho.reportdesigner.crm.report.palette
org.pentaho.reportdesigner.crm.report.plugin
org.pentaho.reportdesigner.crm.report.preview
org.pentaho.reportdesigner.crm.report.properties
org.pentaho.reportdesigner.crm.report.properties.editors
org.pentaho.reportdesigner.crm.report.properties.renderers
org.pentaho.reportdesigner.crm.report.reportelementinfo
org.pentaho.reportdesigner.crm.report.reportexporter
org.pentaho.reportdesigner.crm.report.reportexporter.jfreereport
org.pentaho.reportdesigner.crm.report.reportimporter
org.pentaho.reportdesigner.crm.report.settings
org.pentaho.reportdesigner.crm.report.templateplugin
org.pentaho.reportdesigner.crm.report.tests
org.pentaho.reportdesigner.crm.report.tests.chartsamples
org.pentaho.reportdesigner.crm.report.tests.invoice
org.pentaho.reportdesigner.crm.report.tests.mondrian
org.pentaho.reportdesigner.crm.report.tests.numbers
org.pentaho.reportdesigner.crm.report.tests.reportdata
org.pentaho.reportdesigner.crm.report.tests.simple1
org.pentaho.reportdesigner.crm.report.tests.styles
org.pentaho.reportdesigner.crm.report.tests.subreport
org.pentaho.reportdesigner.crm.report.tests.svg
org.pentaho.reportdesigner.crm.report.tests.wrapper
org.pentaho.reportdesigner.crm.report.tests.xpath
org.pentaho.reportdesigner.crm.report.tree
org.pentaho.reportdesigner.crm.report.util
org.pentaho.reportdesigner.crm.report.wizard
org.pentaho.reportdesigner.crm.report.wizard.reportgeneratewizard
org.pentaho.reportdesigner.crm.report.zoom
org.pentaho.reportdesigner.lib.client.commands
org.pentaho.reportdesigner.lib.client.components
org.pentaho.reportdesigner.lib.client.components.docking
org.pentaho.reportdesigner.lib.client.components.favoritespanel
org.pentaho.reportdesigner.lib.client.components.tabbedpane
org.pentaho.reportdesigner.lib.client.i18n
org.pentaho.reportdesigner.lib.client.plugin
org.pentaho.reportdesigner.lib.client.undo
org.pentaho.reportdesigner.lib.client.util
org.pentaho.reportdesigner.lib.common.graph
org.pentaho.reportdesigner.lib.common.util
org.pentaho.reportdesigner.lib.common.xml
org.pentaho.repository
org.pentaho.repository.content
org.pentaho.repository.cwm
org.pentaho.repository.filebased.solution
org.pentaho.repository.runtime
org.pentaho.repository.usertypes
org.pentaho.ui
org.pentaho.ui.component
org.pentaho.ui.component.charting
org.pentaho.ui.portlet
org.pentaho.ui.portlet.charting
org.pentaho.ui.portlet.jboss
org.pentaho.ui.servlet
org.pentaho.util
org.pentaho.util.logging
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.