在Pentaho的官方论坛里，我看到了JFreeReport 0.9的相关信息。经过将近15个月的调研和计划，经过1年多的开发（前几天刚发布，下载），JFreeReport 0.9比原来的版本有了巨大的变化。
This libraries contains a generic serialization helper framework. It is always an ugly task to deal with unknown, possibly non-serializable objects. This library eases the pain.
LibLoader is a generic content loading and caching framework. Resource-loading is also an ugly, error-prone and hardly performant task. By introducing a central loading and caching layer, this task can be easier, and faster as well.
The JFreeReport font reading library. It grants direct access to font data. This is mandatory for perfect layouting, as most of these fonts contain valuable layouting hints, which get not exposed by the AWT.
LibLayout is JFreeReport's Cascading-StyleSheets based layouting engine. It accepts a DOM stream and produces content based on the style data assigned with the DOM data.
- 子报表SubReports (maybe the most requested feature)
- Direct support for SQL-DataSources
- Complex report layouts and rich text support (provided by LibLayout)
- fully internationalizable reports
- inline functions (expressions and functions are now directly bound to elements instead of being global. This resolves much of the compexitiy of previous report definitions.)
- Unmatched flexibility and *total* control over the report process at runtime. Expressions are now able to insert even groups and subreports during the report processing.
- Namespace support
- Full support for Cascading StyleSheet (through LibLayout)
- The 'flow' report xml-format is the new standard report definition format for JFreeReport. By following the new document oriented philosophy, it acts as a markup language to other XML based content description languages. A default base stylesheet for XHTML is included by default, enabling the system to accept and understand HTML layouts.
Before JFreeReport 0.9.0 can be considered finished, there are still some modules to be implemented:
- Cross-Tab/Pivot-Table report component
Modelling pivot-tables is an ugly task, which should be automated. The resulting report component automaticly generates the necessary processing steps to print such a table.
- generic table report component
Printing tables without having to explicitly declare each of its columns seems to be another highly requested feature. This report component would setup a generic table definition based on the current dataset.
- precomputed expression values
.. allow to use the result of a computation before its source rows have been printed. This is what the 'TotalGroupSumExpression' used to do. The resulting component will handle all necessary steps to compute the result. In an ideal world, it would do this in the most performant fashion avoiding multiple iterations.
- All output targets
All output targets, which rely on real layouting of content, are currently gone. The last processing step of LibLayout, which performs the computation of layouts is not yet implemented. Once that's done, we can deal with bringing back the pageable- and flow- (former table-) output targets.
The class of streaming output targets, which does not rely on that layouting step at all, simply needs to be implemented. Streaming output targets are used to create document output, like HTML, RTF or OpenDocumentFormat texts.
- Out-Of-Order section support
Out-of-order sections (O3-sections) are sections, which are not part of the normal document flow. Examples for such O3-sections are page-headers and footers or repeating group-headers and footers. Although they are defined inside the document flow, they usually appear on separate page areas and do not appear as part of the normal content.
O3-sections may not be supported by all output types.
The actual specification for these sections depends on how flow and pageable output targets handle their pagebreaking. O3-sections make it easy to break functionality or performance up to the point where it gets unusable.
The final aim is to support everything that is possible with JFreeReport 0.8.7.
- Swing and SWT GUIs for the output targets
The GUIs obviously depend on what features and configuration options are provided by the output targets itself. The GUI components include a Print Preview for pageable and flow outputs.
- XML-Parsers: Compatibility layer for Simple and Ext reports
Although the overall structure of JFreeReport changed drastically, parsers can be written to transform the old descriptions into the new internal structure.
During the transition between JFreeReport 0.8.3 and 0.8.4 a similiar approach has been successfully implemented to translate the old report definitions to the new format.
The resulting parsers must be configurable to accept user-defined function-translations - so that custom function implementations can be translated into the new report structure.
A writer implementation is needed to create 'flow-XML' report definitions from JFreeReport-Objects.
- ... and later, after things settled down a bit, we will head on to get a decent Chart-integration into JFreeReport.
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/93029/viewspace-1136670/，如需转载，请注明出处，否则将追究法律责任。