internal TableGroupCollection(Table owner, TableGroup parent, Microsoft.ReportingServices.ReportProcessing.TableGroup groupDef, TableGroupInstanceList groupInstances) { m_owner = owner; m_parent = parent; m_groupInstances = groupInstances; m_groupDef = groupDef; }
internal void ResetContext(Microsoft.ReportingServices.ReportRendering.TableGroup newRenderGroup) { if (m_children != null) { for (int i = 0; i < m_children.Length; i++) { ((ShimTableMember)m_children[i]).ResetContext(newRenderGroup?.SubGroups, newRenderGroup?.DetailRows); } } }
internal TableGroup(Table owner, TableGroup parent, Microsoft.ReportingServices.ReportProcessing.TableGroup groupDef, TableGroupInstance groupInstance) : base(owner, groupDef.Grouping, groupDef.Visibility) { m_parent = parent; m_groupDef = groupDef; m_groupInstance = groupInstance; if (m_groupInstance != null) { m_uniqueName = m_groupInstance.UniqueName; } }
public TableGroup this[int index] { get { if (index < 0 || index >= Count) { throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, Count); } TableGroup tableGroup = null; if (index == 0) { tableGroup = m_firstGroup; } else if (m_groups != null) { tableGroup = m_groups[index - 1]; } if (tableGroup == null) { TableGroupInstance groupInstance = null; if (m_groupInstances != null && index < m_groupInstances.Count) { groupInstance = m_groupInstances[index]; } else { Global.Tracer.Assert(m_groupInstances == null || m_groupInstances.Count == 0); } tableGroup = new TableGroup(m_owner, m_parent, m_groupDef, groupInstance); if (m_owner.RenderingContext.CacheState) { if (index == 0) { m_firstGroup = tableGroup; } else { if (m_groups == null) { m_groups = new TableGroup[m_groupInstances.Count - 1]; } m_groups[index - 1] = tableGroup; } } } return(tableGroup); } }
private void AppendTableGroups(Microsoft.ReportingServices.ReportRendering.TableGroup renderGroup) { if (renderGroup != null) { AppendTableRows(renderGroup.GroupHeader); if (renderGroup.SubGroups != null) { AppendTableGroups(renderGroup.SubGroups[0]); } else if (renderGroup.DetailRows != null) { AppendTableRows(renderGroup.DetailRows[0]); } AppendTableRows(renderGroup.GroupFooter); } }
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 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); }
internal ShimTableMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, Microsoft.ReportingServices.ReportRendering.TableGroup tableGroup) : base(parentDefinitionPath, owner, isColumnGroup: false) { m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex(); m_children = CreateInnerHierarchy(owner, parent, tableGroup.GroupHeader, tableGroup.GroupFooter, tableGroup.SubGroups, tableGroup.DetailRows, ref m_dynamicSubgroupChildIndex); m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex(); }