Example #1
0
        private static bool SearchRowTotal(Matrix matrix, MatrixMemberCollection rowTotalChildren, IntList hiddenColumns, SearchContext searchContext)
        {
            bool         flag         = false;
            MatrixMember matrixMember = null;
            int          num          = 0;

            while (!flag && num < rowTotalChildren.Count)
            {
                matrixMember = rowTotalChildren[num];
                flag         = matrixMember.ReportItem.Search(searchContext);
                if (!flag)
                {
                    flag = SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext);
                }
                num++;
            }
            return(flag);
        }
Example #2
0
 private void CalculateGroupsCellsBeforeRowHeaders()
 {
     m_groupsBeforeRowHeaders = ((Microsoft.ReportingServices.ReportProcessing.Matrix)base.ReportItemDef).GroupsBeforeRowHeaders;
     if (m_groupsBeforeRowHeaders > 0 && base.ReportItemInstance != null)
     {
         MatrixHeadingInstanceList columnInstances        = ((MatrixInstance)base.ReportItemInstance).ColumnInstances;
         MatrixMemberCollection    matrixMemberCollection = null;
         int num = -1;
         if (columnInstances != null && 0 < columnInstances.Count)
         {
             num = columnInstances.Count - 1;
             if (columnInstances[0].IsSubtotal || (m_groupsBeforeRowHeaders == num && columnInstances[num].IsSubtotal))
             {
                 m_groupsBeforeRowHeaders++;
             }
         }
         m_cellsBeforeRowHeaders = 0;
         if (m_groupsBeforeRowHeaders > num + 1)
         {
             m_groupsBeforeRowHeaders = 0;
         }
         else
         {
             matrixMemberCollection = ColumnMemberCollection;
         }
         for (int i = 0; i < m_groupsBeforeRowHeaders; i++)
         {
             m_cellsBeforeRowHeaders += matrixMemberCollection[i].ColumnSpan;
         }
     }
     else
     {
         m_groupsBeforeRowHeaders = 0;
         m_cellsBeforeRowHeaders  = 0;
     }
 }
Example #3
0
        private static bool SearchMatrixColumns(MatrixMemberCollection columns, ref IntList hiddenColumns, SearchContext searchContext)
        {
            if (columns == null)
            {
                return(false);
            }
            bool                   flag                   = false;
            int                    num                    = 0;
            int                    num2                   = columns.Count - 1;
            int                    num3                   = 0;
            MatrixMember           matrixMember           = null;
            MatrixMemberCollection matrixMemberCollection = null;
            SearchContext          searchContext2         = new SearchContext(searchContext);
            int                    index                  = 0;
            int                    count                  = 0;

            num3 = num2 - num + 1;
            int num4 = num;

            while (!flag && num4 <= num2)
            {
                matrixMember = columns[num4];
                if (matrixMember.Hidden)
                {
                    if (matrixMember.IsTotal)
                    {
                        if (hiddenColumns != null)
                        {
                            index = hiddenColumns.Count;
                        }
                        count = matrixMember.ColumnSpan;
                    }
                    BuildHiddenColumns(matrixMember, ref hiddenColumns);
                    num3--;
                }
                else
                {
                    flag = matrixMember.ReportItem.Search(searchContext2);
                    if (!flag)
                    {
                        matrixMemberCollection = matrixMember.Children;
                        flag = SearchMatrixColumns(matrixMemberCollection, ref hiddenColumns, searchContext2);
                    }
                }
                num4++;
            }
            if (num3 == 0)
            {
                hiddenColumns.RemoveRange(index, count);
                if (!flag)
                {
                    if (!matrixMember.IsTotal)
                    {
                        matrixMember = columns[0];
                    }
                    matrixMemberCollection = matrixMember.Children;
                    if (matrixMemberCollection != null)
                    {
                        int num5 = 0;
                        while (!flag && num5 < matrixMemberCollection.Count)
                        {
                            matrixMember = matrixMemberCollection[num5];
                            flag         = matrixMember.ReportItem.Search(searchContext2);
                            num5++;
                        }
                    }
                }
            }
            return(flag);
        }
Example #4
0
        private static bool SearchMatrixRowsContent(Matrix matrix, MatrixMember member, SearchContext searchContext, IntList hiddenColumns)
        {
            bool                   flag                    = false;
            int                    startMember             = 0;
            int                    endMember               = 0;
            int                    num                     = 0;
            MatrixMember           matrixMember            = null;
            MatrixMemberCollection matrixMemberCollection  = null;
            MatrixMemberCollection matrixMemberCollection2 = null;
            SearchContext          searchContext2          = new SearchContext(searchContext);
            bool                   flag2                   = false;

            matrixMemberCollection2 = ((member != null) ? member.Children : matrix.RowMemberCollection);
            if (searchContext.ItemStartPage != searchContext.ItemEndPage)
            {
                if (member == null)
                {
                    matrix.GetRowMembersOnPage(searchContext.SearchPage, out startMember, out endMember);
                }
                else
                {
                    member.GetChildRowMembersOnPage(searchContext.SearchPage, out startMember, out endMember);
                }
                flag2 = true;
            }
            else
            {
                startMember = 0;
                endMember   = matrixMemberCollection2.Count - 1;
            }
            num = endMember - startMember + 1;
            int num2 = startMember;

            while (!flag && num2 <= endMember)
            {
                matrixMember = matrixMemberCollection2[num2];
                if (matrixMember.Hidden)
                {
                    num--;
                }
                else
                {
                    matrixMemberCollection = matrixMember.Children;
                    if (matrixMemberCollection != null)
                    {
                        flag = matrixMember.ReportItem.Search(searchContext2);
                        if (!flag)
                        {
                            if (flag2 && (num2 == startMember || num2 == endMember))
                            {
                                int           startPage      = 0;
                                int           endPage        = 0;
                                SearchContext searchContext3 = new SearchContext(searchContext);
                                if (member == null)
                                {
                                    matrix.IsRowMemberOnThisPage(num2, searchContext.SearchPage, out startPage, out endPage);
                                }
                                else
                                {
                                    member.IsRowMemberOnThisPage(num2, searchContext.SearchPage, out startPage, out endPage);
                                }
                                searchContext3.ItemStartPage = startPage;
                                searchContext3.ItemEndPage   = endPage;
                                flag = SearchMatrixRowsContent(matrix, matrixMember, searchContext3, hiddenColumns);
                            }
                            else
                            {
                                flag = SearchMatrixRowsContent(matrix, matrixMember, searchContext2, hiddenColumns);
                            }
                        }
                    }
                    else
                    {
                        flag = matrixMember.ReportItem.Search(searchContext2);
                        if (!flag)
                        {
                            flag = SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext2);
                        }
                    }
                }
                num2++;
            }
            if (!flag && num == 0)
            {
                if (!matrixMember.IsTotal)
                {
                    matrixMember = matrixMemberCollection2[0];
                }
                matrixMemberCollection = matrixMember.Children;
                flag = ((matrixMemberCollection == null) ? SearchRangeCells(matrix, matrixMember.MemberCellIndex, hiddenColumns, searchContext2) : SearchRowTotal(matrix, matrixMemberCollection, hiddenColumns, searchContext2));
            }
            return(flag);
        }