Comparison matrix of reporting engines for OpenERP

Contents

Introduction

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.

Legend

  • 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;

Basic Facts

Fact Aeroo
Reports
ReportLab
RML
Report
Designer
Jasper
Reports
WebKit/Mako
Original developer Alistek Ltd.[1] OpenERP S.A.[2] OpenERP S.A.[3] NaN-tic[4] Camptocamp[5]
License GPLv3 or later AGPL AGPL GPLv2 or later AGPL
Low level reporing engine Aeroo Reports Library [6] + Genshi [7] Reportlab RML [8] Reportlab RML [9] Jasper Reports [10] Mako [11]
First public release date 2009-10-20
(report_openoffice)
N/D N/D 2009-01-15 [12] 2010-06-26 [13]
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 [14] - - Several implementations with slightly different features by several OEM exist. -

Compatibility Matrix

OpenERP
version
Aeroo Reports ReportLab RML Report Designer Jasper Reports WebKit/Mako
5.0.x Yes Yes Yes N/D Yes
6.0.x Yes Yes Yes Yes Yes
6.1.x Yes Yes Yes Yes Yes
7.0.x Yes Yes No N/D Yes

Supported Output (report) Formats

Format Aeroo Reports ReportLab RML Report Designer Jasper Reports WebKit/Mako
PDF Yes Yes Yes Yes Yes
ODT Yes No No No No
ODS Yes No No No No
DOC Yes No No No No
XLS Yes No No No No
XML Yes No No Yes No
HTML Yes No No Yes Yes
TXT Yes No No Yes No
RTF Yes No No Yes No
CSV Yes No No Yes No

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
Installation efforts 4 1 3 5 2
Administration efforts 4 1 3 5 2
WYSIWYG editor Yes No Yes/No Yes N/D
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
Common functions Yes No No No No
Editable report Yes No No No No

Template Features

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
Navigable report Yes Yes No Yes Yes
Subreports Yes No No Yes No
Includes Yes Yes Yes Yes N/D
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
Fulltext/inline report Yes Yes Yes No Yes
Multi-column report Yes Yes Yes Yes No

Technical Features

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) PDF PDF No HTML
Optional formats PDF/DOC/XLS with Apache OpenOffice [15] or clones [16] N/A N/A PDF; HTML; XLS; RTF; ODT; CSV; XML [17] PDF with wkhtmltopdf[18]
Batch (deferred) processing Yes No No No No
Format converter in a service mode Yes N/A N/A Yes No

Features/Properties Explained

WYSIWYG editor exists

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.

Editor is common

User may want to alter report template, so it is convenient to have such editor pre-installed on the computer.

Uses common document format

Shows if commonly recognized document format is being used for template.

Editor software requires special knowledge

If general user have to learn editor software in order to start using it.

Template file format used to create report directly

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.

Editable report

Whether reporting engine is able to produce editable documents compatible with common office software.

WYSIWYG editor is FOSS

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.

Template/Parser can interact with server

If template can interact with OpenERP server dynamically during time of processing, for example, request additional data.

Time to develop a template

Efforts required to recreate the same template for each reporting engine. Least number means best.

Time to learn

Time needed to learn reporting basics and start creating reports. Less means means better.

Rapid development of template

Ability to develop template directly on top of sample document provided by user/customer, so there is no need to reproduce the formatting.

Report close to template

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.

Rich formatting options

Formatting options and features available. Least number means best.

Include other templates/documents

If reporting engine allows other templates to be included dynamically.

Use Python directives in report

If it is possible to use Python directives in template.

Add reports on the fly

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.

Select template based on data

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 functions

Set of common data processing functions for use on templates, provided as part of reporting engine.

Editor integrated with OpenERP

Editor is able to receive information on object (data model) structure and their relation from OpenERP system. This helps operator build simple query paths.

Sub-reports

There is option to have system-wide or standalone report/template generated separately and then included into the final report.

Generic report type

Option to define template in generic ASCII or binary format. “-” indicates that there is option to use single template format.

PDF form support

Option to create PDF forms in a report.

Multilingual reports

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;
Specialized printer language support

Option defining reports for direct use (with minimum set or no drivers) by specialized printers – dot matrix, label printers, etc.

System font support

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.

Fulltext/inline report

Option to create fulltext reports, placing inline report directives or conditional information. Common application agreements and other similar documents.

Built in custom data reporting

Reporting engine has tools for reporting on custom data like fetching and reporting on object oriented data, for example, from data model fields.

Multi-column report

Can create reports with multiple columns of evenly distributed text or other elements.

Page and band oriented layouts

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.

Format converter in a service mode

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.


Installation efforts

Server installation efforts needed for compared to other engines. Less is better.

Administration efforts

Daily server administration efforts needed for compared to other engines. Less is better.

Copyright © 2001 Alistek Ltd., ALL RIGHTS RESERVED