private DataRegionMemberInstance(OnDemandProcessingContext odpContext, ReportHierarchyNode memberDef, long firstRowOffset, int memberInstanceIndexWithinScopeLevel, int recursiveLevel, List <object> groupExpressionValues, object[] groupVariableValues)
     : base(firstRowOffset)
 {
     m_memberDef = memberDef;
     m_memberInstanceIndexWithinScopeLevel = memberInstanceIndexWithinScopeLevel;
     m_recursiveLevel = recursiveLevel;
     if (groupExpressionValues != null && groupExpressionValues.Count != 0)
     {
         m_groupExprValues = new object[groupExpressionValues.Count];
         for (int i = 0; i < m_groupExprValues.Length; i++)
         {
             object obj = groupExpressionValues[i];
             if (obj == DBNull.Value)
             {
                 obj = null;
             }
             m_groupExprValues[i] = obj;
         }
     }
     StoreAggregates(odpContext, memberDef.Grouping.Aggregates);
     StoreAggregates(odpContext, memberDef.Grouping.RecursiveAggregates);
     StoreAggregates(odpContext, memberDef.Grouping.PostSortAggregates);
     StoreAggregates(odpContext, memberDef.RunningValues);
     if (memberDef.DataScopeInfo != null)
     {
         DataScopeInfo dataScopeInfo = memberDef.DataScopeInfo;
         StoreAggregates(odpContext, dataScopeInfo.AggregatesOfAggregates);
         StoreAggregates(odpContext, dataScopeInfo.PostSortAggregatesOfAggregates);
         StoreAggregates(odpContext, dataScopeInfo.RunningValuesOfAggregates);
     }
     m_variables = groupVariableValues;
 }
        internal void SetupEnvironment(OnDemandProcessingContext odpContext, int dataSetIndex)
        {
            SetupFields(odpContext, dataSetIndex);
            DataRegion dataRegionDef        = m_cellDef.DataRegionDef;
            int        aggregateValueOffset = 0;

            if (m_cellDef.AggregateIndexes != null)
            {
                SetupAggregates(odpContext, dataRegionDef.CellAggregates, m_cellDef.AggregateIndexes, ref aggregateValueOffset);
            }
            if (m_cellDef.PostSortAggregateIndexes != null)
            {
                SetupAggregates(odpContext, dataRegionDef.CellPostSortAggregates, m_cellDef.PostSortAggregateIndexes, ref aggregateValueOffset);
            }
            if (m_cellDef.RunningValueIndexes != null)
            {
                SetupAggregates(odpContext, dataRegionDef.CellRunningValues, m_cellDef.RunningValueIndexes, ref aggregateValueOffset);
            }
            if (m_cellDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = m_cellDef.DataScopeInfo;
                if (dataScopeInfo.AggregatesOfAggregates != null)
                {
                    SetupAggregates(odpContext, dataScopeInfo.AggregatesOfAggregates, ref aggregateValueOffset);
                }
                if (dataScopeInfo.PostSortAggregatesOfAggregates != null)
                {
                    SetupAggregates(odpContext, dataScopeInfo.PostSortAggregatesOfAggregates, ref aggregateValueOffset);
                }
                if (dataScopeInfo.RunningValuesOfAggregates != null)
                {
                    SetupAggregates(odpContext, dataScopeInfo.RunningValuesOfAggregates, ref aggregateValueOffset);
                }
            }
        }
Beispiel #3
0
 private bool HasAggregatesForAtomicityCheck()
 {
     if (!DataScopeInfo.HasNonServerAggregates(m_aggregates) && !DataScopeInfo.HasAggregates(m_postSortAggregates) && !DataScopeInfo.HasAggregates(m_runningValues))
     {
         return(m_dataScopeInfo.HasAggregatesOrRunningValues);
     }
     return(true);
 }
