Document toolboxDocument toolbox

Dynamic GUI Simple - RDS and FF-E specification

Filename:

dynamic-gui-bb-simple.xfc

Level

Medium

XML context:

Any node that has flags, e.g. RDS, equipment-specification etc


This will create a table and show all dynamic GUI in a table. All data is presented using one building block which means you can easily modify everything. All the formatting is set in the style sheet for easy manipulation. 
Note that this does not use the flag and group layout-mode so that all data is presented in the same setup/layout.
The building block is created as a table that creates a row for each flag and with flag label using style dyn-flag-header. For each group within the flag it creates a new row with the group label using style dyn-group-header. For each element within the group it creates a new row and shows the element label in the left cell using style dyn-element-label. In the right cell it shows all the fields for the element.
Each field has a @label property but in order to know if this should be shown before or after the @value we use an inline condition and look at the attribute @show-label (1=before, 2=after).
The field also has a property @data-type which specifies if the field is a logic (checkbox), numeric, option (combobox/radiobox), date, html (formatted text) or text. We use this information to print different values using an inline condition.
If @data-type is logic we look at @db-value to show an image of a checked/unchecked check box instead of the Yes/No values.
If @data-type is html we convert the html data in order to print the text and keeping the formatting (colors etc) from the database the html value in the child element html-data must be converted. We provide a sample XSL to convert this (reports/xhtml2fo.xsl). In order to use this you must first include this: Go to Review → Template → Global XSLT and add this value:

<xsl:include href="xhtml2fo.xsl"/> 

<xsl:include href="xhtml2fo.xsl"/> 

In the document where you have html data and would like to call this you must manually edit the text view of the report and type this when you are in the context of an element (field) with html data:

<xsl:apply-templates select="html-data"/>

<xsl:apply-templates select="html-data"/>