Savision.Community.SLA.ServiceLevelAgreementOverviewAvailabilityMonitorDetials.rdl (ReportResource)

Element properties:

TypeReportResource
File NameSavision.Community.SLA.ServiceLevelAgreementOverviewAvailabilityMonitorDetials.rdl
AccessibilityInternal

Source Code:

<ReportResource ID="Savision.Community.SLA.ServiceLevelAgreementOverviewAvailabilityMonitorDetials.rdl" FileName="Savision.Community.SLA.ServiceLevelAgreementOverviewAvailabilityMonitorDetials.rdl" Accessibility="Internal" MIMEType="application/octet-stream"/>

File Content: Savision.Community.SLA.ServiceLevelAgreementOverviewAvailabilityMonitorDetials.rdl

<?xml version="1.0" encoding="utf-8"?><Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"><AutoRefresh>0</AutoRefresh><DataSources><DataSource Name="DataWarehouseMain"><DataSourceReference>/Data Warehouse Main</DataSourceReference><rd:SecurityType>None</rd:SecurityType><rd:DataSourceID>8eea5178-4f26-4800-b8e4-de8ce9930ce0</rd:DataSourceID></DataSource></DataSources><DataSets><DataSet Name="AvailabilityData"><Query><DataSourceName>DataWarehouseMain</DataSourceName><QueryParameters><QueryParameter Name="@StartDate"><Value>=Code.ToDbDate(Code.GetReportStartDate())</Value></QueryParameter><QueryParameter Name="@EndDate"><Value>=Code.ToDbDate(Code.GetReportEndDate())</Value></QueryParameter><QueryParameter Name="@ServiceLevelAgreementRowId"><Value>=Parameters!ServiceLevelAgreementRowId.Value</Value></QueryParameter><QueryParameter Name="@DataAggregation"><Value>=Parameters!DataAggregation.Value</Value></QueryParameter><QueryParameter Name="@ServiceLevelAgreementManagedEntityRowId"><Value>=Parameters!ServiceLevelAgreementManagedEntityRowId.Value</Value></QueryParameter><QueryParameter Name="@LevelCount"><Value>=Parameters!LevelCount.Value</Value></QueryParameter><QueryParameter Name="@ServiceLevelObjectiveGuid"><Value>=Parameters!ServiceLevelObjectiveGuid.Value</Value></QueryParameter><QueryParameter Name="@LanguageCode"><Value>=Code.GetReportLocLanguageCode()</Value></QueryParameter><QueryParameter Name="@ToRun"><Value>=Parameters!ToRun.Value</Value><rd:UserDefined>true</rd:UserDefined></QueryParameter><QueryParameter Name="@ServiceLevelObjectiveManagedEntityRowId"><Value>=Parameters!ServiceLevelObjectiveManagedEntityRowId.Value</Value><rd:UserDefined>true</rd:UserDefined></QueryParameter></QueryParameters><CommandType>StoredProcedure</CommandType><CommandText>Savision_Community_SLA_ServiceLevelAgreementObjectiveAvailabilityMonitorDataGet</CommandText></Query><Fields><Field Name="DateTime"><DataField>DateTime</DataField><rd:TypeName>System.DateTime</rd:TypeName></Field><Field Name="InRedStateMilliseconds"><DataField>InRedStateMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InYellowStateMilliseconds"><DataField>InYellowStateMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InGreenStateMilliseconds"><DataField>InGreenStateMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InWhiteStateMilliseconds"><DataField>InWhiteStateMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InDisabledStateMilliseconds"><DataField>InDisabledStateMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InPlannedMaintenanceMilliseconds"><DataField>InPlannedMaintenanceMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="InUnplannedMaintenanceMilliseconds"><DataField>InUnplannedMaintenanceMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="HealthServiceUnavailableMilliseconds"><DataField>HealthServiceUnavailableMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="IntervalDurationMilliseconds"><DataField>IntervalDurationMilliseconds</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="ManagedEntityRowId"><DataField>ManagedEntityRowId</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="ManagedEntityMonitorRowId"><DataField>ManagedEntityMonitorRowId</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="Image"><DataField>Image</DataField><rd:TypeName>System.Byte[]</rd:TypeName></Field><Field Name="ManagedEntityDefaultName"><DataField>ManagedEntityDefaultName</DataField><rd:TypeName>System.String</rd:TypeName></Field><Field Name="ManagedEntityTypeGuid"><DataField>ManagedEntityTypeGuid</DataField><rd:TypeName>System.Guid</rd:TypeName></Field><Field Name="ParentManagedEntityMonitorRowId"><DataField>ParentManagedEntityMonitorRowId</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="Level"><DataField>Level</DataField><rd:TypeName>System.Int32</rd:TypeName></Field><Field Name="MonitorDisplayName"><DataField>MonitorDisplayName</DataField><rd:TypeName>System.String</rd:TypeName></Field><Field Name="ManagedEntityGuid"><DataField>ManagedEntityGuid</DataField><rd:TypeName>System.Guid</rd:TypeName></Field><Field Name="Path"><DataField>Path</DataField><rd:TypeName>System.String</rd:TypeName></Field><Field Name="DisplayName"><DataField>DisplayName</DataField><rd:TypeName>System.String</rd:TypeName></Field><Field Name="ManagementGroupGuid"><DataField>ManagementGroupGuid</DataField><rd:TypeName>System.Guid</rd:TypeName></Field><Field Name="ManagementGroupDefaultName"><DataField>ManagementGroupDefaultName</DataField><rd:TypeName>System.String</rd:TypeName></Field><Field Name="UpTimeMilliseconds"><Value>=Fields!InGreenStateMilliseconds.Value +

