Host Group Memory Usage Forecasting

Microsoft.Virtualization.Reports.ForecastMachineGroupMemory (Report)

Element properties:

AccessibilityPublic
VisibleFalse

Report Localization:

R.FCChartMemory Usage ForecastMemory Usage Forecast
R.FC.YAxisMemory Usage In \%Memory Usage In \%
R.FC.XAxisTime LineTime Line
R.Legend.Limit95\% Forecast Confidence Interval95\% Forecast Confidence Interval
R.Legend.TSDataHistorical DataHistorical Data
R.Legend.FCDataForecast Data
R.FCTblMemory Usage ForecastMemory Usage Forecast
R.FCTblDateDateDate
R.FCTblMemUseageMemory Usage \%Memory Usage \%
R.FCTblDeviationStandard DeviationStandard Deviation
R.MBChartMemory Used/Total MBytesMemory Used/Total Megabytes
R.MB.YAxisMBMB
R.MB.XAxisTime LineTime Line
R.Legend.UsedUsed MemUsed Mem
R.Legend.TotalTotal MemTotal Memory
R.MBTableMemory Used/Total MBytesMemory Used/Total MBytes
R.MBTblDateDateDate
R.MBTblUsedMBUsed Memory(MB)Used Memory (MB)
R.MBTblTotalMBTotal Memory(MB)Total Memory (MB)
R.NoEnoughDataMsgWarning: Not enough Historical data provided for this sub report. Try to change the date range for historic data or the forecast granularity for this sub report.Warning: Not enough Historical data provided for this sub report. Try to change the date range for historic data or the forecast granularity for this sub report.
R.ErrorMessage.Cause.3There is no enough historical data to generate forecasting data, at least 2 historical data points are necessary.

Source Code:

