public void UpdateRecordField(AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field) { this.m_recordField = field; if (this.m_extendedProperties != null) { for (int i = 0; i < this.m_extendedProperties.Length; i++) { ExtendedProperty extendedProperty = this.m_extendedProperties[i]; if (extendedProperty != null) { extendedProperty.UpdateValue(this.GetFieldPropertyValue(i)); } } } }
public override RowSkippingControlFlag DoesNotMatchRowRecordField(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField[] recordFields) { for (int i = 0; i < this.m_expressions.Length; i++) { AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo expressionInfo = this.m_expressions[i]; object value = this.m_values[i].Value; AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field = recordFields[expressionInfo.FieldIndex]; bool isSortedAscending = this.m_sortDirections[i] == SortDirection.Ascending; RowSkippingControlFlag rowSkippingControlFlag = base.CompareFieldWithScopeValueAndStopOnInequality(odpContext, field, value, isSortedAscending, ObjectType.DataSet, this.m_idcDataSet.Name, "Relationship.QueryRestart"); if (rowSkippingControlFlag != 0) { return(rowSkippingControlFlag); } } return(RowSkippingControlFlag.ExactMatch); }
public override RowSkippingControlFlag DoesNotMatchRowRecordField(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField[] recordFields) { int num = 0; foreach (ScopeValue item in this.m_scopeID.QueryRestartPosition) { AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo expressionInfo = this.Expressions[num]; AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field = recordFields[expressionInfo.FieldIndex]; RowSkippingControlFlag rowSkippingControlFlag = base.CompareFieldWithScopeValueAndStopOnInequality(odpContext, field, item.Value, this.SortDirections[num], ObjectType.DataSet, this.m_memberDef.DataScopeInfo.DataSet.Name, "ScopeID.QueryRestart"); if (rowSkippingControlFlag != 0) { return(rowSkippingControlFlag); } num++; } return(RowSkippingControlFlag.ExactMatch); }
private void PopulateServerAggregateInformationFromIndicatorFields(AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow recordRow) { int num = 0; int num2 = 0; for (int i = 0; i < recordRow.RecordFields.Length; i++) { AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField recordField = recordRow.RecordFields[i]; AspNetCore.ReportingServices.ReportIntermediateFormat.Field field = base.m_dataSet.Fields[i]; if (recordField != null && field.HasAggregateIndicatorField) { num++; AspNetCore.ReportingServices.ReportIntermediateFormat.Field field2 = base.m_dataSet.Fields[field.AggregateIndicatorFieldIndex]; bool flag = false; bool flag2; if (field2.IsCalculatedField) { if (field2.Value.Type == AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Constant) { flag = field2.Value.BoolValue; flag2 = false; } else { flag2 = !AspNetCore.ReportingServices.RdlExpressions.ReportRuntime.TryProcessObjectToBoolean(field2.Value.LiteralInfo.Value, out flag); } } else { AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField recordField2 = recordRow.RecordFields[field.AggregateIndicatorFieldIndex]; flag2 = (recordField2 == null || recordField2.FieldStatus != 0 || !AspNetCore.ReportingServices.RdlExpressions.ReportRuntime.TryProcessObjectToBoolean(recordField2.FieldValue, out flag)); } if (flag2) { base.m_odpContext.ErrorContext.Register(ProcessingErrorCode.rsMissingOrInvalidAggregateIndicatorFieldValue, Severity.Warning, AspNetCore.ReportingServices.ReportProcessing.ObjectType.Field, field2.Name, "AggregateIndicatorField", base.m_dataSet.Name.MarkAsPrivate(), field.Name.MarkAsModelInfo()); } else if (flag) { num2++; recordRow.IsAggregateRow = true; } recordField.IsAggregationField = !flag; } } recordRow.AggregationFieldCount = num - num2; }
private AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField HandleFieldError(ReportProcessingException_FieldError aException, int aFieldIndex, string aFieldName) { AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField recordField = null; bool flag = false; FieldInfo orCreateFieldInfo = this.m_dataSetInstance.GetOrCreateFieldInfo(aFieldIndex); if (this.m_dataRowsRead == 0 && DataFieldStatus.UnSupportedDataType != aException.Status && DataFieldStatus.Overflow != aException.Status) { orCreateFieldInfo.Missing = true; recordField = null; flag = true; base.m_odpContext.ErrorContext.Register(ProcessingErrorCode.rsMissingFieldInDataSet, Severity.Warning, AspNetCore.ReportingServices.ReportProcessing.ObjectType.DataSet, base.m_dataSet.Name, "Field", aFieldName.MarkAsModelInfo()); } if (!flag) { recordField = new AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField(); recordField.FieldStatus = aException.Status; recordField.IsAggregationField = false; recordField.FieldValue = null; } if (!orCreateFieldInfo.ErrorRegistered) { orCreateFieldInfo.ErrorRegistered = true; if (DataFieldStatus.UnSupportedDataType == aException.Status) { if (!base.m_odpContext.ProcessReportParameters) { base.m_odpContext.ErrorSavingSnapshotData = true; } base.m_odpContext.ErrorContext.Register(ProcessingErrorCode.rsDataSetFieldTypeNotSupported, Severity.Warning, AspNetCore.ReportingServices.ReportProcessing.ObjectType.DataSet, base.m_dataSet.Name, "Field", aFieldName.MarkAsModelInfo()); } else { base.m_odpContext.ErrorContext.Register(ProcessingErrorCode.rsErrorReadingDataSetField, Severity.Warning, AspNetCore.ReportingServices.ReportProcessing.ObjectType.DataSet, base.m_dataSet.Name, "Field", aFieldName.MarkAsModelInfo(), aException.Message); } } return(recordField); }
public void UpdateFieldValues(ObjectModelImpl reportOM, bool useDataSetFieldsCache, bool reuseFieldObjects, AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow row, DataSetInstance dataSetInstance, bool readerExtensionsSupported) { Global.Tracer.Assert(null != row, "Empty data row / no data reader"); if (this.m_dataSetInstance != dataSetInstance) { this.m_dataSetInstance = dataSetInstance; this.m_dataSet = dataSetInstance.DataSetDef.DataSetCore; if (this.m_dataSet.FieldsContext != null && useDataSetFieldsCache) { this.m_fields = this.m_dataSet.FieldsContext.Fields; } else { reuseFieldObjects = false; } this.m_dataReader = null; this.m_lastRowOffset = DataFieldRow.UnInitializedStreamOffset; this.m_pendingFieldValueUpdate = false; } this.m_allFieldsCleared = false; FieldInfo[] fieldInfos = dataSetInstance.FieldInfos; if (this.m_fields.ReaderExtensionsSupported && this.m_dataSet.InterpretSubtotalsAsDetails == AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet.TriState.False) { this.m_fields.IsAggregateRow = row.IsAggregateRow; this.m_fields.AggregationFieldCount = row.AggregationFieldCount; if (!row.IsAggregateRow) { this.m_fields.AggregationFieldCountForDetailRow = row.AggregationFieldCount; } } int num = 0; int count = this.m_dataSet.Fields.Count; int num2 = row.RecordFields.Length; for (num = 0; num < num2; num++) { FieldImpl fieldImpl = reuseFieldObjects ? this.m_fields.GetFieldByIndex(num) : null; AspNetCore.ReportingServices.ReportIntermediateFormat.Field fieldDef = this.m_dataSet.Fields[num]; AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField recordField = row.RecordFields[num]; if (recordField == null) { if (!reuseFieldObjects || fieldImpl == null) { fieldImpl = new FieldImpl(reportOM, DataFieldStatus.IsMissing, null, fieldDef); } else { fieldImpl.UpdateValue(null, false, DataFieldStatus.IsMissing, null); } } else if (recordField.FieldStatus == DataFieldStatus.None) { if (!reuseFieldObjects || fieldImpl == null) { fieldImpl = new FieldImpl(reportOM, recordField.FieldValue, recordField.IsAggregationField, fieldDef); } else { fieldImpl.UpdateValue(recordField.FieldValue, recordField.IsAggregationField, DataFieldStatus.None, null); } } else if (!reuseFieldObjects || fieldImpl == null) { fieldImpl = new FieldImpl(reportOM, recordField.FieldStatus, ReportRuntime.GetErrorName(recordField.FieldStatus, null), fieldDef); } else { fieldImpl.UpdateValue(null, false, recordField.FieldStatus, ReportRuntime.GetErrorName(recordField.FieldStatus, null)); } if (recordField != null && fieldInfos != null) { FieldInfo fieldInfo = fieldInfos[num]; if (fieldInfo != null && fieldInfo.PropertyCount != 0 && recordField.FieldPropertyValues != null) { for (int i = 0; i < fieldInfo.PropertyCount; i++) { fieldImpl.SetProperty(fieldInfo.PropertyNames[i], recordField.FieldPropertyValues[i]); } } } this.m_fields[num] = fieldImpl; } if (num < count) { if (!reuseFieldObjects && reportOM.OdpContext.ReportRuntime.ReportExprHost != null) { this.m_dataSet.SetExprHost(reportOM.OdpContext.ReportRuntime.ReportExprHost, reportOM); } for (; num < count; num++) { AspNetCore.ReportingServices.ReportIntermediateFormat.Field fieldDef2 = this.m_dataSet.Fields[num]; FieldImpl fieldImpl2 = reuseFieldObjects ? this.m_fields.GetFieldByIndex(num) : null; if (reuseFieldObjects && fieldImpl2 != null) { if (!fieldImpl2.ResetCalculatedField()) { this.CreateAndInitializeCalculatedFieldWrapper(reportOM, readerExtensionsSupported, this.m_dataSet, num, fieldDef2); } } else { this.CreateAndInitializeCalculatedFieldWrapper(reportOM, readerExtensionsSupported, this.m_dataSet, num, fieldDef2); } } } }
public ExtendedPropertyCollection(AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field, List <string> extendedPropertyNames) { this.m_recordField = field; this.m_extendedPropertyNames = extendedPropertyNames; }
public RowSkippingControlFlag CompareFieldWithScopeValueAndStopOnInequality(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field, object scopeValue, bool isSortedAscending, ObjectType objectType, string objectName, string propertyName) { if (field == null) { throw new ReportProcessingException(ErrorCode.rsMissingFieldInStartAt); } int num = odpContext.CompareAndStopOnError(field.FieldValue, scopeValue, objectType, objectName, propertyName, false); if (num < 0) { if (!isSortedAscending) { return(RowSkippingControlFlag.Stop); } return(RowSkippingControlFlag.Skip); } if (num > 0) { if (!isSortedAscending) { return(RowSkippingControlFlag.Skip); } return(RowSkippingControlFlag.Stop); } return(RowSkippingControlFlag.ExactMatch); }
private void ReadExtendedPropertiesForRecordField(int fieldIndex, AspNetCore.ReportingServices.ReportIntermediateFormat.Field fieldDef, AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField field) { if (this.m_dataReader.ReaderFieldProperties && this.m_dataSetInstance.GetFieldPropertyCount(fieldIndex) > 0) { FieldInfo orCreateFieldInfo = this.m_dataSetInstance.GetOrCreateFieldInfo(fieldIndex); field.FieldPropertyValues = new List <object>(orCreateFieldInfo.PropertyCount); for (int i = 0; i < orCreateFieldInfo.PropertyCount; i++) { int propertyIndex = orCreateFieldInfo.PropertyReaderIndices[i]; string modelInfo = orCreateFieldInfo.PropertyNames[i]; try { object propertyValue = this.m_dataReader.GetPropertyValue(fieldIndex, propertyIndex); field.FieldPropertyValues.Add(propertyValue); } catch (ReportProcessingException_FieldError reportProcessingException_FieldError) { if (!orCreateFieldInfo.IsPropertyErrorRegistered(i)) { base.m_odpContext.ErrorContext.Register(ProcessingErrorCode.rsErrorReadingFieldProperty, Severity.Warning, AspNetCore.ReportingServices.ReportProcessing.ObjectType.DataSet, base.m_dataSet.Name, "FieldExtendedProperty", fieldDef.Name.MarkAsModelInfo(), modelInfo.MarkAsModelInfo(), reportProcessingException_FieldError.Message); orCreateFieldInfo.SetPropertyErrorRegistered(i); } field.FieldPropertyValues.Add(null); } } } }
private AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow ConstructRecordRow() { AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow recordRow = new AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow(); bool flag = this.m_dataReader.ReaderExtensionsSupported && !base.m_dataSet.HasAggregateIndicatorFields; bool flag2 = this.HasServerAggregateMetadata && (base.m_dataSet.InterpretSubtotalsAsDetails == AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet.TriState.False || (base.m_odpContext.IsSharedDataSetExecutionOnly && base.m_dataSet.InterpretSubtotalsAsDetails == AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet.TriState.Auto)); AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField[] array2 = recordRow.RecordFields = new AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField[base.m_dataSet.NonCalculatedFieldCount]; for (int i = 0; i < array2.Length; i++) { AspNetCore.ReportingServices.ReportIntermediateFormat.Field field = base.m_dataSet.Fields[i]; if (!this.m_dataSetInstance.IsFieldMissing(i)) { AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField recordField = new AspNetCore.ReportingServices.ReportIntermediateFormat.RecordField(); try { array2[i] = recordField; recordField.FieldValue = this.m_dataReader.GetColumn(i); if (flag2) { if (flag) { recordField.IsAggregationField = this.m_dataReader.IsAggregationField(i); } } else { recordField.IsAggregationField = true; } recordField.FieldStatus = DataFieldStatus.None; } catch (ReportProcessingException_FieldError aException) { recordField = (array2[i] = this.HandleFieldError(aException, i, field.Name)); if (recordField != null && !flag2) { recordField.IsAggregationField = true; } } this.ReadExtendedPropertiesForRecordField(i, field, recordField); } else { array2[i] = null; } } if (flag2) { if (flag) { recordRow.IsAggregateRow = this.m_dataReader.IsAggregateRow; recordRow.AggregationFieldCount = this.m_dataReader.AggregationFieldCount; } else { this.PopulateServerAggregateInformationFromIndicatorFields(recordRow); } } else { recordRow.AggregationFieldCount = base.m_dataSet.Fields.Count; } return(recordRow); }