IIF(Code.IsDownTime(Code.StateIntervalType.Yellow), 0, Fields!InYellowStateMilliseconds.Value) +
IIF(Code.IsDownTime(Code.StateIntervalType.White), 0, Fields!InWhiteStateMilliseconds.Value) +
IIF(Code.IsDownTime(Code.StateIntervalType.Gray), 0, Fields!InDisabledStateMilliseconds.Value) +
IIF(Code.IsDownTime(Code.StateIntervalType.ServiceGray), 0, Fields!HealthServiceUnavailableMilliseconds.Value) +
IIF(Code.IsDownTime(Code.StateIntervalType.Blue), 0, Fields!InPlannedMaintenanceMilliseconds.Value) +
IIF(Code.IsDownTime(Code.StateIntervalType.Black), 0, Fields!InUnplannedMaintenanceMilliseconds.Value)</Value></Field><Field Name="DownTimeMilliseconds"><Value>=Fields!InRedStateMilliseconds.Value +
IIF(Code.IsDownTime(Code.StateIntervalType.Yellow), Fields!InYellowStateMilliseconds.Value, 0) +
IIF(Code.IsDownTime(Code.StateIntervalType.White), Fields!InWhiteStateMilliseconds.Value, 0) +
IIF(Code.IsDownTime(Code.StateIntervalType.Gray), Fields!InDisabledStateMilliseconds.Value, 0) +
IIF(Code.IsDownTime(Code.StateIntervalType.ServiceGray), Fields!HealthServiceUnavailableMilliseconds.Value, 0) +
IIF(Code.IsDownTime(Code.StateIntervalType.Blue), Fields!InPlannedMaintenanceMilliseconds.Value, 0) +
IIF(Code.IsDownTime(Code.StateIntervalType.Black), Fields!InUnplannedMaintenanceMilliseconds.Value, 0)</Value></Field></Fields><Filters><Filter><FilterExpression>=Code.GetReportTimeFilter().Contains(Code.ToReportDate(Fields!DateTime.Value))</FilterExpression><Operator>Equal</Operator><FilterValues><FilterValue>=True</FilterValue></FilterValues></Filter></Filters></DataSet></DataSets><ReportSections><ReportSection><Body><Script><ReportItems><Tablix Name="Tablix1"><TablixBody><TablixColumns><TablixColumn><Width>1.45833in</Width></TablixColumn><TablixColumn><Width>2.08056in</Width></TablixColumn><TablixColumn><Width>0.0625in</Width></TablixColumn><TablixColumn><Width>0.18403in</Width></TablixColumn><TablixColumn><Width>0.5625in</Width></TablixColumn><TablixColumn><Width>1in</Width></TablixColumn></TablixColumns><TablixRows><TablixRow><Height>0.32292in</Height><TablixCells><TablixCell><CellContents><Textbox Name="Textbox4"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>="Top ("&amp; Parameters!TopNDownTime.Value &amp;") By Percent Downtime of Monitored Componets"</Value><Style></Style><FontFamily>Segoe UI Semibold</FontFamily><FontWeight>Bold</FontWeight><Color>#424242</Color></Style></TextRun></TextRuns><Style /></Style></Paragraph></Paragraphs><rd:DefaultName>Textbox4</rd:DefaultName><Style></Style><Border><Color>LightSkyBlue</Color><Style></Style>None</Style><Width>3pt</Width></Border><BottomBorder><Style></Style>Solid</Style></BottomBorder><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox><ColSpan>6</ColSpan></CellContents></TablixCell><TablixCell /><TablixCell /><TablixCell /><TablixCell /><TablixCell /></TablixCells></TablixRow><TablixRow><Height>0.35292in</Height><TablixCells><TablixCell><CellContents><Textbox Name="MonitorDisplayName"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>=Fields!MonitorDisplayName.Value &amp; " - "&amp; IIF(IsNothing(Fields!Path.Value),Fields!DisplayName.Value,Fields!Path.Value) &amp; " (" &amp; Fields!ManagedEntityDefaultName.Value &amp; ")"</Value><Style></Style><FontFamily>Segoe UI Semibold</FontFamily><FontSize>9pt</FontSize><FontWeight>Bold</FontWeight><Color>#424242</Color></Style></TextRun></TextRuns><Style /></Style></Paragraph></Paragraphs><rd:DefaultName>MonitorDisplayName</rd:DefaultName><Style></Style><Border><Color>LightGrey</Color><Style></Style>None</Style></Border><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox><ColSpan>2</ColSpan></CellContents></TablixCell><TablixCell /><TablixCell><CellContents><Textbox Name="DownTimeMilliseconds"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>=Sum(Fields!DownTimeMilliseconds.Value)</Value><Style /></Style></TextRun></TextRuns><Style /></Style></Paragraph></Paragraphs><rd:DefaultName>DownTimeMilliseconds</rd:DefaultName><Style></Style><Border><Color>LightGrey</Color><Style></Style>None</Style></Border><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox></CellContents></TablixCell><TablixCell><CellContents><Textbox Name="UpTimeMilliseconds"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>=Sum(Fields!UpTimeMilliseconds.Value)</Value><Style /></Style></TextRun></TextRuns><Style /></Style></Paragraph></Paragraphs><rd:DefaultName>UpTimeMilliseconds</rd:DefaultName><Style></Style><Border><Color>LightGrey</Color><Style></Style>None</Style></Border><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox></CellContents></TablixCell><TablixCell><CellContents><Textbox Name="Textbox9"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>=Code.GetStartEndDateDiffInMilliseconds(Code.GetReportTimeFilter())</Value><Style /></Style></TextRun></TextRuns><Style /></Style></Paragraph></Paragraphs><rd:DefaultName>Textbox9</rd:DefaultName><Style></Style><Border><Color>LightGrey</Color><Style></Style>None</Style></Border><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox></CellContents></TablixCell><TablixCell><CellContents><Textbox Name="Textbox10"><CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun><Value>=Code.FormatNumber("P2",Sum(Fields!DownTimeMilliseconds.Value)/Code.GetStartEndDateDiffInMilliseconds(Code.GetReportTimeFilter()))</Value><Style></Style><FontFamily>Segoe UI Semibold</FontFamily><Color>#424242</Color></Style></TextRun></TextRuns><Style></Style><TextAlign>Right</TextAlign></Style></Paragraph></Paragraphs><rd:DefaultName>Textbox10</rd:DefaultName><Style></Style><Border><Color>LightGrey</Color><Style></Style>None</Style></Border><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight><PaddingTop>2pt</PaddingTop><PaddingBottom>2pt</PaddingBottom></Style></Textbox></CellContents></TablixCell></TablixCells></TablixRow><TablixRow><Height>0.79167in</Height><TablixCells><TablixCell><CellContents><Rectangle Name="Rectangle3"><ReportItems><Subreport Name="Subreport1"><ReportName>/Savision_Community_Reports_ManagementPack/Savision_Community_Reports_ManagementPack.Report.ServiceLevelAgreementOverviewMonitorLastAlertDetials</ReportName><Parameters><Parameter Name="ManagedEntityMonitorRowId"><Value>=Fields!ManagedEntityMonitorRowId.Value</Value></Parameter><Parameter Name="EndDate"><Value>=Code.GetReportEndDate()</Value></Parameter></Parameters><NoRowsMessage>No alerts found for this monitor object.</NoRowsMessage><Height>0.79167in</Height><Width>5.34792in</Width><Style></Style><Border><Style></Style>None</Style></Border><FontFamily>Segoe UI Semibold</FontFamily><TextAlign>Center</TextAlign><Color>#424242</Color></Style></Subreport></ReportItems><KeepTogether>true</KeepTogether><Style></Style><Border><Style></Style>None</Style></Border></Style></Rectangle><ColSpan>6</ColSpan></CellContents></TablixCell><TablixCell /><TablixCell /><TablixCell /><TablixCell /><TablixCell /></TablixCells></TablixRow></TablixRows></TablixBody><TablixColumnHierarchy><TablixMembers><TablixMember /><TablixMember /><TablixMember><Visibility><Hidden>true</Hidden></Visibility></TablixMember><TablixMember><Visibility><Hidden>true</Hidden></Visibility></TablixMember><TablixMember><Visibility><Hidden>true</Hidden></Visibility></TablixMember><TablixMember /></TablixMembers></TablixColumnHierarchy><TablixRowHierarchy><TablixMembers><TablixMember><KeepWithGroup>After</KeepWithGroup></TablixMember><TablixMember><Group Name="ManagedEntity_Group"><GroupExpressions><GroupExpression>=Fields!ParentManagedEntityMonitorRowId.Value</GroupExpression><GroupExpression>=Fields!ManagedEntityMonitorRowId.Value</GroupExpression></GroupExpressions><Filters><Filter><FilterExpression>=Code.FormatNumber("P2",Sum(Fields!DownTimeMilliseconds.Value)/Code.GetStartEndDateDiffInMilliseconds(Code.GetReportTimeFilter()))</FilterExpression><Operator>TopN</Operator><FilterValues><FilterValue>=Parameters!TopNDownTime.Value</FilterValue></FilterValues></Filter></Filters></Group><SortExpressions><SortExpression><Value>=Code.FormatNumber("P2",Sum(Fields!DownTimeMilliseconds.Value)/Code.GetStartEndDateDiffInMilliseconds(Code.GetReportTimeFilter()))</Value><Direction>Descending</Direction></SortExpression></SortExpressions><TablixMembers><TablixMember /><TablixMember><Visibility><Hidden>true</Hidden><ToggleItem>MonitorDisplayName</ToggleItem></Visibility></TablixMember></TablixMembers></TablixMember></TablixMembers></TablixRowHierarchy><NoRowsMessage>No data</NoRowsMessage><DataSetName>AvailabilityData</DataSetName><Height>1.46751in</Height><Width>5.34792in</Width><Style></Style><Border><Style></Style>None</Style></Border><Color>White</Color></Style></Tablix></ReportItems><Height>1.46751in</Height><Style></Style><Border><Style></Style>None</Style></Border></Style></Script></Body><Width>5.34792in</Width><Page><PageHeight>8.5in</PageHeight><PageWidth>11in</PageWidth><InteractiveHeight>11in</InteractiveHeight><InteractiveWidth>8.5in</InteractiveWidth><Style /></Style></Page></ReportSection></ReportSections><ReportParameters><ReportParameter Name="LevelCount"><DataType>Integer</DataType><DefaultValue><Values><Value>0</Value></Values></DefaultValue><Prompt>LevelCount</Prompt><Hidden>true</Hidden></ReportParameter><ReportParameter Name="DataAggregation"><DataType>Integer</DataType><DefaultValue><Values><Value>0</Value></Values></DefaultValue><Prompt>[Aggregation]</Prompt><ValidValues><ParameterValues><ParameterValue><Value>0</Value><Label>="Hourly"</Label></ParameterValue><ParameterValue><Value>1</Value><Label>="Daily"</Label></ParameterValue></ParameterValues></ValidValues></ReportParameter><ReportParameter Name="StartDate_BaseType"><DataType>String</DataType><DefaultValue><Values><Value>Today</Value></Values></DefaultValue><Prompt>[Start Date Base]</Prompt></ReportParameter><ReportParameter Name="StartDate_BaseValue"><DataType>DateTime</DataType><DefaultValue><Values><Value>12/23/2017 08:00:00</Value></Values></DefaultValue><Prompt>[From]</Prompt></ReportParameter><ReportParameter Name="StartDate_OffsetType"><DataType>String</DataType><DefaultValue><Values><Value>Day</Value></Values></DefaultValue><Prompt>[Start Date Offset Type]</Prompt></ReportParameter><ReportParameter Name="StartDate_OffsetValue"><DataType>Integer</DataType><DefaultValue><Values><Value>-1</Value></Values></DefaultValue><Prompt>[Start Date Offset]</Prompt></ReportParameter><ReportParameter Name="EndDate_BaseType"><DataType>String</DataType><DefaultValue><Values><Value>Today</Value></Values></DefaultValue><Prompt>[End Date Base]</Prompt></ReportParameter><ReportParameter Name="EndDate_BaseValue"><DataType>DateTime</DataType><DefaultValue><Values><Value>12/25/2017 17:00:00</Value></Values></DefaultValue><Prompt>[To]</Prompt></ReportParameter><ReportParameter Name="EndDate_OffsetType"><DataType>String</DataType><DefaultValue><Values><Value>None</Value></Values></DefaultValue><Prompt>[End Date Offset Type]</Prompt></ReportParameter><ReportParameter Name="EndDate_OffsetValue"><DataType>Integer</DataType><DefaultValue><Values><Value>0</Value></Values></DefaultValue><Prompt>[End Date Offset]</Prompt></ReportParameter><ReportParameter Name="TimeType"><DataType>String</DataType><DefaultValue><Values><Value>Business</Value></Values></DefaultValue><AllowBlank>true</AllowBlank><Prompt>[Time Type]</Prompt></ReportParameter><ReportParameter Name="TimeWeekMap"><DataType>String</DataType><DefaultValue><Values><Value>Monday, Tuesday, Wednesday, Thursday, Friday</Value></Values></DefaultValue><Prompt>[Week Days]</Prompt><MultiValue>true</MultiValue></ReportParameter><ReportParameter Name="TimeZone"><DataType>String</DataType><DefaultValue><Values><Value>88FFFFFF00000000C4FFFFFF00000A0000000500020000000000000000000300050004000200000000000000</Value></Values></DefaultValue><Prompt>[Time Zone]</Prompt></ReportParameter><ReportParameter Name="TimeZoneName"><DataType>String</DataType><Nullable>true</Nullable><DefaultValue><Values><Value>(UTC+02:00) Jerusalem</Value></Values></DefaultValue><AllowBlank>true</AllowBlank><Prompt>[Time Zone Name]</Prompt></ReportParameter><ReportParameter Name="Interactive"><DataType>Boolean</DataType><Nullable>true</Nullable><DefaultValue><Values><Value>=False</Value></Values></DefaultValue><Prompt>Interactive</Prompt><Hidden>true</Hidden></ReportParameter><ReportParameter Name="ServiceLevelAgreementRowId"><DataType>Integer</DataType><Prompt>ServiceLevelAgreementRowId</Prompt></ReportParameter><ReportParameter Name="ServiceLevelAgreementManagedEntityRowId"><DataType>Integer</DataType><DefaultValue><Values><Value>657</Value></Values></DefaultValue><Prompt>ServiceLevelAgreementManagedEntityRowId</Prompt></ReportParameter><ReportParameter Name="ServiceLevelObjectiveGuid"><DataType>String</DataType><Prompt>ServiceLevelObjectiveGuid</Prompt></ReportParameter><ReportParameter Name="ToRun"><DataType>Integer</DataType><DefaultValue><Values><Value>1</Value></Values></DefaultValue><Prompt>ToRun</Prompt></ReportParameter><ReportParameter Name="ServiceLevelObjectiveManagedEntityRowId"><DataType>Integer</DataType><Prompt>ServiceLevelObjectiveManagedEntityRowId</Prompt></ReportParameter><ReportParameter Name="DownTime"><DataType>String</DataType><DefaultValue><Values><Value>5</Value></Values></DefaultValue><AllowBlank>true</AllowBlank><Prompt>DownTime</Prompt><ValidValues><ParameterValues><ParameterValue><Value>2</Value><Label>Warning</Label></ParameterValue><ParameterValue><Value>7</Value><Label>Monitoring unavailable</Label></ParameterValue><ParameterValue><Value>6</Value><Label>Planned maintenance</Label></ParameterValue><ParameterValue><Value>5</Value><Label>Unplanned maintenance</Label></ParameterValue><ParameterValue><Value>4</Value><Label>Monitor disable</Label></ParameterValue><ParameterValue><Value>3</Value><Label>Unmonitored</Label></ParameterValue></ParameterValues></ValidValues><MultiValue>true</MultiValue></ReportParameter><ReportParameter Name="TopNDownTime"><DataType>Integer</DataType><DefaultValue><Values><Value>2</Value></Values></DefaultValue><Prompt>TopNDownTime</Prompt></ReportParameter><ReportParameter Name="ManagementGroupId"><DataType>String</DataType><DefaultValue><Values><Value>0</Value></Values></DefaultValue><Prompt>ManagementGroupId</Prompt></ReportParameter></ReportParameters><Code><Script>
Const LocTableStringQuery As String = "R/S[@N='{0}']/text()"