<Report ID="Microsoft.Virtualization.Reports.ForecastMachineGroupMemory" Accessibility="Public" Visible="false">
<Definition>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body><Script>
<ReportItems>
<Chart Name="ChartMemoryUsedAndTotalMBytes">
<ChartCategoryHierarchy>
<ChartMembers>
<ChartMember>
<Group Name="ChartMemoryUsedAndTotalMBytes_CategoryGroup">
<GroupExpressions>
<GroupExpression>=Fields!DataPointDateTime.Value</GroupExpression>
</GroupExpressions>
</Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!DataPointDateTime.Value</Value>
</SortExpression>
</SortExpressions>
<Label>=Fields!DataPointDateTime.Value</Label>
</ChartMember>
</ChartMembers>
</ChartCategoryHierarchy>
<ChartSeriesHierarchy>
<ChartMembers>
<ChartMember>
<Label>Used Mem</Label>
</ChartMember>
<ChartMember>
<Label>Total Mem</Label>
</ChartMember>
</ChartMembers>
</ChartSeriesHierarchy>
<ChartData>
<ChartSeriesCollection>
<ChartSeries Name="UsedMem">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=Sum(Fields!UsedMem.Value)</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Legend.Used", "Used Mem")</LegendText>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
<ChartSeries Name="TotalMem">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=Sum(Fields!TotalMem.Value)</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Legend.Total", "Total Mem")</LegendText>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
</ChartSeriesCollection>
</ChartData>
<ChartAreas>
<ChartArea Name="Default">
<ChartCategoryAxes>
<ChartAxis Name="Primary">
<Style></Style>
<FontSize>8pt</FontSize>
<Format>MM/dd/yyyy</Format>
</Style>
<ChartAxisTitle>
<Caption>=Code.GetLocTable("LT_Report").GetString("R.MB.XAxis", "Time Line")</Caption>
<Style></Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<Angle>-30</Angle>
<PreventLabelOffset>true</PreventLabelOffset>
<AllowLabelRotation>None</AllowLabelRotation>
<LabelsAutoFitDisabled>true</LabelsAutoFitDisabled>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
<ChartAxisTitle>
<Caption>Axis Title</Caption>
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
</ChartCategoryAxes>
<ChartValueAxes>
<ChartAxis Name="Primary">
<Style></Style>
<FontSize>8pt</FontSize>
<Format>#,0;(#,0)</Format>
</Style>
<ChartAxisTitle>
<Caption>=Code.GetLocTable("LT_Report").GetString("R.MB.YAxis", "MB")</Caption>
<Style></Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</ChartAxisTitle>
<IntervalType>Number</IntervalType>
<ChartMajorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Interlaced>true</Interlaced>
<InterlacedColor>Lavender</InterlacedColor>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<PreventLabelOffset>true</PreventLabelOffset>
<AllowLabelRotation>None</AllowLabelRotation>
<ChartAxisScaleBreak>
<Enabled>true</Enabled>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
<ChartAxisTitle>
<Caption>Axis Title</Caption>
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
</ChartValueAxes>
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
</ChartArea>
</ChartAreas>
<ChartLegends>
<ChartLegend Name="Default">
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<FontSize>8pt</FontSize>
</Style>
<Position>BottomCenter</Position>
<DockOutsideChartArea>true</DockOutsideChartArea>
<ChartLegendTitle>
<Caption/>
<Style></Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
<TextAlign>Center</TextAlign>
</Style>
</ChartLegendTitle>
<HeaderSeparatorColor>Black</HeaderSeparatorColor>
<ColumnSeparatorColor>Black</ColumnSeparatorColor>
</ChartLegend>
</ChartLegends>
<ChartTitles>
<ChartTitle Name="Default">
<Caption>=Code.GetLocTable("LT_Report").GetString("R.MBChart", "Memory Used/Total MBytes")</Caption>
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<FontWeight>Bold</FontWeight>
<TextAlign>General</TextAlign>
<VerticalAlign>Top</VerticalAlign>
</Style>
</ChartTitle>
</ChartTitles>
<Palette>BrightPastel</Palette>
<ChartBorderSkin>
<Style></Style>
<BackgroundColor>Gray</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
<Color>White</Color>
</Style>
</ChartBorderSkin>
<ChartNoDataMessage Name="NoDataMessage">
<Caption>
=Code.GetLocTable("LT_Report").GetString("R.ErrorMessage", "No data is available for this report. Possible causes include") &amp; ":"
&amp; VbCrLf &amp; "-- "&amp;
Code.GetLocTable("LT_Report").GetString("R.ErrorMessage.Cause.1", "The performance rules for the report have not been enabled in the System Center Virtual Machine Manager 2012 Monitoring Management Pack. For more information, see the description at the top of the report.")
&amp; VbCrLf &amp; "-- "&amp;
Code.GetLocTable("LT_Report").GetString("R.ErrorMessage.Cause.2", "No computers match your selection criteria. Review your selection criteria to ensure that they are not too restrictive.")
</Caption>
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<TextAlign>Left</TextAlign>
<VerticalAlign>Top</VerticalAlign>
</Style>
</ChartNoDataMessage>
<DataSetName>MemoryUsedAndTotalMBytes</DataSetName>
<Top>0.01389in</Top>
<Left>5.54617in</Left>
<Height>3.5in</Height>
<Width>5.46839in</Width>
<ToolTip>ChartMemoryUsedAndTotalMBytes</ToolTip>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>White</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
</Chart>
<Textbox Name="Textbox_MemoryUsedAndTotalMBytes">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.MBTable", "Memory Used/Total MBytes")</Value>
<Style></Style>
<Color>Blue</Color>
</Style>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<Top>3.56945in</Top>
<Left>5.54617in</Left>
<Height>0.25in</Height>
<Width>5.45918in</Width>
<ZIndex>1</ZIndex>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Tablix Name="TablixMemoryUsedAndTotalMBytes">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>1.81973in</Width>
</TablixColumn>
<TablixColumn>
<Width>1.81973in</Width>
</TablixColumn>
<TablixColumn>
<Width>1.81973in</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox17">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.MBTblDate", "Date")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<VerticalAlign>Bottom</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox18">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.MBTblUsedMB", "Used Memory(MB)")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<VerticalAlign>Bottom</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox19">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.MBTblTotalMB", "Total Memory(MB)")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox12</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox35">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!DataPointDateTime.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox36">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!UsedMem.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox24</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox37">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!TotalMem.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox25</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="DataPointDateTime">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!DataPointDateTime.Value</Value>
<Style></Style>
<Format>MM/dd/yyyy</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="UsedMem">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!UsedMem.Value</Value>
<Style></Style>
<Format>#,0.00;(#,0.00)</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="TotalMem">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!TotalMem.Value</Value>
<Style></Style>
<Format>#,0.00;(#,0.00)</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember/>
<TablixMember/>
<TablixMember/>
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details6"/>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<FixedColumnHeaders>true</FixedColumnHeaders>
<NoRowsMessage>=Code.GetLocTable("LT_Report").GetString("R.ErrorMessage", "No data is available for this report. ")</NoRowsMessage>
<DataSetName>MemoryUsedAndTotalMBytes</DataSetName>
<Top>3.86111in</Top>
<Left>5.55538in</Left>
<Height>0.75in</Height>
<Width>5.45919in</Width>
<ZIndex>2</ZIndex>
<Visibility>
<Hidden>true</Hidden>
<ToggleItem>Textbox_MemoryUsedAndTotalMBytes</ToggleItem>
</Visibility>
<ToolTip>TablixMemoryUsedAndTotalMBytes</ToolTip>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
</Style>
</Tablix>
<Chart Name="ChartMemoryUsageForecast">
<ChartCategoryHierarchy>
<ChartMembers>
<ChartMember>
<Group Name="Chart4_CategoryGroup4">
<GroupExpressions>
<GroupExpression>=Fields!SeriesTime.Value</GroupExpression>
</GroupExpressions>
</Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!SeriesTime.Value</Value>
</SortExpression>
</SortExpressions>
<Label>=Fields!SeriesTime.Value</Label>
</ChartMember>
</ChartMembers>
</ChartCategoryHierarchy>
<ChartSeriesHierarchy>
<ChartMembers>
<ChartMember>
<Label>Series Standard Deviation</Label>
</ChartMember>
<ChartMember>
<Label>Series Data</Label>
</ChartMember>
<ChartMember>
<Label>Series Standard Deviation</Label>
</ChartMember>
<ChartMember>
<Label/>
</ChartMember>
</ChartMembers>
</ChartSeriesHierarchy>
<ChartData>
<ChartSeriesCollection>
<ChartSeries Name="Series">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=IIF((Fields!SeriesData.Value + 2 * Fields!SeriesStandardDeviation.Value) &gt; 100, 100, (Fields!SeriesData.Value + 2 * Fields!SeriesStandardDeviation.Value))</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<ToolTip>Upper Limit Prediction</ToolTip>
<Style></Style>
<Border>
<Color>Blue</Color>
<Style></Style>Dotted</Style>
<Width>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount(), "1.5pt", "0pt")</Width>
</Border>
<Color>Blue</Color>
</Style>
<ChartMarker>
<Style></Style>
<Color>Purple</Color>
</Style>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Legend.Limit", "95% Forecast Confidence Interval")</LegendText>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
<ChartSeries Name="SeriesData">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=Switch(Fields!SeriesData.Value &gt; 100, 100,
Fields!SeriesData.Value &lt; 0, 0,
Fields!SeriesData.Value &lt;= 100 , Fields!SeriesData.Value,
Fields!SeriesData.Value &gt;=0, Fields!SeriesData.Value)</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<Style></Style>
<Border>
<Width>1.5pt</Width>
</Border>
<Color>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount(), "Blue", "Red")</Color>
</Style>
<ChartMarker>
<Type>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount(), "Square", "None")</Type>
<Style></Style>
<Color>Purple</Color>
</Style>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Legend.TSData", "Historical Data")</LegendText>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
<ChartSeries Name="Series1">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=IIF((Fields!SeriesData.Value - 2 * Fields!SeriesStandardDeviation.Value) &lt; 0, 0, (Fields!SeriesData.Value - 2 * Fields!SeriesStandardDeviation.Value))</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<Style></Style>
<Border>
<Color>Blue</Color>
<Style></Style>Dotted</Style>
<Width>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount(), "1.5pt", "0pt")</Width>
</Border>
<Color>Blue</Color>
</Style>
<ChartMarker>
<Style/>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Title", "95% Forecast Confidence Interval")</LegendText>
<Hidden>true</Hidden>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
<ChartSeries Name="Series2">
<ChartDataPoints>
<ChartDataPoint>
<ChartDataPointValues>
<Y>=0</Y>
</ChartDataPointValues>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
<Style></Style>
<Border>
<Color>Blue</Color>
<Width>0.5pt</Width>
</Border>
<Color>Blue</Color>
</Style>
<ChartMarker>
<Style/>
</ChartMarker>
<DataElementOutput>Output</DataElementOutput>
</ChartDataPoint>
</ChartDataPoints>
<Type>Line</Type>
<Style/>
<ChartEmptyPoints>
<Style/>
<ChartMarker>
<Style/>
</ChartMarker>
<ChartDataLabel>
<Style/>
</ChartDataLabel>
</ChartEmptyPoints>
<ChartItemInLegend>
<LegendText>=Code.GetLocTable("LT_Report").GetString("R.Legend.FCData", "Forecast Data")</LegendText>
</ChartItemInLegend>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>
</ChartSeriesCollection>
</ChartData>
<ChartAreas>
<ChartArea Name="Default">
<ChartCategoryAxes>
<ChartAxis Name="Primary">
<Style></Style>
<Border>
<Color>Gray</Color>
<Width>1.5pt</Width>
</Border>
<FontSize>8pt</FontSize>
<Format>MM/dd/yyyy</Format>
</Style>
<ChartAxisTitle>
<Caption>=Code.GetLocTable("LT_Report").GetString("R.FC.XAxis", "Time Line")</Caption>
<Style></Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<Angle>-30</Angle>
<PreventLabelOffset>true</PreventLabelOffset>
<AllowLabelRotation>None</AllowLabelRotation>
<LabelsAutoFitDisabled>true</LabelsAutoFitDisabled>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
<ChartAxisTitle>
<Caption>Axis Title</Caption>
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Enabled>False</Enabled>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
</ChartCategoryAxes>
<ChartValueAxes>
<ChartAxis Name="Primary">
<Style></Style>
<Border>
<Color>Gray</Color>
<Width>1.5pt</Width>
</Border>
<FontSize>8pt</FontSize>
<Format>#,0;(#,0)</Format>
</Style>
<ChartAxisTitle>
<Caption>=Code.GetLocTable("LT_Report").GetString("R.FC.YAxis", "Memory Usage In %")</Caption>
<Style></Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</ChartAxisTitle>
<IntervalType>Number</IntervalType>
<ChartMajorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Interlaced>true</Interlaced>
<InterlacedColor>Lavender</InterlacedColor>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<PreventLabelOffset>true</PreventLabelOffset>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
<ChartAxis Name="Secondary">
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
<ChartAxisTitle>
<Caption>Axis Title</Caption>
<Style></Style>
<FontSize>8pt</FontSize>
</Style>
</ChartAxisTitle>
<ChartMajorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
</Border>
</Style>
</ChartMajorGridLines>
<ChartMinorGridLines>
<Style></Style>
<Border>
<Color>Gainsboro</Color>
<Style></Style>Dotted</Style>
</Border>
</Style>
</ChartMinorGridLines>
<ChartMinorTickMarks>
<Length>0.5</Length>
</ChartMinorTickMarks>
<CrossAt>NaN</CrossAt>
<Location>Opposite</Location>
<Minimum>NaN</Minimum>
<Maximum>NaN</Maximum>
<ChartAxisScaleBreak>
<Style/>
</ChartAxisScaleBreak>
</ChartAxis>
</ChartValueAxes>
<Style></Style>
<BackgroundColor>=IIF(Fields!SeriesStandardDeviation.Value &gt; 0, "Khaki", "AliceBlue")</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
</ChartArea>
</ChartAreas>
<ChartLegends>
<ChartLegend Name="Default">
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<FontSize>8pt</FontSize>
</Style>
<Position>BottomCenter</Position>
<DockOutsideChartArea>true</DockOutsideChartArea>
<ChartLegendTitle>
<Caption/>
<Style></Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
<TextAlign>Center</TextAlign>
</Style>
</ChartLegendTitle>
<HeaderSeparatorColor>Black</HeaderSeparatorColor>
<ColumnSeparatorColor>Black</ColumnSeparatorColor>
</ChartLegend>
</ChartLegends>
<ChartTitles>
<ChartTitle Name="Default">
<Caption>=Code.GetLocTable("LT_Report").GetString("R.FCChart", "Memory Usage Forecast")</Caption>
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<FontWeight>Bold</FontWeight>
<TextAlign>General</TextAlign>
<VerticalAlign>Top</VerticalAlign>
</Style>
</ChartTitle>
</ChartTitles>
<Palette>BrightPastel</Palette>
<ChartBorderSkin>
<Style></Style>
<BackgroundColor>Gray</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
<Color>White</Color>
</Style>
</ChartBorderSkin>
<ChartNoDataMessage Name="NoDataMessage">
<Caption>=Code.GetLocTable("LT_Report").GetString("R.ErrorMessage.Cause.3", "There is no enough historical data to generate forecasting data, at least 2 historical data points are necessary.")</Caption>
<Style></Style>
<BackgroundGradientType>None</BackgroundGradientType>
<TextAlign>Left</TextAlign>
<VerticalAlign>Top</VerticalAlign>
</Style>
</ChartNoDataMessage>
<DataSetName>MemoryUsageForecasting</DataSetName>
<Left>0.02222in</Left>
<Height>3.5in</Height>
<Width>5.46839in</Width>
<ZIndex>3</ZIndex>
<Visibility>
<Hidden>=IIF(Code.GetHistoricalDataPointsCount() &gt; 1, False, True)</Hidden>
</Visibility>
<ToolTip>ChartMemoryUsageForecast</ToolTip>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>White</BackgroundColor>
<BackgroundGradientType>None</BackgroundGradientType>
</Style>
</Chart>
<Textbox Name="Textbox_MemoryUsageForecast">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.FCTbl", "Memory Usage Forecast")</Value>
<Style></Style>
<Color>Blue</Color>
</Style>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<Top>3.54167in</Top>
<Height>0.25in</Height>
<Width>5.46839in</Width>
<ZIndex>4</ZIndex>
<Visibility>
<Hidden>=IIF(Code.GetHistoricalDataPointsCount() &gt; 1, False, True)</Hidden>
</Visibility>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Tablix Name="TablixMemoryUsageForecasting">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>1.8228in</Width>
</TablixColumn>
<TablixColumn>
<Width>1.8228in</Width>
</TablixColumn>
<TablixColumn>
<Width>1.8228in</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.FCTblDate", "Date")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<VerticalAlign>Bottom</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox15">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.FCTblMemUseage", "Memory Usage %")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<VerticalAlign>Bottom</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox16">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.FCTblDeviation", "Standard Deviation")</Value>
<Style></Style>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox12</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>Lavender</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox32">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!SeriesTime.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox33">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!SeriesData.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox24</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox34">
<CanGrow>true</CanGrow>
<UserSort>
<SortExpression>=Fields!SeriesStandardDeviation.Value</SortExpression>
</UserSort>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value/>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox25</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.25in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="SeriesTime4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!SeriesTime.Value</Value>
<Style></Style>
<Format>MM/dd/yyyy</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>SeriesTime</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount() , "Khaki", "No Color")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="SeriesData4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Switch(Fields!SeriesData.Value &gt; 100, 100,
Fields!SeriesData.Value &lt; 0, 0,
Fields!SeriesData.Value &lt;= 100 , Fields!SeriesData.Value,
Fields!SeriesData.Value &gt;=0, Fields!SeriesData.Value)</Value>
<Style></Style>
<Format>#,0.00;(#,0.00)</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>SeriesData</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount() , "Khaki", "No Color")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="SeriesStandardDeviation4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!SeriesStandardDeviation.Value</Value>
<Style></Style>
<Format>#,0.0000;(#,0.0000)</Format>
</Style>
</TextRun>
</TextRuns>
<Style></Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>SeriesStandardDeviation</rd:DefaultName>
<Style></Style>
<Border>
<Color>LightGrey</Color>
<Style></Style>Solid</Style>
</Border>
<BackgroundColor>=IIF(RowNumber("MemoryUsageForecasting") &gt; Code.GetHistoricalDataPointsCount() , "Khaki", "No Color")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember/>
<TablixMember/>
<TablixMember/>
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details5"/>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<FixedColumnHeaders>true</FixedColumnHeaders>
<NoRowsMessage>=Code.GetLocTable("LT_Report").GetString("R.ErrorMessage.Cause.3", "There is no enough historical data to generate forecasting data, at least 2 historical data points are necessary.")</NoRowsMessage>
<DataSetName>MemoryUsageForecasting</DataSetName>
<Top>3.84722in</Top>
<Height>0.75in</Height>
<Width>5.4684in</Width>
<ZIndex>5</ZIndex>
<Visibility>
<Hidden>true</Hidden>
<ToggleItem>Textbox_MemoryUsageForecast</ToggleItem>
</Visibility>
<ToolTip>TablixMemoryUsageForecasting</ToolTip>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
</Style>
</Tablix>
<Textbox Name="Textbox1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.ErrorMessage.Cause.3", "There is no enough historical data to generate forecasting data, at least 2 historical data points are necessary.")</Value>
<Style/>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>0.01389in</Top>
<Left>0.00834in</Left>
<Height>1in</Height>
<Width>5.46005in</Width>
<ZIndex>6</ZIndex>
<Visibility>
<Hidden>=IIF(Code.GetHistoricalDataPointsCount() &gt; 1, True, False)</Hidden>
</Visibility>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Code.GetLocTable("LT_Report").GetString("R.NoEnoughDataMsg", "Warning: Not enough Historical data provided for this sub report. Try to change the date range for historic data or the forecast granularity for this sub report.")</Value>
<Style></Style>
<Color>Red</Color>
</Style>
</TextRun>
</TextRuns>
<Style/>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>4.63889in</Top>
<Height>0.21527in</Height>
<Width>11.00535in</Width>
<ZIndex>7</ZIndex>
<Visibility>
<Hidden>=IIF(Code.GetHistoricalDataPointsCount() &gt;= 10, True, False)</Hidden>
</Visibility>
<Style></Style>
<Border>
<Style></Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Height>4.91319in</Height>
<Style/>
</Script></Body>
<Width>11.01457in</Width>
<Page>
<LeftMargin>1in</LeftMargin>
<RightMargin>1in</RightMargin>
<TopMargin>1in</TopMargin>
<BottomMargin>1in</BottomMargin>
<Style/>
</Page>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataWarehouseMain">
<DataSourceReference>OpsMgrDataWare</DataSourceReference>
<rd:SecurityType>None</rd:SecurityType>
<rd:DataSourceID>205a8894-1fc0-4210-9677-19ae89875210</rd:DataSourceID>
</DataSource>
<DataSource Name="AnalysisServiceDS">
<ConnectionProperties>
<DataProvider>OLEDB-MD</DataProvider>
<ConnectString>="Data Source=" &amp; Parameters!AnalysisServerName.Value &amp; ";Initial Catalog=VMMAnalysisServerDB"</ConnectString>
</ConnectionProperties>
<rd:SecurityType>None</rd:SecurityType>
<rd:DataSourceID>8365aba3-4674-4007-82e9-032d087ad297</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="LT_Report_Query">
<Query>
<DataSourceName>DataWarehouseMain</DataSourceName>
<QueryParameters>
<QueryParameter Name="@ManagementGroupGuid">
<Value>=Code.GetCallingManagementGroupId()</Value>
</QueryParameter>
<QueryParameter Name="@ManagementPackSystemName">
<Value>Microsoft.SystemCenter.VirtualMachineManager.2012.Reports</Value>
</QueryParameter>
<QueryParameter Name="@ReportSystemName">
<Value>Microsoft.Virtualization.Reports.ForecastMachineGroupMemory</Value>
</QueryParameter>
<QueryParameter Name="@LanguageCode">
<Value>=Code.GetReportLocLanguageCode()</Value>
</QueryParameter>
<QueryParameter Name="@Scope">
<Value>R.%</Value>
</QueryParameter>
</QueryParameters>
<CommandType>StoredProcedure</CommandType>
<CommandText>ReportDisplayStringGet</CommandText>
</Query>
<Fields>
<Field Name="ValueXml">
<DataField>XML_F52E2B61-18A1-11d1-B105-00805F49916B</DataField>
</Field>
<Field Name="ValueName">
<Value>="R"</Value>
</Field>
</Fields>
</DataSet>
<DataSet Name="ManagementGroups">
<Query>
<DataSourceName>DataWarehouseMain</DataSourceName>
<CommandText>SELECT ManagementGroupGuid, ManagementGroupDefaultName FROM vManagementGroup</CommandText>
</Query>
<Fields>
<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>
</Fields>
</DataSet>
<DataSet Name="MemoryUsageTimeSeries">
<Query>
<DataSourceName>DataWarehouseMain</DataSourceName>
<QueryParameters>
<QueryParameter Name="@UTCStartDate1">
<Value>=Parameters!UTCStartDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@StartDate1">
<Value>=Parameters!StartDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@UTCEndDate1">
<Value>=Parameters!UTCEndDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@ObjectList">
<Value>=Parameters!ObjectList.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@TotalMemoryPropertyID">
<Value>=Parameters!TotalMemoryPropertyID.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@VMHostTypeRowId">
<Value>=Parameters!VMHostTypeRowId.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@ForecastGranularity">
<Value>=Parameters!ForecastGranularity.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
</QueryParameters>
<CommandType>StoredProcedure</CommandType>
<CommandText>Microsoft_SystemCenter_VirtualMachineManager_Report_ForecastMachineGroupDataTimeSeries</CommandText>
</Query>
<Fields>
<Field Name="MemUsageTimeSeries">
<DataField>MemUsageTimeSeries</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
</Fields>
</DataSet>
<DataSet Name="MemoryUsageForecasting">
<Query>
<DataSourceName>AnalysisServiceDS</DataSourceName>
<CommandText>=IIF(Code.GetHistoricalDataPointsCount() &gt; 1, Code.FormatAnalysisStoredProcCommandText(), Code.StaticAnalysisStoredProcCommandText())</CommandText>
</Query>
<Fields>
<Field Name="SeriesTime">
<DataField>SeriesTime</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
<Field Name="SeriesData">
<DataField>SeriesData</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
<Field Name="SeriesStandardDeviation">
<DataField>SeriesStandardDeviation</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
</Fields>
</DataSet>
<DataSet Name="MemoryUsedAndTotalMBytes">
<Query>
<DataSourceName>DataWarehouseMain</DataSourceName>
<QueryParameters>
<QueryParameter Name="@UTCStartDate1">
<Value>=Parameters!UTCStartDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@StartDate1">
<Value>=Parameters!StartDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@UTCEndDate1">
<Value>=Parameters!UTCEndDate1.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@ObjectList">
<Value>=Parameters!ObjectList.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@TotalMemoryPropertyID">
<Value>=Parameters!TotalMemoryPropertyID.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@VMHostTypeRowId">
<Value>=Parameters!VMHostTypeRowId.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
<QueryParameter Name="@ForecastGranularity">
<Value>=Parameters!ForecastGranularity.Value</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
</QueryParameters>
<CommandType>StoredProcedure</CommandType>
<CommandText>Microsoft_SystemCenter_VirtualMachineManager_Report_ForecastMachineGroupHostResourceData</CommandText>
</Query>
<Fields>
<Field Name="DataPointDateTime">
<DataField>DataPointDateTime</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
<Field Name="UsedMem">
<DataField>UsedMem</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
<Field Name="TotalMem">
<DataField>TotalMem</DataField>
<rd:UserDefined>true</rd:UserDefined>
</Field>
</Fields>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="LT_Report">
<DataType>String</DataType>
<DefaultValue>
<DataSetReference>
<DataSetName>LT_Report_Query</DataSetName>
<ValueField>ValueXml</ValueField>
</DataSetReference>
</DefaultValue>
<Hidden>true</Hidden>
<ValidValues>
<DataSetReference>
<DataSetName>LT_Report_Query</DataSetName>
<ValueField>ValueXml</ValueField>
<LabelField>ValueName</LabelField>
</DataSetReference>
</ValidValues>
</ReportParameter>
<ReportParameter Name="ManagementGroupId">
<DataType>String</DataType>
<DefaultValue>
<DataSetReference>
<DataSetName>ManagementGroups</DataSetName>
<ValueField>ManagementGroupGuid</ValueField>
</DataSetReference>
</DefaultValue>
<AllowBlank>true</AllowBlank>
<Prompt>ManagementGroupId</Prompt>
<Hidden>true</Hidden>
<ValidValues>
<DataSetReference>
<DataSetName>ManagementGroups</DataSetName>
<ValueField>ManagementGroupGuid</ValueField>
<LabelField>ManagementGroupDefaultName</LabelField>
</DataSetReference>
</ValidValues>
<MultiValue>true</MultiValue>
</ReportParameter>
<ReportParameter Name="ForecastGranularity">
<DataType>Integer</DataType>
<Prompt>Forecast Granularity</Prompt>
</ReportParameter>
<ReportParameter Name="UTCStartDate1">
<DataType>DateTime</DataType>
<Prompt>[UTCStartDate]</Prompt>
</ReportParameter>
<ReportParameter Name="StartDate1">
<DataType>DateTime</DataType>
<Prompt>[StartDate]</Prompt>
</ReportParameter>
<ReportParameter Name="UTCEndDate1">
<DataType>DateTime</DataType>
<Prompt>[EndDate]</Prompt>
</ReportParameter>
<ReportParameter Name="ObjectList">
<DataType>String</DataType>
<Prompt>[Objects]</Prompt>
</ReportParameter>
<ReportParameter Name="TotalMemoryPropertyID">
<DataType>String</DataType>
<Prompt>TotalMemoryPropertyID</Prompt>
</ReportParameter>
<ReportParameter Name="VMHostTypeRowId">
<DataType>String</DataType>
<Prompt>VMHostTypeRowId</Prompt>
</ReportParameter>
<ReportParameter Name="MemoryUsageTimeSeries">
<DataType>String</DataType>
<Nullable>true</Nullable>
<DefaultValue>
<DataSetReference>
<DataSetName>MemoryUsageTimeSeries</DataSetName>
<ValueField>MemUsageTimeSeries</ValueField>
</DataSetReference>
</DefaultValue>
<AllowBlank>true</AllowBlank>
<Prompt>MemoryUsageTimeSeries</Prompt>
<Hidden>true</Hidden>
<ValidValues>
<DataSetReference>
<DataSetName>MemoryUsageTimeSeries</DataSetName>
<ValueField>MemUsageTimeSeries</ValueField>
<LabelField>MemUsageTimeSeries</LabelField>
</DataSetReference>
</ValidValues>
</ReportParameter>
<ReportParameter Name="AnalysisServerName">
<DataType>String</DataType>
<Prompt>AnalysisServerName</Prompt>
</ReportParameter>
</ReportParameters>
<Code><Script>
Const LocTableStringQuery As String = "R/S[@N='{0}']/text()"
Const TimeSeriesParameterName As String = "MemoryUsageTimeSeries"

