Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 module export valuePropertiesTags without needing the user interface configuration


Code Block
languagexml
titleValue Properties Entry Display Data Structure
    <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
languagexml
titleValue Properties Entry Display Variable Definitions
	<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
languagexml
titleValue Properties Entry Display Elements
	<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
languagexml
titleValue Properties Entry Display Sub Locations Table
	<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>