예제 #1
0
 internal bool IsAtomic(InitializationContext context)
 {
     if (!context.EvaluateAtomicityCondition(!m_naturalGroup && !IsDetail, m_owner, AtomicityReason.NonNaturalGroup) && !context.EvaluateAtomicityCondition(m_domainScope != null, m_owner, AtomicityReason.DomainScope) && !context.EvaluateAtomicityCondition(m_parent != null, m_owner, AtomicityReason.RecursiveParent))
     {
         return(context.EvaluateAtomicityCondition(HasAggregatesForAtomicityCheck(), m_owner, AtomicityReason.Aggregates));
     }
     return(true);
 }
예제 #2
0
 internal void DetermineDecomposability(InitializationContext context)
 {
     if (context.EvaluateAtomicityCondition(m_dataSetCore.Filters != null, this, AtomicityReason.Filters) || context.EvaluateAtomicityCondition(HasAggregatesForAtomicityCheck(), this, AtomicityReason.Aggregates) || context.EvaluateAtomicityCondition(HasLookups, this, AtomicityReason.Lookups) || context.EvaluateAtomicityCondition(m_dataRegions.Count > 1, this, AtomicityReason.PeerChildScopes))
     {
         m_allowIncrementalProcessing = false;
     }
 }
예제 #3
0
        public void Initialize(int parentRowID, int parentColumnID, int rowindex, int colIndex, InitializationContext context)
        {
            bool flag = this.IsDataRegionBodyCell && context.IsDataRegionCellScope;

            if (flag)
            {
                context.RegisterIndividualCellScope(this);
                this.m_inDynamicRowAndColumnContext = context.IsDataRegionCellScope;
                if (this.DataScopeInfo.JoinInfo != null && this.DataScopeInfo.JoinInfo is IntersectJoinInfo)
                {
                    this.m_dataRegionDef.IsMatrixIDC = true;
                }
            }
            else
            {
                context.RegisterNonScopeCell(this);
            }
            this.m_textboxesInScope = context.GetCurrentReferencableTextboxes();
            this.m_variablesInScope = context.GetCurrentReferencableVariables();
            this.m_parentRowID      = parentRowID;
            this.m_parentColumnID   = parentColumnID;
            context.SetIndexInCollection(this);
            this.StartExprHost(context);
            if (this.m_dataScopeInfo != null)
            {
                this.m_dataScopeInfo.Initialize(context, this);
            }
            this.InternalInitialize(parentRowID, parentColumnID, rowindex, colIndex, context);
            this.EndExprHost(context);
            this.m_dataScopeInfo.ValidateScopeRulesForIdc(context, this);
            if (context.EvaluateAtomicityCondition(this.HasAggregatesForAtomicityCheck(), this, AtomicityReason.Aggregates) || context.EvaluateAtomicityCondition(context.HasMultiplePeerChildScopes(this), this, AtomicityReason.PeerChildScopes))
            {
                context.FoundAtomicScope(this);
            }
            else
            {
                this.m_dataScopeInfo.IsDecomposable = true;
            }
            if (flag)
            {
                context.UnRegisterIndividualCellScope(this);
            }
            else
            {
                context.UnRegisterNonScopeCell(this);
            }
        }