Beispiel #1
0
        internal override object PublishClone(AutomaticSubtotalContext context)
        {
            Rectangle rectangle = (Rectangle)base.PublishClone(context);

            if (m_reportItems != null)
            {
                rectangle.m_reportItems = (ReportItemCollection)m_reportItems.PublishClone(context);
            }
            if (m_pageBreak != null)
            {
                rectangle.m_pageBreak = (PageBreak)m_pageBreak.PublishClone(context);
            }
            if (m_pageName != null)
            {
                rectangle.m_pageName = (ExpressionInfo)m_pageName.PublishClone(context);
            }
            return(rectangle);
        }
        internal object PublishClone(AutomaticSubtotalContext context, ReportHierarchyNode owner)
        {
            Grouping grouping = (Grouping)MemberwiseClone();

            grouping.m_isClone = true;
            grouping.m_ID      = context.GenerateID();
            grouping.m_owner   = owner;
            if (DomainScope != null)
            {
                grouping.DomainScope = context.GetNewScopeName(DomainScope);
                if (string.CompareOrdinal(DomainScope, grouping.DomainScope) != 0)
                {
                    context.DomainScopeGroups.Add(grouping);
                }
                else
                {
                    grouping.m_scopeIDForDomainScope = Owner.DataScopeInfo.ScopeID;
                }
            }
            context.AddAggregateHolder(grouping);
            Global.Tracer.Assert(m_name != null);
            grouping.m_name = context.CreateAndRegisterUniqueGroupName(m_name, m_isClone);
            context.AddSortTarget(grouping.m_name, grouping);
            CloneGroupExpressions(context, grouping);
            if (m_groupLabel != null)
            {
                grouping.m_groupLabel = (ExpressionInfo)m_groupLabel.PublishClone(context);
            }
            if (m_sortDirections != null)
            {
                grouping.m_sortDirections = new List <bool>(m_sortDirections.Count);
                foreach (bool sortDirection in m_sortDirections)
                {
                    grouping.m_sortDirections.Add(sortDirection);
                }
            }
            grouping.m_aggregates          = new List <DataAggregateInfo>();
            grouping.m_recursiveAggregates = new List <DataAggregateInfo>();
            grouping.m_postSortAggregates  = new List <DataAggregateInfo>();
            if (m_filters != null)
            {
                grouping.m_filters = new List <Filter>(m_filters.Count);
                foreach (Filter filter in m_filters)
                {
                    grouping.m_filters.Add((Filter)filter.PublishClone(context));
                }
            }
            if (m_parent != null)
            {
                grouping.m_parent = new List <ExpressionInfo>(m_parent.Count);
                foreach (ExpressionInfo item in m_parent)
                {
                    grouping.m_parent.Add((ExpressionInfo)item.PublishClone(context));
                }
            }
            if (m_dataElementName != null)
            {
                grouping.m_dataElementName = (string)m_dataElementName.Clone();
            }
            if (m_userSortExpressions != null)
            {
                grouping.m_userSortExpressions = new List <ExpressionInfo>(m_userSortExpressions.Count);
                foreach (ExpressionInfo userSortExpression in m_userSortExpressions)
                {
                    grouping.m_userSortExpressions.Add((ExpressionInfo)userSortExpression.PublishClone(context));
                }
            }
            if (m_variables != null)
            {
                grouping.m_variables = new List <Variable>(m_variables.Count);
                foreach (Variable variable in m_variables)
                {
                    grouping.m_variables.Add((Variable)variable.PublishClone(context));
                }
            }
            if (m_nonDetailSortFiltersInScope != null)
            {
                grouping.m_nonDetailSortFiltersInScope = new InScopeSortFilterHashtable(m_nonDetailSortFiltersInScope.Count);
                foreach (DictionaryEntry item2 in m_nonDetailSortFiltersInScope)
                {
                    List <int> obj  = (List <int>)item2.Value;
                    List <int> list = new List <int>(obj.Count);
                    foreach (int item3 in obj)
                    {
                        list.Add(item3);
                    }
                    grouping.m_nonDetailSortFiltersInScope.Add(item2.Key, list);
                }
            }
            if (m_detailSortFiltersInScope != null)
            {
                grouping.m_detailSortFiltersInScope = new InScopeSortFilterHashtable(m_detailSortFiltersInScope.Count);
                foreach (DictionaryEntry item4 in m_detailSortFiltersInScope)
                {
                    List <int> obj2  = (List <int>)item4.Value;
                    List <int> list2 = new List <int>(obj2.Count);
                    foreach (int item5 in obj2)
                    {
                        list2.Add(item5);
                    }
                    grouping.m_detailSortFiltersInScope.Add(item4.Key, list2);
                }
            }
            if (m_pageBreak != null)
            {
                grouping.m_pageBreak = (PageBreak)m_pageBreak.PublishClone(context);
            }
            if (m_pageName != null)
            {
                grouping.m_pageName = (ExpressionInfo)m_pageName.PublishClone(context);
            }
            return(grouping);
        }
