Variables
- Last UpdatedJan 28, 2025
- 5 minute read
Custom variables
Variables are typically used to control how the report result renders. A variable can be defined with a fixed value, or it can be used to render an input field in the export dialog in the user interface, for the user to provide the value. The full syntax for variable definitions are as follows:
<Variables>
<Variable geicl:id="gridLineStyle"
name="Line Style"
description="This setting impact how the report result render grid lines"
dataType="String"
colSpan="4"
newRow="true"
disabled="false"
suppress="false"
required="false"
consolidate="false"
value="Thin"
validValues="[Thin, Medium, Thick]">
<ValidValues>
<ValidValue geicl:id="Thin" name="Thin Line" value="Thin" geicl:sortOrder="10" />
</ValidValues>
</Variable>
</Variables>
|
Element |
Property |
Description |
|---|---|---|
|
Variables |
The containing element for Variable definitions. All expressions supplied for property values on this element, and any descendants, will be resolved in the context of the ClassLibrary node (see Context nodes and expression syntax). |
|
|
Variable |
geicl:id |
Assigns an identifier to the variable, which can be used to reference the variable value elsewhere in the configuration. All items inside a collection element, such as Variables must have an identifier which is unique within the containing collection |
|
name |
Applicable when the variable is used as an input field in the export dialog. |
|
|
description |
Applicable when the variable is used as an input field in the export dialog. |
|
|
dataType |
Applicable when the variable is used as an input field in the export dialog.
|
|
|
colSpan |
Applicable when the variable is used as an input field in the export dialog. |
|
|
newRow |
Applicable when the variable is used as an input field in the export dialog. |
|
|
disabled |
Applicable when the variable is used as an input field in the export dialog. |
|
|
suppress |
When the value of this property resolves to true the variable definition will be excluded from the report definition. The purpose of this property is to exclude or include variables based on e.g. the value of other variables |
|
|
geicl:sortOrder |
An integer value that controls the order of siblings in the containing collection. To fully understand the impact of using this property, please see the explanation in section. |
|
|
required |
Applicable when the variable is used as an input field in the export dialog. |
|
|
consolidate |
Applicable when the variable is used as an input field in the export dialog. |
|
|
value |
An expression that resolves to the value that the variable represents. When the variable is used as an input field in the export dialog, this value represents the default value for the input field |
|
|
validValues |
Represents a collection of values. When the variable is used as an input field in the export dialog, the input field will render as a dropdown list (single-select or multi-select, depending on @dataType). Values for this property might be provided in different ways: A literal array: [value1, value2, …, valueN] Reference to a variable having valid values: $myListOfValues[] Reference to a Class Library collection: ./Enumerations[myList]/Items |
|
|
ValidValues |
As an alternative to the @validValues property, a variable can have an embedded list of valid value items. When using this construct, a valid value can have both a value and a name |
|
|
ValidValue |
geicl:id |
Assigns an identifier to the valid value item. All items inside a collection element, such as ValidValues must have an identifier which is unique within the containing collection |
|
value |
Represents the value of the valid value item. When absent, the item will take geicl:id as value |
|
|
name |
Applicable when the containing variable is used as an input field in the export dialog.
|
Built-in variables
In addition to the custom variables that you can define yourself, there are also a collection of built-in variables that can be referenced:
|
Variable |
Value |
|---|---|
|
$NumberOfAttributesInConcept |
The number of attributes included in the report, for current concept. Concept being the primary class concept for the report (see Classes), or a joined concept. This value is influenced by Attributes@permissibleOnly, Attributes@where, Attributes@whereAll and Attributes@whereAny (see Attributes). |
|
$NumberOfAttributesInSheet |
When the report is divided into multiple sheets, this variable reflects the number of Attributes included in current sheet, else it contains the same value as $NumberOfAttributesInConcept. This value is influenced by Attributes@permissibleOnly, Attributes@where, Attributes@whereAll and Attributes@whereAny (see Attributes). |
|
$NumberOfClassesInConcept |
The number of classes contained in current concept. Concept being the primary class concept for the report (see Classes), or a joined concept. |
|
$NumberOfClassesInSheet |
When the report is divided into multiple sheets, this variable reflects the number of Classes included in current sheet, else it contains the same value as $NumberOfClassesInConcept. |
|
$ColumnIndex |
When rendering the section of a Classes collection, this value represents the zero-based index of the column currently being rendered. This variable is suitable for controlling style conditions for columns, where you e.g. would like to have a different style for the first column |
|
$HierarchyLevel |
A zero-based value representing the hierarchy level of the class currently being rendered. This variable is suitable for controlling style conditions for columns, where you e.g. would like to have style settings reflecting the position of a class in the class hierarchy |
|
$IsProxyClass |
When rendering classes in hierarchical view combined with sorting across multiple sheets, some classes might be included in a sheet only to join up the hierarchy. E.g. when functional classes are ordered by one discipline per sheet, to avoid breaking the hierarchy some of the classes higher up in the hierarchy might be included in multiple sheets. A class included for this purpose is referred to as a proxy class, and when rendered the $IsProxyClass variable will have the value true. This variable can be utilised to e.g. control conditional styling to visually indicate proxy classes. |
|
$NumberOfAttributesInReport |
This variable has been deprecated by $NumberOfAttributesInConcept, but is supported for backward compatibility |
|
$NumberOfFunctionalClassesInReport |
This variable has been deprecated by $NumberOfClassesInConcept, but is supported for backward compatibility |
|
$NumberOfFunctionalClassesInSheet |
This variable has been deprecated by $NumberOfClassesInSheet, but is supported for backward compatibility |