Document toolboxDocument toolbox

Table Styles

Because a table template consists of so many different parts, they have been split up into their own subchapters. If you’re trying to figure out how to e.g. style the column groups, please refer to the respective subchapters:

Structure

The general structure can be seen in the following example.

<Style name>

{mainTitle}

{subTitle}



group importance primary

group importance primary

group importance secondary

group importance secondary

Chart Legend

header

importance secondary

importance primary

importance secondary

importance primary



group importance 1











importance 1

1.05%

1.05%

1.05%

1.05%



importance 1 level 2

1.05%

1.05%

1.05%

1.05%



importance 1 level 3

1.05%

1.05%

1.05%

1.05%



group importance 2











importance 2

1.05%

1.05%

1.05%

1.05%



{footer}

Metadata

Vertical table styles support the following metadata:

{ "default": true, "chartColumnWidths": { "narrow": 40 }, "firstColumnLeftPadding": 0, "lastColumnRightPadding": 0, "tableChart": { "axisBorderColor": "#000000", "axisBorderWidth": 0.5, "barHeightInPt": 8.50394, "minimumBarHeightInPt": 4.25197, "minimumAxisWidthInMM": 4 } }

The chartColumnWidths property overrides the chart column width defined in the abstract report or in the table style in the Word template. It works by first defining a mapping of chart column widths to their actual width (in percent), e.g. mapping narrow to a width of 40%. In the abstract report the DimensionGroup.width property of the chart column’s DimensionGroup should then be set to this name, e.g. narrow. For a more concrete example, please refer to the https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/1953497110 subchapter.

The firstColumnLeftPadding and lastColumnRightPadding properties override the padding defined in the table style for the first and last column respectively. Please refer to the https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/1950548049 subchapter for an example of this behavior.

The tableChart property controls the layout and design of the produced table chart, such as the axis border color. It can be set on the category level and has to be present if table charts are to be produced. The values in the example above can be used as sane defaults.

Table generation algorithm

To know when and how to change a table style it helps to understand the basic algorithm that is used underneath to produce a table.

When a table is produced it is built piecewise. The relevant cells are copied from the table template (e.g. the cell marked with {mainTitle}) and filled with the approriate content. The basic structure of the resulting table is always the same: there’s an optional title/subtitle, body and a footer. There is an additional fallback mechanism. If a cell can not be found for a certain importance, a template cell of a different importance will be used instead and the cell will be colorized/marked as a fallback with an appropriate warning being issued.

Internally a table is built by composing mini-tables into one final table. One such mini-table could be the chart section of the table or the columns. This way of producing the table helps to reduce the implementation complexity and makes the table generation algorithm easier to maintain.