Document toolboxDocument toolbox

Abstract Reporting (Concepts Guide)

As Cinnamon Reporting is built to be multi-channel and multi-lingual, the concept of an Abstract Report is very important.

What is an “Abstract Report”?

An Abstract Report contains like any other PDF or HTML-report:

  • Structure (Sections, Headers, Footers, Layout-Elements like “Two Columns”)

  • Tables with data

  • Charts with data series

  • etc.

The following table explaines some of the differences between an abstract and a rendered report:

Topic

Abstract Report

Rendered Report

Topic

Abstract Report

Rendered Report

File formats

Json file including

  • A tree of Report Nodes that define the structure of the output

  • Data for all images and files to be included into the rendered report

Currently Cinnamon Reporting produces the following rendered report formats:

  • Word

  • PDF (from Word)

  • HTML

Tables

The tables structure defined by a Vertical Table Node

  • Columns (and Column Groups)

  • Rows (and Row Groups)

  • Facts (Data for cells) including the value to be shown as well as the Value Type to be used for formatting the value

  • Titles, Footer based on Translatable Texts (for later translation)

  • A named Style to be applied (if different from default styling)

Structure plus Layout:

  • Table and cell borders, background coloring

  • Sizing: column widths, row heights

  • Formatted and translated data

Charts

The structure of the chart defined by a Chart Node

  • Chart type (Pie, Line, etc.)

  • Series data

  • Titles, Footer based on Translatable Texts (for later translation)

  • A named Style to be applied (if different from default styling)

Graphics showing:

  • The chart as SVG data (Scalable Vector Graphics)

  • Surrounding (table-styled) elements to show titles and footers

  • All data is translated and formatted

Text (Paragraphs, Sections etc.)

The text defined by a Paragraph Node or Section Node

  • Translatable texts (including values to be placed when translating)

  • Rich texts supporting a small set of html-type tags (like <h1>, <ol>, <ul> etc.)

  • A named Style to be applied (if different from default styling)

  • Translated text

  • Text formatting (Font, Font-size, colour)

  • Paragraph formatting (indents, tabs, before/after spacing)

Layouts

A Layout Node defines an abstract layout, e.g.

  • Two columns defined by the Slots {left} and {right}

  • A formatted layout, e.g. two report nodes rendered into two columns where the report node marked for the Slot {left} is shown on the left column while the node marked {right} is shown in the right column.

 

How is an Abstract Report produced?

When producing an Abstract Report the Cinnamon Reporting services are following this procedure:

Step

 

Step

 

Report Order

  • The Parameters from the order are read into the Context

  • The Report Type referenced in the order is loaded

Report Type

  • The Report Type, defining the structure of the ordered report, is interpreted

  • The producer is iterating over the tree of nodes and

    • interprets any local parameter values

    • decides wheter the node has to be produced

    • interprets the selected Building Block

Building Block

  • Interprets all relevant parameter values. Parameters can have

    • no value → default value of the solution or local default of the Building Block is used

    • a discrete value

    • an expression, defining the parameter’s value based on other parameters and / or further logic (e.g. =!params.hideBenchmark to invert the value of the parameter hideBenchmark)

  • Fetches all needed data from the data source(s)

  • Generates one Report Node to be included into the Abstract Report (table, chart, section, etc.)