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); }
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); }
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); }
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); }
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); }
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); }