/// <summary> /// Calculate grouped result /// </summary> /// <param name="i_Table">data source</param> public override void CalculateResult(DataTable i_Table) { //If have no data source ,clear group struct if (i_Table == null) { this.RootGroupInfo.ClearGroupResult(this._RootGroupInfo); _HaveData = false; return; } _HaveData = true; if (this.RootGroupInfo.Summaries == null) { this.RootGroupInfo.Summaries = new GroupSummaryCollection(); } if (this.RootGroupInfo.SubGroupInfos == null || this.RootGroupInfo.SubGroupInfos.Count == 0) { this.RootGroupInfo.SubGroupInfos = new GroupInfoCollection(); this.RootGroupInfo.SubGroupInfos.Add(new FieldGroupInfo("")); } if (MatrixInfo == null) { this.MatrixInfo = new MatrixInfo(RootGroupInfo, RootGroupInfo.SubGroupInfos[0], null, null); } else { this.MatrixInfo = MatrixInfo.CopyFrom(RootGroupInfo, MatrixInfo); } this.MatrixInfo.MatrixDisplay = this.MatrixDisplay; this.MatrixInfo.GridInfo.Apply(this.GridInfo); //Filter rows Webb.Collections.Int32Collection m_Rows = new Int32Collection(); if (this.ExControl != null && this.ExControl.Report != null) { m_Rows = this.ExControl.Report.Filter.GetFilteredRows(i_Table); //2009-5-25 11:02:57@Simon Add this Code } m_Rows = this.OneValueScFilter.Filter.GetFilteredRows(i_Table, m_Rows); m_Rows = this.RepeatFilter.Filter.GetFilteredRows(i_Table, m_Rows); this.Filter = AdvFilterConvertor.GetAdvFilter(DataProvider.VideoPlayBackManager.AdvReportFilters, this.Filter); //2009-4-29 11:37:37@Simon Add UpdateAdvFilter m_Rows = this.Filter.GetFilteredRows(i_Table, m_Rows); //06-04-2008@Scott m_Rows.CopyTo(this.FilteredRows); MatrixInfo.CalculateMatrixResult(i_Table, m_Rows); }