Skip to content
This repository has been archived by the owner on Oct 23, 2024. It is now read-only.

Rfc4: Make reports with flamingo

mtoonen edited this page Nov 12, 2014 · 2 revisions

Overview

This will enable flamingo to generate reports, based on information retrieved from attributesources. The structure of the report is defined in a XSL file, and will be converted by xsl-fo to a PDF file. The structure of the attributesources (how they are linked) is controlled via the join and relate functionality.

Functional changes

There will be a page to upload the report stylesheets (xsl). In the layoutmanager a new component will be available, in which the report(s) can be selected, possible together with the layer on which the report should work. In de application, the user will get a button which will generate the report (or, when multiple reports are available, a window in which he/she can choose the report).

Technical changes

The changes needed for the completion of this functionality are described here.

Affected modules

The modules which are affected by these changes are split in the viewer and viewer-admin

Viewer

The viewer will get a component which will generate the report. The backend of the viewer will generate a XML with the structure of the (linked) attributesources. This XML will be a standardized format (meaning, it's usage is not limited to this functionality), according to the way it is linked in the join/relate screen. This XML is passed to the xslt processor (xsl-fo), together with the configured stylesheet (ie. report), so a PDF will be generated.

An URL will be provided to an image, to include in the report.

Viewer-admin

The viewer admin will get a new screen, in which the report stylesheet (.xsl) can be uploaded. It will be stored in the database, for maximum flexibility. A name and version will accompany the stylesheet.

Backwards compatibility

We foresee no incompatibility with older version. All the old configurations will be kept and remain functional.

Reference to code

Voting history

Clone this wiki locally