예제 #1
0
 static public int RemoveRange(IntPtr l)
 {
     try {
         IntList      self = (IntList)checkSelf(l);
         System.Int32 a1;
         checkType(l, 2, out a1);
         System.Int32 a2;
         checkType(l, 3, out a2);
         self.RemoveRange(a1, a2);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
예제 #2
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;
                    }
                    Matrix.BuildHiddenColumns(matrixMember, ref hiddenColumns);
                    num3--;
                }
                else
                {
                    flag = matrixMember.ReportItem.Search(searchContext2);
                    if (!flag)
                    {
                        matrixMemberCollection = matrixMember.Children;
                        flag = Matrix.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);
        }