Const TimeZoneParameterName As String = "TimeZone"
Const SD_BaseTypeParameterName As String = "StartDate_BaseType"
Const SD_BaseValueParameterName As String = "StartDate_BaseValue"
Const SD_OffsetTypeParameterName As String = "StartDate_OffsetType"
Const SD_OffsetValueParameterName As String = "StartDate_OffsetValue"
Const ED_BaseTypeParameterName As String = "EndDate_BaseType"
Const ED_BaseValueParameterName As String = "EndDate_BaseValue"
Const ED_OffsetTypeParameterName As String = "EndDate_OffsetType"
Const ED_OffsetValueParameterName As String = "EndDate_OffsetValue"
Const IsRelativeTimeSupported As Boolean = True
Const TimeTypeParameterName As String = "TimeType"
Const TimeWeekMapParameterName As String = "TimeWeekMap"
Const DataAggregationParameterName As String = "DataAggregation"

Dim LocTables As System.Collections.Generic.Dictionary(Of String, Microsoft.EnterpriseManagement.Reporting.XmlStringTable)
Dim ReportTimeZone As Microsoft.EnterpriseManagement.Reporting.TimeZoneCoreInformation
Dim ReportStartDate As DateTime
Dim ReportEndDate As DateTime
Dim ReportTime As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime
Dim ReportCulture As System.Globalization.CultureInfo
Dim ParameterProcessor As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor

