Exemplo n.º 1
0
        private static int TableWithVisibleColumns(TableColumnCollection columns)
        {
            int num = columns.Count;

            for (int i = 0; i < columns.Count; i++)
            {
                if (columns[i].Hidden)
                {
                    num--;
                }
            }
            return(num);
        }
Exemplo n.º 2
0
        private static bool SearchFullTable(Table table, SearchContext searchContext)
        {
            bool result = false;
            TableColumnCollection columns = table.Columns;

            if (TableWithVisibleColumns(columns) == 0)
            {
                return(result);
            }
            result = SearchTableRows(table.TableHeader, columns, searchContext);
            if (!table.NoRows && !result)
            {
                TableGroupCollection tableGroups = table.TableGroups;
                if (tableGroups != null)
                {
                    int num = 0;
                    while (!result && num < tableGroups.Count)
                    {
                        result = SearchFullTableGroup(tableGroups[num], columns, searchContext);
                        num++;
                    }
                }
                else
                {
                    TableRowsCollection detailRows = table.DetailRows;
                    if (detailRows != null)
                    {
                        int num2 = 0;
                        while (!result && num2 < detailRows.Count)
                        {
                            result = SearchTableRows(detailRows[num2], columns, searchContext);
                            num2++;
                        }
                    }
                }
            }
            if (!result)
            {
                result = SearchTableRows(table.TableFooter, columns, searchContext);
            }
            return(result);
        }
Exemplo n.º 3
0
        private static bool SearchRowCells(TableCellCollection rowCells, TableColumnCollection columns, SearchContext searchContext)
        {
            bool flag = false;

            if (rowCells == null)
            {
                return(flag);
            }
            int num = 0;

            while (!flag && num < rowCells.Count)
            {
                if (!columns[num].Hidden)
                {
                    flag = rowCells[num].ReportItem.Search(searchContext);
                }
                num++;
            }
            return(flag);
        }
Exemplo n.º 4
0
        private static bool SearchFullTableGroup(TableGroup tableGroup, TableColumnCollection columns, SearchContext searchContext)
        {
            bool result = false;

            if (tableGroup == null || tableGroup.Hidden)
            {
                return(result);
            }
            result = SearchTableRows(tableGroup.GroupHeader, columns, searchContext);
            if (!result)
            {
                TableGroupCollection subGroups = tableGroup.SubGroups;
                if (subGroups != null)
                {
                    int num = 0;
                    while (!result && num < subGroups.Count)
                    {
                        result = SearchFullTableGroup(subGroups[num], columns, searchContext);
                        num++;
                    }
                }
                else
                {
                    TableRowsCollection detailRows = tableGroup.DetailRows;
                    if (detailRows != null)
                    {
                        int num2 = 0;
                        while (!result && num2 < detailRows.Count)
                        {
                            result = SearchTableRows(detailRows[num2], columns, searchContext);
                            num2++;
                        }
                    }
                }
            }
            if (!result)
            {
                result = SearchTableRows(tableGroup.GroupFooter, columns, searchContext);
            }
            return(result);
        }
Exemplo n.º 5
0
        private static bool SearchTableRows(TableRowCollection tableRows, TableColumnCollection columns, SearchContext searchContext)
        {
            bool flag = false;

            if (tableRows == null)
            {
                return(flag);
            }
            TableRow tableRow = null;
            int      num      = 0;

            while (!flag && num < tableRows.Count)
            {
                tableRow = tableRows[num];
                if (!tableRow.Hidden)
                {
                    flag = SearchRowCells(tableRow.TableCellCollection, columns, searchContext);
                }
                num++;
            }
            return(flag);
        }
Exemplo n.º 6
0
        private static bool SearchPartialTableGroup(TableGroup group, TableColumnCollection columns, SearchContext searchContext)
        {
            TableHeaderFooterRows tableHeaderFooterRows = null;
            bool          flag           = false;
            SearchContext searchContext2 = new SearchContext(searchContext);

            tableHeaderFooterRows = group.GroupHeader;
            if (tableHeaderFooterRows != null)
            {
                if (searchContext.SearchPage == searchContext.ItemStartPage || tableHeaderFooterRows.RepeatOnNewPage)
                {
                    flag = SearchTableRows(tableHeaderFooterRows, columns, searchContext2);
                }
                if (flag)
                {
                    return(true);
                }
            }
            TableGroupCollection subGroups = group.SubGroups;

            if (subGroups != null)
            {
                int startGroup = 0;
                int endGroup   = 0;
                int startPage  = -1;
                int endPage    = -1;
                group.GetSubGroupsOnPage(searchContext.SearchPage, out startGroup, out endGroup);
                if (startGroup >= 0)
                {
                    SearchContext searchContext3 = new SearchContext(searchContext);
                    group.IsGroupOnThisPage(startGroup, searchContext.SearchPage, out startPage, out endPage);
                    TableGroup tableGroup = subGroups[startGroup];
                    if (startPage != endPage)
                    {
                        searchContext3.ItemStartPage = startPage;
                        searchContext3.ItemEndPage   = endPage;
                        flag = SearchPartialTableGroup(tableGroup, columns, searchContext3);
                    }
                    else
                    {
                        flag = SearchFullTableGroup(tableGroup, columns, searchContext2);
                    }
                    startGroup++;
                    while (!flag && startGroup < endGroup)
                    {
                        tableGroup = subGroups[startGroup];
                        flag       = SearchFullTableGroup(tableGroup, columns, searchContext2);
                        startGroup++;
                    }
                    if (!flag && startGroup == endGroup)
                    {
                        tableGroup = subGroups[startGroup];
                        group.IsGroupOnThisPage(startGroup, searchContext.SearchPage, out startPage, out endPage);
                        if (startPage != endPage)
                        {
                            searchContext3.ItemStartPage = startPage;
                            searchContext3.ItemEndPage   = endPage;
                            flag = SearchPartialTableGroup(tableGroup, columns, searchContext3);
                        }
                        else
                        {
                            flag = SearchFullTableGroup(tableGroup, columns, searchContext2);
                        }
                    }
                }
            }
            else
            {
                TableRowsCollection detailRows = group.DetailRows;
                if (detailRows != null)
                {
                    int start           = 0;
                    int numberOfDetails = 0;
                    int num             = 0;
                    group.GetDetailsOnThisPage(searchContext.SearchPage - searchContext.ItemStartPage, out start, out numberOfDetails);
                    if (start >= 0)
                    {
                        num = start + numberOfDetails - 1;
                        while (!flag && start <= num)
                        {
                            flag = SearchTableRows(detailRows[start], columns, searchContext2);
                            start++;
                        }
                    }
                }
            }
            if (flag)
            {
                return(true);
            }
            tableHeaderFooterRows = group.GroupFooter;
            if (tableHeaderFooterRows != null && (tableHeaderFooterRows.RepeatOnNewPage || searchContext.ItemEndPage == searchContext.SearchPage))
            {
                flag = SearchTableRows(tableHeaderFooterRows, columns, searchContext2);
            }
            return(flag);
        }