public void Serialize(IntermediateFormatWriter writer)
        {
            writer.RegisterDeclaration(RecordField.m_Declaration);
            while (writer.NextMember())
            {
                switch (writer.CurrentMember.MemberName)
                {
                case MemberName.FieldStatus:
                    writer.WriteEnum((int)this.m_fieldStatus);
                    break;

                case MemberName.FieldValueSerializable:
                    if (!writer.TryWriteSerializable(this.m_fieldValue))
                    {
                        this.m_fieldValue = null;
                        writer.WriteNull();
                        this.m_fieldStatus = DataFieldStatus.UnSupportedDataType;
                    }
                    break;

                case MemberName.IsAggregateField:
                    writer.Write(this.m_isAggregationField);
                    break;

                case MemberName.FieldPropertyValues:
                    writer.WriteListOfPrimitives(this.m_fieldPropertyValues);
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }
Example #2
0
 public FieldImpl(ObjectModelImpl reportOM, DataFieldStatus status, string exceptionMessage, AspNetCore.ReportingServices.ReportIntermediateFormat.Field fieldDef)
 {
     this.m_reportOM = reportOM;
     this.m_fieldDef = fieldDef;
     Global.Tracer.Assert(DataFieldStatus.None != status, "(DataFieldStatus.None != status)");
     this.UpdateValue(null, false, status, exceptionMessage);
 }
 public void Update()
 {
     if (!this.m_aggregateResult.ErrorOccurred && !this.m_nonAggregateMode)
     {
         if (this.m_aggregateDef.ShouldRecordFieldReferences())
         {
             this.m_reportRT.ReportObjectModel.FieldsImpl.ResetFieldsUsedInExpression();
         }
         object[]        expressions     = default(object[]);
         DataFieldStatus dataFieldStatus = default(DataFieldStatus);
         this.m_aggregateResult.ErrorOccurred = this.EvaluateParameters(out expressions, out dataFieldStatus);
         if (dataFieldStatus != 0)
         {
             this.m_aggregateResult.HasCode     = true;
             this.m_aggregateResult.FieldStatus = dataFieldStatus;
         }
         if (this.m_aggregateDef.ShouldRecordFieldReferences())
         {
             List <string> list = new List <string>();
             this.m_reportRT.ReportObjectModel.FieldsImpl.AddFieldsUsedInExpression(list);
             this.m_aggregateDef.StoreFieldReferences(this.m_reportRT.ReportObjectModel.OdpContext, list);
         }
         if (!this.m_aggregateResult.ErrorOccurred)
         {
             try
             {
                 this.m_aggregator.Update(expressions, this);
             }
             catch (ReportProcessingException)
             {
                 this.m_aggregateResult.ErrorOccurred = true;
             }
         }
     }
 }
        public void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(RecordField.m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.FieldStatus:
                    this.m_fieldStatus = (DataFieldStatus)reader.ReadEnum();
                    break;

                case MemberName.FieldValue:
                    this.m_fieldValue = reader.ReadVariant();
                    break;

                case MemberName.FieldValueSerializable:
                    this.m_fieldValue = reader.ReadSerializable();
                    break;

                case MemberName.IsAggregateField:
                    this.m_isAggregationField = reader.ReadBoolean();
                    break;

                case MemberName.FieldPropertyValues:
                    this.m_fieldPropertyValues = reader.ReadListOfPrimitives <object>();
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }
        public bool EvaluateParameters(out object[] values, out DataFieldStatus fieldStatus)
        {
            bool flag = false;

            fieldStatus = DataFieldStatus.None;
            values      = new object[this.m_aggregateDef.Expressions.Length];
            for (int i = 0; i < this.m_aggregateDef.Expressions.Length; i++)
            {
                try
                {
                    AspNetCore.ReportingServices.RdlExpressions.VariantResult variantResult = this.m_reportRT.EvaluateAggregateVariantOrBinaryParamExpr(this.m_aggregateDef, i, this);
                    values[i] = variantResult.Value;
                    flag     |= variantResult.ErrorOccurred;
                    if (variantResult.FieldStatus != 0)
                    {
                        fieldStatus = variantResult.FieldStatus;
                    }
                }
                catch (ReportProcessingException_MissingAggregateDependency)
                {
                    if (this.m_aggregateDef.AggregateType == DataAggregateInfo.AggregateTypes.Previous)
                    {
                        values[i]   = null;
                        fieldStatus = DataFieldStatus.None;
                        return(false);
                    }
                    Global.Tracer.Assert(false, "Unfulfilled aggregate dependency outside of a previous");
                    throw;
                }
            }
            return(flag);
        }
 internal FieldImpl(ObjectModelImpl reportOM, DataFieldStatus status, string exceptionMessage, Microsoft.ReportingServices.ReportIntermediateFormat.Field fieldDef)
 {
     m_reportOM = reportOM;
     m_fieldDef = fieldDef;
     Global.Tracer.Assert(status != DataFieldStatus.None, "(DataFieldStatus.None != status)");
     UpdateValue(null, isAggregationField: false, status, exceptionMessage);
 }
 internal VariantResult(bool errorOccurred, object v)
 {
     ErrorOccurred    = errorOccurred;
     Value            = v;
     FieldStatus      = DataFieldStatus.None;
     ExceptionMessage = null;
 }
 public VariantResult(bool errorOccurred, object v)
 {
     this.ErrorOccurred    = errorOccurred;
     this.Value            = v;
     this.FieldStatus      = DataFieldStatus.None;
     this.ExceptionMessage = null;
 }
Example #9
0
 private void PageInit()
 {
     this.m_processingContext.ReportObjectModel.GlobalsImpl.SetPageNumbers(base.m_currentPageNumber, base.m_totalPages);
     this.m_processingContext.ReportObjectModel.ReportItemsImpl = new ReportItemsImpl();
     this.m_processingContext.ReportObjectModel.AggregatesImpl  = new AggregatesImpl(this.m_processingContext.ReportRuntime);
     if (this.m_processingContext.ReportRuntime.ReportExprHost != null)
     {
         this.m_processingContext.RuntimeInitializeReportItemObjs(this.m_report.ReportItems, true, true);
         if (this.m_report.PageHeader != null)
         {
             if (this.m_processingContext.ReportRuntime.ReportExprHost != null)
             {
                 this.m_report.PageHeader.SetExprHost(this.m_processingContext.ReportRuntime.ReportExprHost, this.m_processingContext.ReportObjectModel);
             }
             this.m_processingContext.RuntimeInitializeReportItemObjs(this.m_report.PageHeader.ReportItems, false, false);
         }
         if (this.m_report.PageFooter != null)
         {
             if (this.m_processingContext.ReportRuntime.ReportExprHost != null)
             {
                 this.m_report.PageFooter.SetExprHost(this.m_processingContext.ReportRuntime.ReportExprHost, this.m_processingContext.ReportObjectModel);
             }
             this.m_processingContext.RuntimeInitializeReportItemObjs(this.m_report.PageFooter.ReportItems, false, false);
         }
     }
     this.m_aggregates = new AggregatesImpl(this.m_processingContext.ReportRuntime);
     this.m_aggregatesOverReportItems = new Hashtable();
     this.m_processingContext.ReportObjectModel.ReportItemsImpl.SpecialMode = true;
     if (this.m_report.PageAggregates != null)
     {
         for (int i = 0; i < this.m_report.PageAggregates.Count; i++)
         {
             DataAggregateInfo dataAggregateInfo = this.m_report.PageAggregates[i];
             dataAggregateInfo.ExprHostInitialized = false;
             DataAggregateObj dataAggregateObj = new DataAggregateObj(dataAggregateInfo, this.m_processingContext);
             object[]         array            = default(object[]);
             DataFieldStatus  dataFieldStatus  = default(DataFieldStatus);
             dataAggregateObj.EvaluateParameters(out array, out dataFieldStatus);
             string specialModeIndex = this.m_processingContext.ReportObjectModel.ReportItemsImpl.GetSpecialModeIndex();
             if (specialModeIndex == null)
             {
                 this.m_aggregates.Add(dataAggregateObj);
             }
             else
             {
                 AggregatesImpl aggregatesImpl = (AggregatesImpl)this.m_aggregatesOverReportItems[specialModeIndex];
                 if (aggregatesImpl == null)
                 {
                     aggregatesImpl = new AggregatesImpl(this.m_processingContext.ReportRuntime);
                     this.m_aggregatesOverReportItems.Add(specialModeIndex, aggregatesImpl);
                 }
                 aggregatesImpl.Add(dataAggregateObj);
             }
             dataAggregateObj.Init();
         }
     }
     this.m_processingContext.ReportObjectModel.ReportItemsImpl.SpecialMode = false;
 }
Example #10
0
 internal FieldImpl(object value, bool isAggregationField, Microsoft.ReportingServices.ReportProcessing.Field fieldDef)
 {
     m_value = value;
     m_isAggregationField      = isAggregationField;
     m_aggregationFieldChecked = false;
     m_fieldStatus             = DataFieldStatus.None;
     m_fieldDef         = fieldDef;
     m_usedInExpression = false;
 }
 public FieldImpl(object value, bool isAggregationField, AspNetCore.ReportingServices.ReportProcessing.Field fieldDef)
 {
     this.m_value = value;
     this.m_isAggregationField      = isAggregationField;
     this.m_aggregationFieldChecked = false;
     this.m_fieldStatus             = DataFieldStatus.None;
     this.m_fieldDef         = fieldDef;
     this.m_usedInExpression = false;
 }
Example #12
0
        public void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(m_declaration);
            IScalabilityCache scalabilityCache = reader.PersistenceHelper as IScalabilityCache;

            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ReportObjectModel:
                {
                    int id2 = reader.ReadInt32();
                    m_reportOM = (ObjectModelImpl)scalabilityCache.FetchStaticReference(id2);
                    break;
                }

                case MemberName.Value:
                    m_value = reader.ReadVariant();
                    break;

                case MemberName.IsAggregateField:
                    m_isAggregationField = reader.ReadBoolean();
                    break;

                case MemberName.AggregationFieldChecked:
                    m_aggregationFieldChecked = reader.ReadBoolean();
                    break;

                case MemberName.FieldStatus:
                    m_fieldStatus = (DataFieldStatus)reader.ReadEnum();
                    break;

                case MemberName.Message:
                    m_exceptionMessage = reader.ReadString();
                    break;

                case MemberName.Properties:
                    m_properties = reader.ReadStringObjectHashtable <Hashtable>();
                    break;

                case MemberName.FieldDef:
                {
                    int id = reader.ReadInt32();
                    m_fieldDef = (Microsoft.ReportingServices.ReportIntermediateFormat.Field)scalabilityCache.FetchStaticReference(id);
                    break;
                }

                case MemberName.UsedInExpression:
                    m_usedInExpression = reader.ReadBoolean();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Example #13
0
 internal void UpdateValue(object value, bool isAggregationField, DataFieldStatus status, string exceptionMessage)
 {
     m_value = value;
     m_isAggregationField      = isAggregationField;
     m_aggregationFieldChecked = false;
     m_fieldStatus             = status;
     m_exceptionMessage        = exceptionMessage;
     m_usedInExpression        = false;
     m_properties = null;
 }
Example #14
0
 internal RecordField(FieldImpl field)
 {
     m_fieldStatus = field.FieldStatus;
     m_properties  = field.Properties;
     if (m_fieldStatus == DataFieldStatus.None)
     {
         m_fieldValue         = field.Value;
         m_isAggregationField = field.IsAggregationField;
     }
 }
Example #15
0
 public RecordField(FieldImpl field)
 {
     this.m_fieldStatus = field.FieldStatus;
     this.m_properties  = field.Properties;
     if (this.m_fieldStatus == DataFieldStatus.None)
     {
         this.m_fieldValue         = field.Value;
         this.m_isAggregationField = field.IsAggregationField;
     }
 }
Example #16
0
 private void ThrowIfErrorOccurred(string propertyName, bool errorOccurred, DataFieldStatus fieldStatus)
 {
     if (errorOccurred)
     {
         if (fieldStatus != 0)
         {
             throw new ReportProcessingException(ErrorCode.rsFilterFieldError, m_objectType, m_objectName, propertyName, ReportRuntime.GetErrorName(fieldStatus, null));
         }
         throw new ReportProcessingException(ErrorCode.rsFilterEvaluationError, m_objectType, m_objectName, propertyName);
     }
 }
Example #17
0
 public bool ResetCalculatedField()
 {
     if (this.m_value == null)
     {
         return(false);
     }
     this.m_fieldStatus = DataFieldStatus.None;
     ((CalculatedFieldWrapperImpl)this.m_value).ResetValue();
     this.m_usedInExpression = false;
     return(true);
 }
Example #18
0
 internal bool ResetCalculatedField()
 {
     if (m_value == null)
     {
         return(false);
     }
     m_fieldStatus = DataFieldStatus.None;
     ((CalculatedFieldWrapperImpl)m_value).ResetValue();
     m_usedInExpression = false;
     return(true);
 }
 public FieldImpl(DataFieldStatus status, string exceptionMessage, AspNetCore.ReportingServices.ReportProcessing.Field fieldDef)
 {
     this.m_value = null;
     this.m_isAggregationField      = false;
     this.m_aggregationFieldChecked = false;
     Global.Tracer.Assert(DataFieldStatus.None != status, "(DataFieldStatus.None != status)");
     this.m_fieldStatus      = status;
     this.m_exceptionMessage = exceptionMessage;
     this.m_fieldDef         = fieldDef;
     this.m_usedInExpression = false;
 }
Example #20
0
 internal FieldImpl(DataFieldStatus status, string exceptionMessage, Microsoft.ReportingServices.ReportProcessing.Field fieldDef)
 {
     m_value = null;
     m_isAggregationField      = false;
     m_aggregationFieldChecked = false;
     Global.Tracer.Assert(status != DataFieldStatus.None, "(DataFieldStatus.None != status)");
     m_fieldStatus      = status;
     m_exceptionMessage = exceptionMessage;
     m_fieldDef         = fieldDef;
     m_usedInExpression = false;
 }
        internal DataAggregateObjResult(DataAggregateObjResult original)
        {
            ErrorOccurred = original.ErrorOccurred;
            HasCode       = original.HasCode;
            Code          = original.Code;
            Severity      = original.Severity;
            FieldStatus   = original.FieldStatus;
            CloneHelperStruct cloneHelperStruct = new CloneHelperStruct(original.Value);

            Value     = cloneHelperStruct.Value;
            Arguments = original.Arguments;
        }
        public DataAggregateObjResult(DataAggregateObjResult original)
        {
            this.ErrorOccurred = original.ErrorOccurred;
            this.HasCode       = original.HasCode;
            this.Code          = original.Code;
            this.Severity      = original.Severity;
            this.FieldStatus   = original.FieldStatus;
            CloneHelperStruct cloneHelperStruct = new CloneHelperStruct(original.Value);

            this.Value     = cloneHelperStruct.Value;
            this.Arguments = original.Arguments;
        }
Example #23
0
        private void ThrowIfErrorOccurred(string propertyName, bool errorOccurred, DataFieldStatus fieldStatus)
        {
            if (errorOccurred)
            {
                switch (fieldStatus)
                {
                case DataFieldStatus.UnSupportedDataType:
                    throw new ReportProcessingException(string.Format(CultureInfo.CurrentCulture, RPRes.Keys.GetString(ProcessingErrorCode.rsInvalidExpressionDataType.ToString()), m_objectType, m_objectName, propertyName), ErrorCode.rsFilterEvaluationError);

                default:
                    throw new ReportProcessingException(ErrorCode.rsFilterFieldError, m_objectType, m_objectName, propertyName, Microsoft.ReportingServices.RdlExpressions.ReportRuntime.GetErrorName(fieldStatus, null));

                case DataFieldStatus.None:
                    throw new ReportProcessingException(ErrorCode.rsFilterEvaluationError, m_objectType, m_objectName, propertyName);
                }
            }
        }
 public RecordField(FieldImpl field, FieldInfo fieldInfo)
 {
     this.m_fieldStatus = field.FieldStatus;
     if (this.m_fieldStatus == DataFieldStatus.None)
     {
         this.m_fieldValue         = field.Value;
         this.m_isAggregationField = field.IsAggregationField;
     }
     if (fieldInfo != null && 0 < fieldInfo.PropertyCount)
     {
         this.m_fieldPropertyValues = new List <object>(fieldInfo.PropertyCount);
         for (int i = 0; i < fieldInfo.PropertyCount; i++)
         {
             object property = field.GetProperty(fieldInfo.PropertyNames[i]);
             this.m_fieldPropertyValues.Add(property);
         }
     }
 }
        public bool EvaluateParameters(out object[] values, out DataFieldStatus fieldStatus)
        {
            bool flag = false;

            fieldStatus = DataFieldStatus.None;
            values      = new object[this.m_aggregateDef.Expressions.Length];
            for (int i = 0; i < this.m_aggregateDef.Expressions.Length; i++)
            {
                VariantResult variantResult = this.m_reportRT.EvaluateAggregateVariantOrBinaryParamExpr(this.m_aggregateDef, i, this);
                values[i] = variantResult.Value;
                flag     |= variantResult.ErrorOccurred;
                if (variantResult.FieldStatus != 0)
                {
                    fieldStatus = variantResult.FieldStatus;
                }
            }
            return(flag);
        }
        public virtual void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.ErrorOccurred:
                    ErrorOccurred = reader.ReadBoolean();
                    break;

                case MemberName.Value:
                    Value = reader.ReadVariant();
                    break;

                case MemberName.HasCode:
                    HasCode = reader.ReadBoolean();
                    break;

                case MemberName.Code:
                    Code = (ProcessingErrorCode)reader.ReadEnum();
                    break;

                case MemberName.Severity:
                    Severity = (Severity)reader.ReadEnum();
                    break;

                case MemberName.FieldStatus:
                    FieldStatus = (DataFieldStatus)reader.ReadEnum();
                    break;

                case MemberName.Arguments:
                    Arguments = reader.ReadStringArray();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Example #27
0
        public void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(LookupObjResult.m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.LookupTablePartitionID:
                    this.m_lookupTablePartitionId = new ReferenceID(reader.ReadInt64());
                    break;

                case MemberName.HasCode:
                    this.m_hasErrorCode = reader.ReadBoolean();
                    break;

                case MemberName.Code:
                    this.m_errorCode = (ProcessingErrorCode)reader.ReadEnum();
                    break;

                case MemberName.Severity:
                    this.m_errorSeverity = (Severity)reader.ReadEnum();
                    break;

                case MemberName.FieldStatus:
                    this.m_dataFieldStatus = (DataFieldStatus)reader.ReadEnum();
                    break;

                case MemberName.Arguments:
                    this.m_errorMessageArgs = reader.ReadStringArray();
                    break;

                default:
                    Global.Tracer.Assert(false);
                    break;
                }
            }
        }
		private void PageInit(ReportSection section)
		{
			AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.ObjectModelImpl reportObjectModel = this.m_processingContext.ReportObjectModel;
			AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.AggregatesImpl aggregatesImpl = reportObjectModel.AggregatesImpl;
			Global.Tracer.Assert(section.BodyItemsForHeadFoot != null, "Missing cached BodyItemsForHeadFoot collection");
			Global.Tracer.Assert(section.PageSectionItemsForHeadFoot != null, "Missing cached PageSectionItemsForHeadFoot collection");
			section.BodyItemsForHeadFoot.ResetAll(default(AspNetCore.ReportingServices.RdlExpressions.VariantResult));
			section.PageSectionItemsForHeadFoot.ResetAll();
			reportObjectModel.GlobalsImpl.SetPageNumbers(base.m_currentPageNumber, base.m_totalPages, base.m_currentOverallPageNumber, base.m_overallTotalPages);
			reportObjectModel.GlobalsImpl.SetPageName(base.m_pageName);
			AspNetCore.ReportingServices.ReportIntermediateFormat.Report reportDef = base.m_romReport.ReportDef;
			AspNetCore.ReportingServices.ReportIntermediateFormat.ReportSection sectionDef = section.SectionDef;
			AspNetCore.ReportingServices.ReportIntermediateFormat.Page page = sectionDef.Page;
			section.PageAggregatesOverReportItems = new Dictionary<string, AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.AggregatesImpl>();
			this.m_processingContext.ReportObjectModel.ReportItemsImpl.SpecialMode = true;
			if (page.PageAggregates != null)
			{
				for (int i = 0; i < page.PageAggregates.Count; i++)
				{
					AspNetCore.ReportingServices.ReportIntermediateFormat.DataAggregateInfo dataAggregateInfo = page.PageAggregates[i];
					aggregatesImpl.Remove(dataAggregateInfo);
					dataAggregateInfo.ExprHostInitialized = false;
					AspNetCore.ReportingServices.ReportIntermediateFormat.DataAggregateObj dataAggregateObj = new AspNetCore.ReportingServices.ReportIntermediateFormat.DataAggregateObj(dataAggregateInfo, this.m_processingContext);
					object[] array = default(object[]);
					DataFieldStatus dataFieldStatus = default(DataFieldStatus);
					dataAggregateObj.EvaluateParameters(out array, out dataFieldStatus);
					string specialModeIndex = reportObjectModel.ReportItemsImpl.GetSpecialModeIndex();
					if (specialModeIndex == null)
					{
						aggregatesImpl.Add(dataAggregateObj);
					}
					else
					{
						AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.AggregatesImpl aggregatesImpl2 = default(AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.AggregatesImpl);
						if (!section.PageAggregatesOverReportItems.TryGetValue(specialModeIndex, out aggregatesImpl2))
						{
							aggregatesImpl2 = new AspNetCore.ReportingServices.ReportProcessing.OnDemandReportObjectModel.AggregatesImpl(this.m_processingContext);
							section.PageAggregatesOverReportItems.Add(specialModeIndex, aggregatesImpl2);
						}
						aggregatesImpl2.Add(dataAggregateObj);
						this.m_reportItemToReportSection[specialModeIndex] = section;
					}
					dataAggregateObj.Init();
				}
			}
			reportObjectModel.ReportItemsImpl.SpecialMode = false;
			AspNetCore.ReportingServices.ReportIntermediateFormat.PageSection rifObject = null;
			IReportScopeInstance romInstance = null;
			if (sectionDef.Page.PageHeader != null)
			{
				rifObject = sectionDef.Page.PageHeader;
				romInstance = section.Page.PageHeader.Instance.ReportScopeInstance;
				section.Page.PageHeader.SetNewContext();
			}
			if (sectionDef.Page.PageFooter != null)
			{
				rifObject = sectionDef.Page.PageFooter;
				romInstance = section.Page.PageFooter.Instance.ReportScopeInstance;
				section.Page.PageFooter.SetNewContext();
			}
			if (sectionDef != null)
			{
				this.m_processingContext.SetupContext(rifObject, romInstance);
			}
		}
Example #29
0
 public ReportProcessingException_FieldError(DataFieldStatus status, string message)
     : base((message == null) ? "" : message, null)
 {
     this.m_status = status;
 }