Public Function FormatAnalysisStoredProcCommandText() As String
Dim TimeSeries As String() = Report.Parameters(TimeSeriesParameterName).Value.Split(";")
Dim DatePointCount As Integer = TimeSeries.Length
Dim ForecastPointCount As Integer = (DatePointCount - 1) * 0.3
Return "CALL AnalysisStoredProc.GetTimeSeriesForecast('" + Report.Parameters(TimeSeriesParameterName).Value + "', " + ForecastPointCount.ToString() + ");"
End Function

Public Function StaticAnalysisStoredProcCommandText() As String
Return "CALL AnalysisStoredProc.GetTimeSeriesForecast('01/1900, 0;02/1900,0', 1);"
End Function

Public Function GetHistoricalDataPointsCount() As Integer
If Report.Parameters(TimeSeriesParameterName).Value Is Nothing Then
Return 0
End If
Dim TimeSeries As String() = Report.Parameters(TimeSeriesParameterName).Value.Split(";")
Return TimeSeries.Length - 1
End Function

Dim LocTables As System.Collections.Generic.Dictionary(Of String, Microsoft.EnterpriseManagement.Reporting.XmlStringTable)
Dim ReportCulture As System.Globalization.CultureInfo


Protected Overrides Sub OnInit()
LocTables = New System.Collections.Generic.Dictionary(Of String, Microsoft.EnterpriseManagement.Reporting.XmlStringTable)()
ReportCulture = System.Globalization.CultureInfo.GetCultureInfo(Report.User("Language"))
End Sub

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

