Report parameter controls

Nearly any report requires you to fill some parameters before you run it. Most commonly you are asked to provide a date range, objects you are interested in and maybe some other parameters that drive report content.

"Report parameters block" is the place where all these parameters are entered. Report parameters block consist of a set of report parameter controls. Each parameter control defines a visual representation for one or more underlying report parameters.

Report parameter controls used for a particular report are defined in the RPDL file.
Here is the schema for them:

<xs:element name="Control" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>

            <xs:element name="ReportParameters" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ReportParameter" 
                                           minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Prompt" type="xs:string"
minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="name" type="xs:token" use="required" />
<xs:attribute name="binding" type="xs:token" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

            <xs:element name="Properties" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Property"
minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Value" type="xs:string"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="name" type="xs:token" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

        </xs:sequence>
<xs:attribute name="type" type="xs:token" use="optional" />
<xs:attribute name="columnSpan" type="xs:unsignedByte" use="optional" />
<xs:attribute name="rowSpan" type="xs:unsignedByte" use="optional" />
</xs:complexType>
</xs:element>

As you can see from the schema parameter control has a list of underlying report parameters it uses. The way it uses them is defined by "binding" attribute. Binding are defined by specific control code. You cannot change the way it is handled but you can set which report parameter is used for it. "Empty" or default binding is usually used for a report parameter the control sets value for but this is not a strict rule.

Next section is parameter control properties. It's a name multi-value collection. These properties changes control behavior or visual appearance. An example of a property could be control maximum width or background color.

All "out of the box" report parameter controls are defined in Microsoft.SystemCenter.DataWarehouse.Report.Library management pack. Here are some most commonly used ones:

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
TextBox

A way to enter string parameter value. Replaces standard SSRS text box control.

Bindings

Default

Parameters

Multiline (True/False)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
BooleanPicker

A way to enter parameter value of Boolean type. Replaces standard SSRS Boolean picker

Bindings

Default (report parameter has to be Boolean type)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
ComboBox

A way to select a value from a set. Replaces standard SSRS value picker control.

Bindings

Default (report parameter has to have a list of valid values)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
CheckedListBox

A way to select multiple values from a list of valid ones. Replaces standard SSRS multi-value value picker control.

Bindings

Default (report parameter has to be a multi-value parameter with a list of valid values)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
DatePicker

A way to select date value. Replaces standard SSRS date picker control.

Bindings

Default (report parameter has to be DateTime type)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
DateTimePicker

A way to select date and time value.

Bindings

Default (report parameter has to be DateTime type)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
NumericUpDown

A way to select an integer value.

Bindings

Default (report parameter has to be Integer type)

Parameters

Minimum (minimum possible integer value)

Maximum (maximum possible integer value)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
RelativeDateTimePicker

A way to select relative date time range. Microsoft.EnterpriseManagement.Reporting.ParameterProcessor class is used on the report side to process values entered by this control.

Bindings

TimeZone (time zone reference)

TimeZoneName (name of the time zone displayed in the report)

StartDate_BaseType (start date base type)

StartDate_BaseValue (start date base value)

StartDate_OffsetType (type of start date offset)

StartDate_OffsetValue (start date offset value)

EndDate_BaseType (end date base type)

EndDate_BaseValue (end date base value)

EndDate_OffsetType (type of end date offset)

EndDate_OffsetValue (end date offset value)

Parameters

MaxWidth (control maximum width in pixels)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
BusinessRelativeDateTimePicker

A way to select relative date time range with business hours. Microsoft.EnterpriseManagement.Reporting.ParameterProcessor class is used on the report side to process values entered by this control.

Bindings

TimeZone (time zone reference)

TimeZoneName (name of the time zone displayed in the report)

StartDate_BaseType (start date base type)

StartDate_BaseValue (start date base value)

StartDate_OffsetType (type of start date offset)

StartDate_OffsetValue (start date offset value)

EndDate_BaseType (end date base type)

EndDate_BaseValue (end date base value)

EndDate_OffsetType (type of end date offset)

EndDate_OffsetValue (end date offset value)

TimeType (type of time entered (business or regular))

TimeWeekMap (days of week selected for business time)

Parameters

MaxWidth (control maximum width in pixels)

Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.
MonitoringObjectPicker

A way to select monitoring object for report. List of Monitoring Object IDs are passed to the report as a result value (default binding).

Bindings

Default (report parameter has to be multi-value Integer type)

GroupList (list of management groups objects are allowed to be selected from)