Protected Overrides Sub OnInit()
LocTables = New System.Collections.Generic.Dictionary(Of String, Microsoft.EnterpriseManagement.Reporting.XmlStringTable)()
ReportTimeZone = Nothing
ReportStartDate = DateTime.MinValue
ReportEndDate = DateTime.MinValue
ReportTime = Nothing
ReportCulture = System.Globalization.CultureInfo.GetCultureInfo(Report.User("Language"))
ParameterProcessor = New Microsoft.EnterpriseManagement.Reporting.ParameterProcessor(ReportCulture)
End Sub

Public Function GetCallingManagementGroupId() As String
Return Microsoft.EnterpriseManagement.Reporting.ReportingConfiguration.ManagementGroupId
End Function

Public Function GetReportLocLanguageCode() As String
Return ReportCulture.ThreeLetterWindowsLanguageName
End Function

Public Function GetLocTable(Name As String) As Microsoft.EnterpriseManagement.Reporting.XmlStringTable
Dim LocTable As Microsoft.EnterpriseManagement.Reporting.XmlStringTable

If Not LocTables.TryGetValue(Name, LocTable) Then
LocTable = New Microsoft.EnterpriseManagement.Reporting.XmlStringTable(LocTableStringQuery, Report.Parameters(Name).Value)
LocTables.Add(Name, LocTable)
End If