Public Function GetLocTable(ByVal Name As String) As Microsoft.EnterpriseManagement.Reporting.XmlStringTable
If (LocTables is Nothing) then
LocTables = New System.Collections.Generic.Dictionary(Of String, Microsoft.EnterpriseManagement.Reporting.XmlStringTable)()
End If
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 GetReportLocLanguageCode() As String
If (ReportCulture is Nothing) then
ReportCulture = System.Globalization.CultureInfo.GetCultureInfo(Report.User("Language"))
End If
Return ReportCulture.ThreeLetterWindowsLanguageName
End Function

Public Function BuildXmlValueList(ByVal ValueList() As Object) As String
Return Microsoft.EnterpriseManagement.Reporting.MultiValueParameter.ToXml("Data", "Value", ValueList)
End Function
</Script></Code>
<Language>=User!Language</Language>
<CodeModules>
<CodeModule>Microsoft.EnterpriseManagement.Reporting.Code, Version=6.0.0.0, Culture=neutral</CodeModule>
</CodeModules>
<rd:ReportUnitType>Inch</rd:ReportUnitType>
<rd:ReportID>71f30a82-a776-4372-9d33-d3358f535f20</rd:ReportID>
</Report>
</Definition>
<ReportStrings>
<ReportString ID="R.FCChart"/>
<ReportString ID="R.FC.YAxis"/>
<ReportString ID="R.FC.XAxis"/>
<ReportString ID="R.Legend.Limit"/>
<ReportString ID="R.Legend.TSData"/>
<ReportString ID="R.Legend.FCData"/>
<ReportString ID="R.FCTbl"/>
<ReportString ID="R.FCTblDate"/>
<ReportString ID="R.FCTblMemUseage"/>
<ReportString ID="R.FCTblDeviation"/>
<ReportString ID="R.MBChart"/>
<ReportString ID="R.MB.YAxis"/>
<ReportString ID="R.MB.XAxis"/>
<ReportString ID="R.Legend.Used"/>
<ReportString ID="R.Legend.Total"/>
<ReportString ID="R.MBTable"/>
<ReportString ID="R.MBTblDate"/>
<ReportString ID="R.MBTblUsedMB"/>
<ReportString ID="R.MBTblTotalMB"/>
<ReportString ID="R.NoEnoughDataMsg"/>
<ReportString ID="R.ErrorMessage.Cause.3"/>
</ReportStrings>
</Report>