...
This is done to keep the data structure information separate from the user interface which keeps the code and configuration cleaner and this way the <subLocationStructure> configuration can be reused in the report export valuePropertiesTags without needing the user interface configuration. {
Code Block |
---|
...
| ||||
<valuePropertiesVariableId>MFDO_MainReport</valuePropertiesVariableId> |
...
<subLocationsStructure id="Locations_Level"> |
...
<variableId>Level_MFDO_Peak</variableId> |
...
<matchingSubLocationAttributeId>MFDOArea</matchingSubLocationAttributeId> |
...
<templateFile>Forecast_Summary_Report_Level_Location_Template.html</templateFile> |
...
</subLocationsStructure> |
...
<subLocationsStructure id="Locations_Flow"> |
...
<variableId>Flow_MFDO_Peak</variableId> |
...
<matchingSubLocationAttributeId>MFDOArea</matchingSubLocationAttributeId> |
...
<templateFile>Forecast_Summary_Report_Flow_Location_Template.html</templateFile> |
...
...
</subLocationsStructure>
|
In the config above the <valuePropertiesVariableId> determines the main time series for which the properties can be entered.
The sub locations have their own time series set and are matched to the main time series via the <matchingSubLocationAttributeId> which has to refere to the location id present in the main variable.
The variables refer to to time seires sets which are defined at the top of the configuration file.
Code Block | ||||
---|---|---|---|---|
| ||||
<variable>
<variableId>MFDO_MainReport</variableId>
<timeSeriesSet>
<moduleInstanceId>Process_MFDO_Report</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>H.obs</parameterId>
<locationSetId>MFDO_Areas_Reports</locationSetId>
<timeSeriesType>external forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<externalForecastMaxAge unit="day" multiplier="10"/>
<readWriteMode>read complete forecast</readWriteMode>
</timeSeriesSet>
</variable>
<variable>
<variableId>Level_MFDO_Peak</variableId>
<timeSeriesSet>
<moduleInstanceId>Process_MFDO_Report</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>H.fcast.merged</parameterId>
<qualifierId>Peak</qualifierId>
<locationSetId>UK_Forecast_Summary_Level</locationSetId>
<timeSeriesType>external forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<externalForecastMaxAge unit="day" multiplier="10"/>
<readWriteMode>read complete forecast</readWriteMode>
</timeSeriesSet>
</variable>
<variable>
<variableId>Flow_MFDO_Peak</variableId>
<timeSeriesSet>
<moduleInstanceId>Process_MFDO_Report</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Q.fcast.merged</parameterId>
<qualifierId>Peak</qualifierId>
<locationSetId>UK_Forecast_Summary_Flow</locationSetId>
<timeSeriesType>external forecasting</timeSeriesType>
<timeStep unit="nonequidistant"/>
<externalForecastMaxAge unit="day" multiplier="10"/>
<readWriteMode>read complete forecast</readWriteMode>
</timeSeriesSet>
</variable>
|
An example of some freely configurable input elements can be found below. With different property types like String, int, date/time and a dropwdown with enueration values.
By default the input elements are placed on the same row in the display but with <newLine/> elements they can be placed below each other.
String elements also have the option to have the numberOfLines specified. When this is more than 1 the element will show on screen with a larger height and it will automatically increse in height when more lines of text are entered.
The width attribute determines how wide the element will show on the display.
Via the enabled attribute the element can also be made not editable.
Code Block | ||||
---|---|---|---|---|
| ||||
<valueProperty id="fw_state" name="State" propertyType="string" enabled="false" forceUpperCase="false" width="60">
<defaultValueAttributeFunction>@REGION@</defaultValueAttributeFunction>
</valueProperty>
<newLine/>
<valueProperty id="fw_subtitle" name="Sub-title" propertyType="string" enabled="true" numberOfLines="1" width="805"/>
<newLine/>
<valueProperty id="fw_headline" name="Headline" propertyType="string" enabled="true" forceUpperCase="true" numberOfLines="2" width="800"/>>
</variable>
<valueProperty id="fw_nextissuetime" name="Next Issue Time" propertyType="dateTime" enabled="true" width="200"/>
<valueProperty id="fw_nexthours" name="Hours from now" propertyType="int" enabled="true" width="50"/>
<valueProperty id="fw_sews" name="Sews" propertyType="string" enabled="true" width="60">
<enumerationValue label="Yes" code="Yes"/>
<enumerationValue label="No" code="No"/>
</valueProperty>
|
Below is an example shown on how to configure a table with sub locations.
It has to refer to an sub locations structure via <subLocationsStructureId>
Separate columns can be defined like an attributeColumn which shows the value of that attribute for the location of the row
Time series columns which show either a value of a time of a time series for that locations. Multiple options can be chosen for what to show, like lastValue or lastTime. A variableId must be configured to refer to time series.
There are also specialValuePropertyColumn's which have more dedicated functionality for instance a special with type="defaultText" can have text in which value properties (with their id between %%) for that location can be automatically replaced
Code Block | ||||
---|---|---|---|---|
| ||||
<subLocationsTable id="Locations_Level">
<subLocationsStructureId>Locations_Level</subLocationsStructureId>
<attributeColumn id="fwloc_order" width="40" name="Order" attributeFunction="@FWL_DISP_ORDER@"/>
<attributeColumn id="fwloc_name" width="200" name="Location Name" attributeFunction="@station:SHORT_NAME@"/>
<timeSeriesColumn id="fwloc_obstime" valuePropertyId="Observation_Time" variableId="Observations" width="140" columnContent="lastTime" name="Observed_Time"/>
<timeSeriesColumn id="fwloc_obsvalue" valuePropertyId="Observation_Value" variableId="Observations" width="80" columnContent="lastValue" name="Observation_Value [m]"/>
<specialValuePropertyColumn id="fwloc_defaultText" name="Default_text" width="200" type="defaultText" valuePropertyId="default_text">
<defaultText>This location has observed serverity '%obs_severity%' and forecast severity '%forc_severity%'</defaultText>
</specialValuePropertyColumn>
</subLocationsTable>
|
...