Return LocTable
End Function

Public Function GetReportTimeZone() As Microsoft.EnterpriseManagement.Reporting.TimeZoneCoreInformation
If IsNothing(ReportTimeZone) Then ReportTimeZone = Microsoft.EnterpriseManagement.Reporting.TimeZoneCoreInformation.FromValueString(Report.Parameters(TimeZoneParameterName).Value)
Return ReportTimeZone
End Function

Public Function ToDbDate(ByVal DateValue As DateTime) As DateTime
Return GetReportTimeZone.ToUniversalTime(DateValue)
End Function

Public Function ToReportDate(ByVal DateValue As DateTime) As DateTime
Return GetReportTimeZone.ToLocalTime(DateValue)
End Function

Public Function GetReportStartDate() As DateTime
If (ReportStartDate = DateTime.MinValue) Then
If (IsRelativeTimeSupported) Then
ReportStartDate = ParameterProcessor.GetDateTime(ToReportDate(DateTime.UtcNow), Report.Parameters(SD_BaseTypeParameterName).Value, Report.Parameters(SD_BaseValueParameterName).Value, Report.Parameters(SD_OffsetTypeParameterName).Value, Report.Parameters(SD_OffsetValueParameterName).Value, Report.Parameters(TimeTypeParameterName).Value)
Else
ReportStartDate = ParameterProcessor.GetDateTime(ToReportDate(DateTime.UtcNow), Report.Parameters(SD_BaseTypeParameterName).Value, Report.Parameters(SD_BaseValueParameterName).Value, Report.Parameters(SD_OffsetTypeParameterName).Value, Report.Parameters(SD_OffsetValueParameterName).Value)
End If

