public TableGroupCollection(Table owner, TableGroup parent, AspNetCore.ReportingServices.ReportProcessing.TableGroup groupDef, TableGroupInstanceList groupInstances)
 {
     this.m_owner          = owner;
     this.m_parent         = parent;
     this.m_groupInstances = groupInstances;
     this.m_groupDef       = groupDef;
 }
Exemple #2
0
 public void ResetContext(AspNetCore.ReportingServices.ReportRendering.TableGroup newRenderGroup)
 {
     if (base.m_children != null)
     {
         for (int i = 0; i < base.m_children.Length; i++)
         {
             ((ShimTableMember)base.m_children[i]).ResetContext((newRenderGroup != null) ? newRenderGroup.SubGroups : null, (newRenderGroup != null) ? newRenderGroup.DetailRows : null);
         }
     }
 }
 public TableGroup(Table owner, TableGroup parent, AspNetCore.ReportingServices.ReportProcessing.TableGroup groupDef, TableGroupInstance groupInstance)
     : base(owner, groupDef.Grouping, groupDef.Visibility)
 {
     this.m_parent        = parent;
     this.m_groupDef      = groupDef;
     this.m_groupInstance = groupInstance;
     if (this.m_groupInstance != null)
     {
         base.m_uniqueName = this.m_groupInstance.UniqueName;
     }
 }
 public TableGroup this[int index]
 {
     get
     {
         if (index >= 0 && index < this.Count)
         {
             TableGroup tableGroup = null;
             if (index == 0)
             {
                 tableGroup = this.m_firstGroup;
             }
             else if (this.m_groups != null)
             {
                 tableGroup = this.m_groups[index - 1];
             }
             if (tableGroup == null)
             {
                 TableGroupInstance groupInstance = null;
                 if (this.m_groupInstances != null && index < this.m_groupInstances.Count)
                 {
                     groupInstance = this.m_groupInstances[index];
                 }
                 else
                 {
                     Global.Tracer.Assert(this.m_groupInstances == null || 0 == this.m_groupInstances.Count);
                 }
                 tableGroup = new TableGroup(this.m_owner, this.m_parent, this.m_groupDef, groupInstance);
                 if (this.m_owner.RenderingContext.CacheState)
                 {
                     if (index == 0)
                     {
                         this.m_firstGroup = tableGroup;
                     }
                     else
                     {
                         if (this.m_groups == null)
                         {
                             this.m_groups = new TableGroup[this.m_groupInstances.Count - 1];
                         }
                         this.m_groups[index - 1] = tableGroup;
                     }
                 }
             }
             return(tableGroup);
         }
         throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, this.Count);
     }
 }
 private void AppendTableGroups(AspNetCore.ReportingServices.ReportRendering.TableGroup renderGroup)
 {
     if (renderGroup != null)
     {
         this.AppendTableRows(renderGroup.GroupHeader);
         if (renderGroup.SubGroups != null)
         {
             this.AppendTableGroups(renderGroup.SubGroups[0]);
         }
         else if (renderGroup.DetailRows != null)
         {
             this.AppendTableRows(renderGroup.DetailRows[0]);
         }
         this.AppendTableRows(renderGroup.GroupFooter);
     }
 }
        private static bool SearchFullTableGroup(TableGroup tableGroup, TableColumnCollection columns, SearchContext searchContext)
        {
            bool result = false;

            if (tableGroup != null && !tableGroup.Hidden)
            {
                result = Table.SearchTableRows(tableGroup.GroupHeader, columns, searchContext);
                if (!result)
                {
                    TableGroupCollection subGroups = tableGroup.SubGroups;
                    if (subGroups != null)
                    {
                        int num = 0;
                        while (!result && num < subGroups.Count)
                        {
                            result = Table.SearchFullTableGroup(subGroups[num], columns, searchContext);
                            num++;
                        }
                    }
                    else
                    {
                        TableRowsCollection detailRows = tableGroup.DetailRows;
                        if (detailRows != null)
                        {
                            int num2 = 0;
                            while (!result && num2 < detailRows.Count)
                            {
                                result = Table.SearchTableRows(detailRows[num2], columns, searchContext);
                                num2++;
                            }
                        }
                    }
                }
                if (!result)
                {
                    result = Table.SearchTableRows(tableGroup.GroupFooter, columns, searchContext);
                }
                return(result);
            }
            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 = Table.SearchTableRows(tableHeaderFooterRows, columns, searchContext2);
                }
                if (flag)
                {
                    return(true);
                }
            }
            TableGroupCollection subGroups = group.SubGroups;

            if (subGroups != null)
            {
                int num  = 0;
                int num2 = 0;
                int num3 = -1;
                int num4 = -1;
                group.GetSubGroupsOnPage(searchContext.SearchPage, out num, out num2);
                if (num >= 0)
                {
                    SearchContext searchContext3 = new SearchContext(searchContext);
                    group.IsGroupOnThisPage(num, searchContext.SearchPage, out num3, out num4);
                    TableGroup tableGroup = subGroups[num];
                    if (num3 != num4)
                    {
                        searchContext3.ItemStartPage = num3;
                        searchContext3.ItemEndPage   = num4;
                        flag = Table.SearchPartialTableGroup(tableGroup, columns, searchContext3);
                    }
                    else
                    {
                        flag = Table.SearchFullTableGroup(tableGroup, columns, searchContext2);
                    }
                    num++;
                    while (!flag && num < num2)
                    {
                        tableGroup = subGroups[num];
                        flag       = Table.SearchFullTableGroup(tableGroup, columns, searchContext2);
                        num++;
                    }
                    if (!flag && num == num2)
                    {
                        tableGroup = subGroups[num];
                        group.IsGroupOnThisPage(num, searchContext.SearchPage, out num3, out num4);
                        if (num3 != num4)
                        {
                            searchContext3.ItemStartPage = num3;
                            searchContext3.ItemEndPage   = num4;
                            flag = Table.SearchPartialTableGroup(tableGroup, columns, searchContext3);
                        }
                        else
                        {
                            flag = Table.SearchFullTableGroup(tableGroup, columns, searchContext2);
                        }
                    }
                }
            }
            else
            {
                TableRowsCollection detailRows = group.DetailRows;
                if (detailRows != null)
                {
                    int num5 = 0;
                    int num6 = 0;
                    int num7 = 0;
                    group.GetDetailsOnThisPage(searchContext.SearchPage - searchContext.ItemStartPage, out num5, out num6);
                    if (num5 >= 0)
                    {
                        num7 = num5 + num6 - 1;
                        while (!flag && num5 <= num7)
                        {
                            flag = Table.SearchTableRows(detailRows[num5], columns, searchContext2);
                            num5++;
                        }
                    }
                }
            }
            if (flag)
            {
                return(true);
            }
            tableHeaderFooterRows = group.GroupFooter;
            if (tableHeaderFooterRows != null && (tableHeaderFooterRows.RepeatOnNewPage || searchContext.ItemEndPage == searchContext.SearchPage))
            {
                flag = Table.SearchTableRows(tableHeaderFooterRows, columns, searchContext2);
            }
            return(flag);
        }
Exemple #8
0
 public ShimTableMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, ShimTableMember parent, AspNetCore.ReportingServices.ReportRendering.TableGroup tableGroup)
     : base(parentDefinitionPath, owner, false)
 {
     this.m_rowDefinitionStartIndex = owner.GetCurrentMemberCellDefinitionIndex();
     base.m_children = this.CreateInnerHierarchy(owner, parent, tableGroup.GroupHeader, tableGroup.GroupFooter, tableGroup.SubGroups, tableGroup.DetailRows, ref this.m_dynamicSubgroupChildIndex);
     this.m_rowDefinitionEndIndex = owner.GetCurrentMemberCellDefinitionIndex();
 }