Beispiel #4
0
 public void MergeFrom(DataScopeInfo otherScope)
 {
     m_aggregatesSpanGroupFilter       |= otherScope.m_aggregatesSpanGroupFilter;
     m_hasAggregatesToUpdateAtRowScope |= otherScope.m_hasAggregatesToUpdateAtRowScope;
     m_runningValuesOfAggregates.AddRange(otherScope.m_runningValuesOfAggregates);
     m_aggregatesOfAggregates.MergeFrom(otherScope.m_aggregatesOfAggregates);
     m_postSortAggregatesOfAggregates.MergeFrom(otherScope.m_postSortAggregatesOfAggregates);
 }
 private bool HasAggregatesForAtomicityCheck()
 {
     if (!DataScopeInfo.HasNonServerAggregates(m_aggregates) && !DataScopeInfo.HasAggregates(m_postSortAggregates))
     {
         return(DataScopeInfo.HasAggregates(m_recursiveAggregates));
     }
     return(true);
 }
Beispiel #6
0
 internal Cell(int id, DataRegion dataRegion)
     : base(id)
 {
     m_dataRegionDef      = dataRegion;
     m_aggregates         = new List <DataAggregateInfo>();
     m_postSortAggregates = new List <DataAggregateInfo>();
     m_runningValues      = new List <RunningValueInfo>();
     m_dataScopeInfo      = new DataScopeInfo(id);
 }
Beispiel #7
0
        internal DataScopeInfo PublishClone(AutomaticSubtotalContext context, int scopeID)
        {
            DataScopeInfo dataScopeInfo = new DataScopeInfo(scopeID);

            dataScopeInfo.m_dataSetName = m_dataSetName;
            if (m_joinInfo != null)
            {
                dataScopeInfo.m_joinInfo = m_joinInfo.PublishClone(context);
            }
            return(dataScopeInfo);
        }
Beispiel #8
0
 public bool HasServerAggregate(string aggregateName)
 {
     if (m_aggregateIndexes == null)
     {
         return(false);
     }
     foreach (int aggregateIndex in m_aggregateIndexes)
     {
         if (DataScopeInfo.IsTargetServerAggregate(m_dataRegionDef.CellAggregates[aggregateIndex], aggregateName))
         {
             return(true);
         }
     }
     return(false);
 }
        internal void SetupEnvironment(OnDemandProcessingContext odpContext)
        {
            SetupFields(odpContext, m_dataSetIndexInCollection);
            int aggregateValueOffset = 0;

            SetupAggregates(odpContext, m_dataRegionDef.Aggregates, ref aggregateValueOffset);
            SetupAggregates(odpContext, m_dataRegionDef.PostSortAggregates, ref aggregateValueOffset);
            SetupAggregates(odpContext, m_dataRegionDef.RunningValues, ref aggregateValueOffset);
            if (m_dataRegionDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = m_dataRegionDef.DataScopeInfo;
                SetupAggregates(odpContext, dataScopeInfo.AggregatesOfAggregates, ref aggregateValueOffset);
                SetupAggregates(odpContext, dataScopeInfo.PostSortAggregatesOfAggregates, ref aggregateValueOffset);
                SetupAggregates(odpContext, dataScopeInfo.RunningValuesOfAggregates, ref aggregateValueOffset);
            }
        }
        private DataCellInstance(OnDemandProcessingContext odpContext, Cell cellDef, DataAggregateObjResult[] runningValueValues, DataAggregateObjResult[] runningValueOfAggregateValues, long firstRowOffset)
            : base(firstRowOffset)
        {
            m_cellDef = cellDef;
            DataRegion dataRegionDef = m_cellDef.DataRegionDef;

            if (cellDef.AggregateIndexes != null)
            {
                StoreAggregates(odpContext, dataRegionDef.CellAggregates, cellDef.AggregateIndexes);
            }
            if (cellDef.PostSortAggregateIndexes != null)
            {
                StoreAggregates(odpContext, dataRegionDef.CellPostSortAggregates, cellDef.PostSortAggregateIndexes);
            }
            if (runningValueValues == null)
            {
                if (cellDef.RunningValueIndexes != null)
                {
                    StoreAggregates(odpContext, dataRegionDef.CellRunningValues, cellDef.RunningValueIndexes);
                }
            }
            else if (runningValueValues != null)
            {
                StoreAggregates(runningValueValues);
            }
            if (cellDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = cellDef.DataScopeInfo;
                if (dataScopeInfo.AggregatesOfAggregates != null)
                {
                    StoreAggregates(odpContext, dataScopeInfo.AggregatesOfAggregates);
                }
                if (dataScopeInfo.PostSortAggregatesOfAggregates != null)
                {
                    StoreAggregates(odpContext, dataScopeInfo.PostSortAggregatesOfAggregates);
                }
                if (runningValueOfAggregateValues != null)
                {
                    StoreAggregates(runningValueOfAggregateValues);
                }
            }
        }
        internal void SetupEnvironment(OnDemandProcessingContext odpContext, int dataSetIndex)
        {
            SetupFields(odpContext, dataSetIndex);
            int aggregateValueOffset = 0;

            SetupAggregates(odpContext, m_memberDef.Grouping.Aggregates, ref aggregateValueOffset);
            SetupAggregates(odpContext, m_memberDef.Grouping.RecursiveAggregates, ref aggregateValueOffset);
            SetupAggregates(odpContext, m_memberDef.Grouping.PostSortAggregates, ref aggregateValueOffset);
            SetupAggregates(odpContext, m_memberDef.RunningValues, ref aggregateValueOffset);
            if (m_memberDef.DataScopeInfo != null)
            {
                DataScopeInfo dataScopeInfo = m_memberDef.DataScopeInfo;
                SetupAggregates(odpContext, dataScopeInfo.AggregatesOfAggregates, ref aggregateValueOffset);
                SetupAggregates(odpContext, dataScopeInfo.PostSortAggregatesOfAggregates, ref aggregateValueOffset);
                SetupAggregates(odpContext, dataScopeInfo.RunningValuesOfAggregates, ref aggregateValueOffset);
            }
            if (m_variables != null)
            {
                ScopeInstance.SetupVariables(odpContext, m_memberDef.Grouping.Variables, m_variables);
            }
        }