If (CInt(Report.Parameters(DataAggregationParameterName).Value) &gt; 0) Then
ReportStartDate = ReportStartDate.Date
End If
End If
Return ReportStartDate
End Function

Public Function GetReportEndDate() As DateTime
If (ReportEndDate = DateTime.MinValue) Then
If (IsRelativeTimeSupported) Then
ReportEndDate = ParameterProcessor.GetDateTime(ToReportDate(DateTime.UtcNow), Report.Parameters(ED_BaseTypeParameterName).Value, Report.Parameters(ED_BaseValueParameterName).Value, Report.Parameters(ED_OffsetTypeParameterName).Value, Report.Parameters(ED_OffsetValueParameterName).Value, Report.Parameters(TimeTypeParameterName).Value)
If IsBusinessHours(GetReportTimeFilter()) Then ReportEndDate = ReportCulture.Calendar.AddDays(ReportEndDate, 1)
Else
ReportEndDate = ParameterProcessor.GetDateTime(ToReportDate(DateTime.UtcNow), Report.Parameters(ED_BaseTypeParameterName).Value, Report.Parameters(ED_BaseValueParameterName).Value, Report.Parameters(ED_OffsetTypeParameterName).Value, Report.Parameters(ED_OffsetValueParameterName).Value)
End If

