Comparison matrix of reporting engines for OpenERP
This is comparison of reporting engines available for OpenERP system. The document contains knowledge collected by OpenERP development and implementation team at Alistek for over 4 years, in a distilled form. We tried to compile a set of most influential and obvious features to be compared. We are sure, there are many other features to be included in this list. We will try to add other criteria to it, over time.
This is why we would like to have input from community - to make this sheet more comprehensive. Please provide your opinion regarding this table, by creating discussion threads on our forum. Even more, software is being developed rapidly, data evidently becomes obsolete.
More to be done
There are, at least, several other reporting engines around, available for use with OpenERP. Several has been emerging over the time of creating this matrix.
To name several reasons why some have not been included:
- little or no information available;
- narrow specialization;
- no clear evidence of being workable;
- not yet in production;
- probably the main reason - intention to keep this document reasonably brief.
Still if you think that there are some other reporting engine to be included, you are welcome with suggestions. Please send in sources, that approves the present matrix or corrects mistakes, of information on each reporting engine.
- Yes - Full or partial support;
- No - No evidence of support or clear statements of incompatibility;
- N/D - No data or information available/found;
- N/A - Not applicable due to limitations;
|Original developer||Alistek Ltd.||OpenERP S.A.||OpenERP S.A.||NaN-tic||Camptocamp|
|License||GPLv3 or later||AGPL||AGPL||GPLv2 or later||AGPL|
|Low level reporing engine||Aeroo Reports Library  + Genshi ||Reportlab RML ||Reportlab RML ||Jasper Reports ||Mako |
|First public release date|| 2009-10-20|
|N/D||N/D||2009-01-15 ||2010-06-26 |
|First OpenERP platform version||5.0||< 5.0||< 5.0||6.0||5.0|
|Current state||Operational, Active Development||Operational, Development Ceased||Obsolete||Obsolete||Operational, Active Development|
|Notes||Initial versions versions of report_openoffice module released by Domsense ||-||-||Several implementations with slightly different features by several OEM exist.||-|
|Aeroo Reports||ReportLab RML||Report Designer||Jasper Reports||WebKit/Mako|
Supported Output (report) Formats
|Format||Aeroo Reports||ReportLab RML||Report Designer||Jasper Reports||WebKit/Mako|
Template Development Tools and Convenience
Less is better, rule applies to the following tables all comparison grades, indicating position.
|Tool/Technology||Aeroo Reports||ReportLab RML||Report Designer||Jasper Reports||WebKit/Mako|
|Information access and transform language||Python||Python||Python||Xpath + Java||Python|
|Report looks close to a template||1||4||5||2||3|
|Rich formatting options||1||5||4||3||2|
|Editor is common||Yes||No||No||No||No|
|Editor integrated with OpenERP||No||No||Yes||No||No|
|Formatting requires special knowledge||No||N/A||Yes/No||Yes||Yes/No|
|Template development requires technical skills||No||Yes||No||Yes||Yes|
|WYSIWYG editor is FOSS||Yes||N/A||Yes||Yes/No||Yes/No|
|Time required to develop a template||1||5||3||4||2|
|Time required to learn||1||5||2||4||4|
|Rapid development of template||Yes||No||No||No||Yes|
|Common template format||Yes||No||No||No||Yes|
|Feature||Aeroo Reports||ReportLab RML||Report Designer||Jasper Reports||WebKit/Mako|
|Page oriented layout||Yes||Yes||Yes||Yes||No|
|Band oriented layout||Yes||Yes||Yes||Yes||Yes|
|Template for direct reporting||Yes||Yes||No||Yes||Yes|
|Long text formatting||1||4||2||5||3|
|Native Python directives in report||Yes||Yes||Yes||No||Yes|
|Generic (multipurpose) report type||Yes||No||No||No||No|
|Select template based on the data||Yes||No||No||No||No|
|Specialized printer support||Yes||No||No||No||No|
|System font support||Yes||No||No||Yes||No|
|PDF form support||Yes||No||No||No||No|
|Macro enabled report||Yes||No||No||No||Yes|
|Feature/Property||Aeroo Reports||ReportLab RML||Report Designer||Jasper Reports||WebKit/Mako|
|Template/Parser can interact with server||Yes||Yes||Yes||No||Yes|
|Add/configure reports from OpenERP UI||Yes||No||No||Yes||N/D|
|Custom parser/variable defined in module||Yes||Yes||No||No||Yes|
|Custom parser/variable defined from UI||Yes||No||No||No||No|
|Built in custom data reporting||Yes||No||No||No||No|
|Native multilingual reports||Yes||No||No||No||No|
|Standalone formats||TXT; HTML; XML; ODT; ODS; EPL2 (+ any ASCII based)||No||HTML|
|Optional formats||PDF/DOC/XLS with Apache OpenOffice  or clones ||N/A||N/A||PDF; HTML; XLS; RTF; ODT; CSV; XML ||PDF with wkhtmltopdf|
|Batch (deferred) processing||Yes||No||No||No||No|
|Format converter in a service mode||Yes||N/A||N/A||Yes||No|
This criteria shows if reporting engine have WYSIWIG like editor for creating templates. +/- means that template created by this tool/engine is not being used directly for creating of report and there is formatting loss happening in the process of conversion.
User may want to alter report template, so it is convenient to have such editor pre-installed on the computer.
Shows if commonly recognized document format is being used for template.
If general user have to learn editor software in order to start using it.
If file format in which template is being made is being used directly to create final report, or specialized intermediary file format being used. Unchecked if template before processing is being converted to some other format with some formatting penalty.
Whether reporting engine is able to produce editable documents compatible with common office software.
If WYSIWYG editor is licensed as free and open source software. “+/-” indicates that there are parts of software, that are available only under proprietary license. “n/a” indicates that there is no editor available.
If template can interact with OpenERP server dynamically during time of processing, for example, request additional data.
Efforts required to recreate the same template for each reporting engine. Least number means best.
Time needed to learn reporting basics and start creating reports. Less means means better.
Ability to develop template directly on top of sample document provided by user/customer, so there is no need to reproduce the formatting.
How much the formatting applied to template using editor is close to final report or formatting in final report significantly differs from formatting in the template. Less means better.
Formatting options and features available. Least number means best.
If reporting engine allows other templates to be included dynamically.
If it is possible to use Python directives in template.
If it is possible for the user to add new reports to the system dynamically, by not creating specialized module and/or restarting application server.
Dynamically choose template based on data or other criteria – have several templates for the same data model (class in OpenObject/OpenERP) - several templates for one system report. Template automatically chosen based on data reported on.
Set of common data processing functions for use on templates, provided as part of reporting engine.
Editor is able to receive information on object (data model) structure and their relation from OpenERP system. This helps operator build simple query paths.
There is option to have system-wide or standalone report/template generated separately and then included into the final report.
Option to define template in generic ASCII or binary format. “-” indicates that there is option to use single template format.
Option to create PDF forms in a report.
Yes indicates that there is full support of using translations to all data (field labels, field values, template-wide strings) from OpenERP.
There are several points missing, such as:
- no field labels or translations accessible;
- no translations for field values dynamically accessible;
- template-wide strings untranslatable or need to have external translation files supplied;
- above information have to be accessed manually by SQL queries or similar techniques;
- there is no option to switch languages for a part of report;
Option defining reports for direct use (with minimum set or no drivers) by specialized printers – dot matrix, label printers, etc.
No need to define fonts to be used - use the fonts available in your system.
Option to receive report with bookmarks, hyperlinks and other dynamic navigation features.
Option to create fulltext reports, placing inline report directives or conditional information. Common application agreements and other similar documents.
Reporting engine has tools for reporting on custom data like fetching and reporting on object oriented data, for example, from data model fields.
Can create reports with multiple columns of evenly distributed text or other elements.
Page oriented (sometimes referenced - print layout) designs can not be accomplished with band (sometimes referenced - ribbon or web layout) oriented layout technologies. For example, HTML layout is band, not page oriented. And better speed is often a trade off for for not rendering pages or just mimicking the feature.
Page oriented layout feature, means:
- different page formats and orientation in a single document;
- different page styles in a single document;
- different margins;
- different page layout for odd and even numbered pages;
- page borders;
- page numbering;
- total number of pages;
- repeating table headers;
- correct table row breaking across pages;
- correct line breaking across pages;
- correct paragraph breaking across pages;
- correct headers and footers, different for various pages;
- correct footnotes;
- correct column breaking across pages (not even mentioning that column feature is missing at all in Webkit);
These are consequences of a single missing feature. And there are number of others.
Usually optional output formats require conversion technologies implemented as a separate service or standalone executable.
Standalone executable usually adds some latency for just starting the process on each report, while resident service wastes zero non-productive CPU-cycles.
Another con of using standalone executable per each report is that is hard to implement load balancing on high demand systems, as it needs to have at least shared file-system between OpenERP hosting server and conversion server.
Server installation efforts needed for compared to other engines. Less is better.
Daily server administration efforts needed for compared to other engines. Less is better.