Beispiel #12
0
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ExprHostID:
                    m_exprHostID = reader.ReadInt32();
                    break;

                case MemberName.ParentRowID:
                    m_parentIDOwner = reader.ReadReference <IDOwner>(this);
                    if (m_parentIDOwner != null)
                    {
                        m_parentRowID = m_parentIDOwner.ID;
                    }
                    break;

                case MemberName.ParentColumnID:
                    m_parentColumnIDOwner = reader.ReadReference <IDOwner>(this);
                    if (m_parentColumnIDOwner != null)
                    {
                        m_parentColumnID = m_parentColumnIDOwner.ID;
                    }
                    break;

                case MemberName.IndexInCollection:
                    m_indexInCollection = reader.ReadInt32();
                    break;

                case MemberName.HasInnerGroupTreeHierarchy:
                    m_hasInnerGroupTreeHierarchy = reader.ReadBoolean();
                    break;

                case MemberName.DataRegionDef:
                    m_dataRegionDef = reader.ReadReference <DataRegion>(this);
                    break;

                case MemberName.AggregateIndexes:
                    m_aggregateIndexes = reader.ReadListOfPrimitives <int>();
                    break;

                case MemberName.PostSortAggregateIndexes:
                    m_postSortAggregateIndexes = reader.ReadListOfPrimitives <int>();
                    break;

                case MemberName.RunningValueIndexes:
                    m_runningValueIndexes = reader.ReadListOfPrimitives <int>();
                    break;

                case MemberName.NeedToCacheDataRows:
                    m_needToCacheDataRows = reader.ReadBoolean();
                    break;

                case MemberName.InScopeEventSources:
                    m_inScopeEventSources = reader.ReadGenericListOfReferences <IInScopeEventSource>(this);
                    break;

                case MemberName.InDynamicRowAndColumnContext:
                    m_inDynamicRowAndColumnContext = reader.ReadBoolean();
                    break;

                case MemberName.TextboxesInScope:
                    m_textboxesInScope = reader.ReadByteArray();
                    break;

                case MemberName.VariablesInScope:
                    m_variablesInScope = reader.ReadByteArray();
                    break;

                case MemberName.DataScopeInfo:
                    m_dataScopeInfo = reader.ReadRIFObject <DataScopeInfo>();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Beispiel #13
0
 public bool IsChildScopeOf(IRIFReportDataScope candidateScope)
 {
     return(DataScopeInfo.IsChildScopeOf(this, candidateScope));
 }
Beispiel #14
0
 internal bool IsSameScope(DataScopeInfo candidateScopeInfo)
 {
     return(m_scopeID == candidateScopeInfo.ScopeID);
 }