If (CInt(Report.Parameters(DataAggregationParameterName).Value) &gt; 0) Then
ReportEndDate = ReportEndDate.Date
End If
End If
Return ReportEndDate
End Function

Public Function GetStartEndDateDiffInMilliseconds(Value As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime) As Double
If IsBusinessHours(GetReportTimeFilter()) Then

Dim StartTime As Date = GetReportStartDate().Add(Value.StartTime)
Dim EndTime As Date = GetReportEndDate().Add(Value.EndTime)

Dim DiffSpan As Global.System.TimeSpan = EndTime.Subtract(StartTime)
Dim TotalDays As Double = DiffSpan.TotalDays
Dim CountHours As Double = CDbl(0)
Dim DateTempToGetHours = New DateTime(EndTime.Year, EndTime.Month, EndTime.Day, StartTime.Hour, StartTime.Minute, StartTime.Second)
Dim WorkHours As Global.System.TimeSpan = EndTime.Subtract(DateTempToGetHours)
Dim STinMove As Date = StartTime
While EndTime.ToShortDateString() &lt;&gt; STinMove.ToShortDateString()
If Value.WeekMap.Contains(STinMove.DayOfWeek) Then
CountHours = CountHours + Math.Round(WorkHours.TotalHours)
End If
STinMove = STinMove.AddDays(1)
End While
Return Math.Round(CountHours * 60 * 60 * 1000) 'Return In Milliseconds
Else
Dim StartTime As Date = GetReportStartDate()
Dim EndTime As Date = GetReportEndDate()

Dim DiffSpan As Global.System.TimeSpan = EndTime.Subtract(StartTime)

Return DiffSpan.TotalMilliseconds
End If

End Function

Public Function GetReportTimeFilter() As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime
If IsNothing(ReportTime) Then
If (CInt(Report.Parameters(DataAggregationParameterName).Value) = 0) Then
ReportTime = New Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime(Report.Parameters(TimeTypeParameterName).Value, Report.Parameters(SD_BaseValueParameterName).Value, Report.Parameters(ED_BaseValueParameterName).Value, CStr(Join(Report.Parameters(TimeWeekMapParameterName).Value, ",")))
Else
ReportTime = New Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime(Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTimeType.Regular, Report.Parameters(SD_BaseValueParameterName).Value, Report.Parameters(ED_BaseValueParameterName).Value, CStr(Join(Report.Parameters(TimeWeekMapParameterName).Value, ",")))
End If
End If
Return ReportTime
End Function

Public Function IsBusinessHours(Value As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime) As Boolean
Return (Not IsNothing(Value)) And (Value.TimeType = Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTimeType.Business)
End Function

Public Function FormatDateTime(Format As String, Value As DateTime) As String
Return Value.ToString(Format, ReportCulture)
End Function

Public Function FormatNumber(Format As String, Value As Decimal) As String
Return Value.ToString(Format, ReportCulture)
End Function

Public Function FormatString(Format As String, ParamArray Values() As Object) As String
Return String.Format(ReportCulture, Format, Values)
End Function

Public Function NullFormatString(Format As String, Value As String) As String
Return IIF(String.IsNullOrEmpty(Value), String.Empty, String.Format(ReportCulture, Format, Value))
End Function

