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); } } }
private bool HasAggregatesForAtomicityCheck() { if (!DataScopeInfo.HasNonServerAggregates(m_aggregates) && !DataScopeInfo.HasAggregates(m_postSortAggregates) && !DataScopeInfo.HasAggregates(m_runningValues)) { return(m_dataScopeInfo.HasAggregatesOrRunningValues); } return(true); }
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); }
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); }
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); }
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); } }
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; } } }
public bool IsChildScopeOf(IRIFReportDataScope candidateScope) { return(DataScopeInfo.IsChildScopeOf(this, candidateScope)); }
internal bool IsSameScope(DataScopeInfo candidateScopeInfo) { return(m_scopeID == candidateScopeInfo.ScopeID); }