JFreeReport 0.9 的特性預覽
在Pentaho的官方論壇裡,我看到了JFreeReport 0.9的相關資訊。經過將近15個月的調研和計劃,經過1年多的開發(前幾天剛釋出,),JFreeReport 0.9比原來的版本有了巨大的變化。
變化1:全新的架構。與以前版本完全不一樣的架構。
變化2:面向文件(document)的處理方式,替換了原來的以資料為中心的報表方式。
變化3:遵循更嚴格的“內容分離”的設計原則。並分離出很多新的子專案。包括:
[@more@]- 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
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
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
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/93029/viewspace-1136670/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift 4.2 新特性預覽Swift
- C#7 特性預覽C#
- 【譯】C# 11 特性的早期預覽C#
- Swift5 新特性預覽Swift
- Vue.js 3.0 新特性預覽Vue.js
- Git 2.1釋出:新特性預覽Git
- 最全的Vue3.0新特性預覽(翻譯)Vue
- Oracle 21c新特性預覽與日常管理相關的幾個新特性Oracle
- maven工程指定版本號並開啟預覽特性Maven
- Vue 2.5釋出 代號Level E 新特性預覽Vue
- 炫酷報表工具 FineReport 9.0新特性預覽
- Swoole v5.0 版本新特性預覽之新的執行模式模式
- Win10 Build 18234新預覽版釋出 新特性一覽Win10UI
- Swift 5 新特性預覽(最低支援Xcode 10.2 beta版)SwiftXCode
- ALaunch 0.9 := 立即生效的快捷鍵
- Python 3.7 測試預覽版已經發布,新增新特性Python
- html預覽HTML
- Android O開發者預覽版終於推出啦!官方介紹新特性Android
- kkFileView預覽檔案 指定預覽方式為pdfView
- MongoDB 5.0新特性概覽MongoDB
- Swift 4.1 新特性概覽Swift
- MySQL 8.0新特性概覽MySql
- MongoDB 3.0新增特性一覽MongoDB
- 前端預覽圖片的兩種方式:轉Base64預覽或轉本地blob的URL預覽,並再重新轉回去前端
- 文件線上預覽的實現
- 關於筆記軟體Obsidian實時預覽出現前段預覽,後段不預覽的解決方案筆記
- Java 8 介面裡的預設方法特性Java
- Java 8 的新特性和改進總覽Java
- Flutter Beta 3 新特性概覽Flutter
- MySQL5.7.6新特性一覽MySql
- Netscape 6.1特性概覽 (轉)
- Mac預覽工具使用技巧,Mac預覽功能實用技巧大全Mac
- Mac預覽工具使用教程,Mac預覽功能實用技巧大全Mac
- html 預覽-atomHTML
- 前端圖片預覽前端
- Android 附件預覽Android
- 純前端文件預覽前端
- seaborn 0.9 文件翻譯活動期待大家的參與~