Public Function FormatBusinessHours(Format As String, Value As Microsoft.EnterpriseManagement.Reporting.ParameterProcessor.RelativeTime) As String
Dim result As String

If IsBusinessHours(Value) Then

Dim firstDay As DayOfWeek
Dim days As System.Collections.Generic.List(Of String)

firstDay = ReportCulture.DateTimeFormat.FirstDayOfWeek
days = New System.Collections.Generic.List(Of String)()

For loopDay As DayOfWeek = DayOfWeek.Sunday To DayOfWeek.Saturday
Dim day As DayOfWeek
day = CType((CInt(loopDay) + CInt(firstDay)) Mod 7, DayOfWeek)

If Value.WeekMap.Contains(day) Then days.Add(ReportCulture.DateTimeFormat.GetAbbreviatedDayName(day))
Next loopDay

result = FormatString(Format, DateTime.Today.Add(Value.StartTime).ToString(ReportCulture.DateTimeFormat.ShortTimePattern), DateTime.Today.Add(Value.EndTime).ToString(ReportCulture.DateTimeFormat.ShortTimePattern), String.Join(",", days.ToArray()))

Else
result = String.Empty
End If

Return result
End Function

Public Function BuildXmlValueList(ByVal ValueList() As Object) As String
Return Microsoft.EnterpriseManagement.Reporting.MultiValueParameter.ToXml("Data", "Value", ValueList)
End Function

REM ---------------------------------

Public Enum DataAggregationType
Hourly = 0
Daily = 1
End Enum

REM ---------------------------------

Const DownTimeParameterName As String = "DownTime"
Dim DownTimeTable As System.Collections.Generic.List(Of Integer)

Public Enum StateIntervalType
Red = 0
Green = 1
Yellow = 2
White = 3
Gray = 4
Black = 5
Blue = 6
ServiceGray = 7
End Enum

Public Function IsDownTime(time As StateIntervalType)
Select Case time
Case StateIntervalType.Red
Return True

Case StateIntervalType.Green
Return False

Case Else
If IsNothing(DownTimeTable) Then
DownTimeTable = New System.Collections.Generic.List(Of Integer)()
Dim val As String
For Each val In Report.Parameters(DownTimeParameterName).Value
DownTimeTable.Add(CInt(val))
Next
End If

Return DownTimeTable.Contains(CInt(time))
End Select
End Function


REM ---------------------------------

Public Function FormatTimeInterval(ByVal TimeInSeconds As Integer) As String
Dim Hours, Minutes, Seconds As Integer

Hours = Math.Floor(TimeInSeconds / 3600)
Minutes = Math.Floor((TimeInSeconds Mod 3600) / 60)
Seconds = TimeInSeconds Mod 60

Return FormatString("{0}:{1}:{2}", Hours.ToString(), Minutes.ToString("00"), Seconds.ToString("00"))
End Function

REM ---------------------------------

Public Enum AggregationType
Hourly = 0
Daily = 1
Monthly = 2
End Enum

Public Function GetAggregationType(ByVal StartDate As DateTime, ByVal EndDate As DateTime) As AggregationType
Dim Result As AggregationType
Dim TimeDiff As TimeSpan

TimeDiff = EndDate - StartDate

If (TimeDiff.TotalDays &gt; 32) Then
Result = AggregationType.Monthly
ElseIf (TimeDiff.TotalDays &gt; 1) Then
Result = AggregationType.Daily
Else
If (CInt(Report.Parameters(DataAggregationParameterName).Value) = 0) Then
Result = AggregationType.Hourly
Else
Result = AggregationType.Daily
End If
End If
Return Result
End Function</Script></Code><EmbeddedImages><EmbeddedImage Name="ID2017_12_28_09_54_15_Service_Map_Live_Maps_87_Internet_Explorer"><MIMEType>image/jpeg</MIMEType><ImageData>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</ImageData></EmbeddedImage></EmbeddedImages><Language>en-US</Language><CodeModules><CodeModule>Microsoft.EnterpriseManagement.Reporting.Code, Version=6.0.0.0, Culture=neutral</CodeModule></CodeModules><ConsumeContainerWhitespace>true</ConsumeContainerWhitespace><rd:ReportUnitType>Inch</rd:ReportUnitType><rd:ReportServerUrl>http://localhost/ReportServer_INSTANCE02</rd:ReportServerUrl><rd:ReportID>ab518a51-343d-46c4-b1f8-4ec65faafd95</rd:ReportID></Report>