Beispiel #3
0
        internal override object PublishClone(AutomaticSubtotalContext context)
        {
            Map map2 = context.CurrentMapClone = (Map)base.PublishClone(context);

            if (m_mapDataRegions != null)
            {
                map2.m_mapDataRegions = new List <MapDataRegion>(m_mapDataRegions.Count);
                foreach (MapDataRegion mapDataRegion in m_mapDataRegions)
                {
                    map2.m_mapDataRegions.Add((MapDataRegion)mapDataRegion.PublishClone(context));
                }
            }
            if (m_mapLayers != null)
            {
                map2.m_mapLayers = new List <MapLayer>(m_mapLayers.Count);
                foreach (MapLayer mapLayer in m_mapLayers)
                {
                    map2.m_mapLayers.Add((MapLayer)mapLayer.PublishClone(context));
                }
            }
            if (m_mapViewport != null)
            {
                map2.m_mapViewport = (MapViewport)m_mapViewport.PublishClone(context);
            }
            if (m_mapLegends != null)
            {
                map2.m_mapLegends = new List <MapLegend>(m_mapLegends.Count);
                foreach (MapLegend mapLegend in m_mapLegends)
                {
                    map2.m_mapLegends.Add((MapLegend)mapLegend.PublishClone(context));
                }
            }
            if (m_mapTitles != null)
            {
                map2.m_mapTitles = new List <MapTitle>(m_mapTitles.Count);
                foreach (MapTitle mapTitle in m_mapTitles)
                {
                    map2.m_mapTitles.Add((MapTitle)mapTitle.PublishClone(context));
                }
            }
            if (m_mapDistanceScale != null)
            {
                map2.m_mapDistanceScale = (MapDistanceScale)m_mapDistanceScale.PublishClone(context);
            }
            if (m_mapColorScale != null)
            {
                map2.m_mapColorScale = (MapColorScale)m_mapColorScale.PublishClone(context);
            }
            if (m_mapBorderSkin != null)
            {
                map2.m_mapBorderSkin = (MapBorderSkin)m_mapBorderSkin.PublishClone(context);
            }
            if (m_antiAliasing != null)
            {
                map2.m_antiAliasing = (ExpressionInfo)m_antiAliasing.PublishClone(context);
            }
            if (m_textAntiAliasingQuality != null)
            {
                map2.m_textAntiAliasingQuality = (ExpressionInfo)m_textAntiAliasingQuality.PublishClone(context);
            }
            if (m_shadowIntensity != null)
            {
                map2.m_shadowIntensity = (ExpressionInfo)m_shadowIntensity.PublishClone(context);
            }
            if (m_tileLanguage != null)
            {
                map2.m_tileLanguage = (ExpressionInfo)m_tileLanguage.PublishClone(context);
            }
            if (m_action != null)
            {
                map2.m_action = (Action)m_action.PublishClone(context);
            }
            if (m_pageBreak != null)
            {
                map2.m_pageBreak = (PageBreak)m_pageBreak.PublishClone(context);
            }
            if (m_pageName != null)
            {
                map2.m_pageName = (ExpressionInfo)m_pageName.PublishClone(context);
            }
            return(map2);
        }