NFS 服务学习笔记
2008-09-08 10:09
274 查看
在Pentaho的官方论坛里,我看到了JFreeReport 0.9的相关信息。经过将近15个月的调研和计划,经过1年多的开发(前几天刚发布,下载),JFreeReport 0.9比原来的版本有了巨大的变化。
变化1:全新的架构。与以前版本完全不一样的架构。
变化2:面向文档(document)的处理方式,替换了原来的以数据为中心的报表方式。
变化3:遵循更严格的“内容分离”的设计原则。并分离出很多新的子项目。包括:
JCommon-Serializer
http://www.jfree.org/jfreereport/jcommon-serializer/
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
http://www.jfree.org/jfreereport/libloader/
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.
LibFonts
http://www.jfree.org/jfreereport/libfonts/
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
http://www.jfree.org/jfreereport/liblayout/
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)
多数据源Multiple-Datasources
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.
XML-Writer
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.
变化1:全新的架构。与以前版本完全不一样的架构。
变化2:面向文档(document)的处理方式,替换了原来的以数据为中心的报表方式。
变化3:遵循更严格的“内容分离”的设计原则。并分离出很多新的子项目。包括:
JCommon-Serializer
http://www.jfree.org/jfreereport/jcommon-serializer/
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
http://www.jfree.org/jfreereport/libloader/
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.
LibFonts
http://www.jfree.org/jfreereport/libfonts/
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
http://www.jfree.org/jfreereport/liblayout/
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)
多数据源Multiple-Datasources
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.
XML-Writer
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.
相关文章推荐
- 学习笔记_安装和配置NFS服务(For Ubuntu)
- iTop-4412开发板学习笔记之NFS服务搭建
- 马哥学习笔记十二——nfs服务
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
- Linux学习笔记——文件服务之NFS
- Linux 第八周学习笔记(2) nfs,ldap网络帐号,autofs自动挂载服务
- 学习笔记:NFS服务的配置
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
- NFS服务学习笔记
- NFS 服务学习笔记
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
- AngularJS学习笔记之--注册服务
- iOS学习笔记 系统服务(一)短信和邮件
- [ASP.NET学习笔记之二十八]ASP.NET中的Web服务
- java学习笔记之webservice(一)-入门实例,自定义webservice服务
- Android(java)学习笔记181:Android 服务的应用,在Activity中实现背景音乐播放
- RedHat 5.4 RHCE NFS学习笔记
- 分布式服务框架学习笔记9 ActiveMQ入门2 管理、生产者/消费者模式
- springcloud学习笔记二:服务提供、消费与ribbon