protected bool ProcessSharedDataSetReference() { DataSetInfo dataSetInfo = null; if (m_odpContext.SharedDataSetReferences != null) { if (Guid.Empty != m_dataSet.DataSetCore.CatalogID) { dataSetInfo = m_odpContext.SharedDataSetReferences.GetByID(m_dataSet.DataSetCore.CatalogID); } if (dataSetInfo == null) { dataSetInfo = m_odpContext.SharedDataSetReferences.GetByName(m_dataSet.DataSetCore.Name, m_odpContext.ReportContext); } } if (dataSetInfo == null) { throw new ReportProcessingException(ErrorCode.rsInvalidSharedDataSetReference, m_dataSet.Name.MarkAsPrivate(), m_dataSet.SharedDataSetQuery.SharedDataSetReference); } List <Microsoft.ReportingServices.ReportIntermediateFormat.ParameterValue> parameters = m_dataSet.SharedDataSetQuery.Parameters; SharedDataSetParameterNameMapper.MakeUnique(parameters); ParameterInfoCollection parameterInfoCollection = new ParameterInfoCollection(); object[] array = new object[parameters?.Count ?? 0]; for (int i = 0; i < array.Length; i++) { array[i] = parameters[i].EvaluateQueryParameterValue(m_odpContext, m_dataSet.ExprHost); if (m_dataSet.IsReferenceToSharedDataSet) { ParameterInfo parameterInfo = new ParameterInfo(parameters[i]); parameterInfo.Name = parameters[i].UniqueName; parameterInfo.SetValuesFromQueryParameter(array[i]); parameterInfo.DataType = DataType.Object; parameterInfoCollection.Add(parameterInfo); } } m_odpContext.CheckAndThrowIfAborted(); m_executionMetrics.StartTotalTimer(); try { GetSharedDataSetChunkAndProcess(processAsIRowConsumer: true, dataSetInfo, parameterInfoCollection); } finally { m_executionMetrics.RecordTotalTimerMeasurement(); } if (!m_odpContext.IsSharedDataSetExecutionOnly && m_dataSetInstance != null) { m_dataSetInstance.SaveCollationSettings(m_dataSet); UpdateReportOMDataSet(); } return(false); }
internal void ResolveDependencies(ParameterInfoCollection containingCollection) { if (m_dependencyIndexList != null) { m_dependencyList = new ParameterInfoCollection(m_dependencyIndexList.Length); for (int i = 0; i < m_dependencyIndexList.Length; i++) { m_dependencyList.Add(containingCollection[m_dependencyIndexList[i]]); } } m_dependencyIndexList = null; }
internal ParameterInfo(ParameterInfo source) : base(source) { m_isUserSupplied = source.m_isUserSupplied; m_valuesChanged = source.m_valuesChanged; m_dynamicValidValues = source.m_dynamicValidValues; m_dynamicDefaultValue = source.m_dynamicDefaultValue; m_state = source.State; m_othersDependOnMe = source.m_othersDependOnMe; m_useExplicitDefaultValue = source.m_useExplicitDefaultValue; m_prompt = source.m_prompt; m_dynamicPrompt = source.m_dynamicPrompt; if (source.m_values != null) { int num = source.m_values.Length; m_values = new object[num]; for (int i = 0; i < num; i++) { m_values[i] = source.m_values[i]; } } if (source.m_labels != null) { int num2 = source.m_labels.Length; m_labels = new string[num2]; for (int j = 0; j < num2; j++) { m_labels[j] = source.m_labels[j]; } } if (source.m_dependencyList != null) { int count = source.m_dependencyList.Count; m_dependencyList = new ParameterInfoCollection(count); for (int k = 0; k < count; k++) { m_dependencyList.Add(source.m_dependencyList[k]); } } if (source.m_validValues != null) { int count2 = source.m_validValues.Count; m_validValues = new ValidValueList(count2); for (int l = 0; l < count2; l++) { m_validValues.Add(source.m_validValues[l]); } } }