예제 #1
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);
            }
        }