private static ExecutionInfo FromSoapExecutionInfo(Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.ExecutionInfo soapExecutionInfo) { if (soapExecutionInfo == null) { return(null); } ReportParameterInfoCollection reportParameterInfoCollection = null; Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.ReportParameter[] parameters = soapExecutionInfo.Parameters; if (parameters != null) { ReportParameterInfo[] array = new ReportParameterInfo[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { array[i] = SoapParameterToReportParameterInfo(parameters[i]); } reportParameterInfoCollection = new ReportParameterInfoCollection(array); } else { reportParameterInfoCollection = new ReportParameterInfoCollection(); } PageCountMode pageCountMode = PageCountMode.Actual; ExecutionInfo2 executionInfo = soapExecutionInfo as ExecutionInfo2; if (executionInfo != null && executionInfo.PageCountMode == Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.PageCountMode.Estimate) { pageCountMode = PageCountMode.Estimate; } ParametersPaneLayout parametersPaneLayout = null; ExecutionInfo3 executionInfo2 = soapExecutionInfo as ExecutionInfo3; if (executionInfo2 != null && executionInfo2.ParametersLayout != null && parameters != null) { parametersPaneLayout = new ParametersPaneLayout(); SoapExecutionInfoToParametersLayout(parametersPaneLayout, executionInfo2, reportParameterInfoCollection); } ReportPageSettings pageSettings = new ReportPageSettings(soapExecutionInfo.ReportPageSettings.PaperSize.Height, soapExecutionInfo.ReportPageSettings.PaperSize.Width, soapExecutionInfo.ReportPageSettings.Margins.Left, soapExecutionInfo.ReportPageSettings.Margins.Right, soapExecutionInfo.ReportPageSettings.Margins.Top, soapExecutionInfo.ReportPageSettings.Margins.Bottom); return(new ExecutionInfo(soapExecutionInfo.ExecutionID, soapExecutionInfo.HistoryID, soapExecutionInfo.ReportPath, soapExecutionInfo.NumPages, soapExecutionInfo.HasDocumentMap, soapExecutionInfo.AutoRefreshInterval, soapExecutionInfo.CredentialsRequired, soapExecutionInfo.ParametersRequired, soapExecutionInfo.HasSnapshot, soapExecutionInfo.NeedsProcessing, soapExecutionInfo.ExpirationDateTime, soapExecutionInfo.AllowQueryExecution, pageCountMode, ReportDataSourceInfoCollection.FromSoapDataSourcePrompts(soapExecutionInfo.DataSourcePrompts), reportParameterInfoCollection, pageSettings, parametersPaneLayout)); }
private static void SoapExecutionInfoToParametersLayout(ParametersPaneLayout paramPaneLayout, ExecutionInfo3 soapExecInfo3, ReportParameterInfoCollection paramInfoCollection) { if (soapExecInfo3.ParametersLayout.CellDefinitions != null) { int num = soapExecInfo3.ParametersLayout.CellDefinitions.Length; GridLayoutCellDefinition[] array = new GridLayoutCellDefinition[num]; for (int i = 0; i < num; i++) { GridLayoutCellDefinition gridLayoutCellDefinition = new GridLayoutCellDefinition(); gridLayoutCellDefinition.Column = soapExecInfo3.ParametersLayout.CellDefinitions[i].ColumnsIndex; gridLayoutCellDefinition.Row = soapExecInfo3.ParametersLayout.CellDefinitions[i].RowIndex; gridLayoutCellDefinition.ParameterName = soapExecInfo3.ParametersLayout.CellDefinitions[i].ParameterName; array[i] = gridLayoutCellDefinition; } GridLayoutDefinition gridLayoutDefinition = paramPaneLayout.GridLayoutDefinition = new GridLayoutDefinition(new GridLayoutCellDefinitionCollection(array), soapExecInfo3.ParametersLayout.NumberOfRows, soapExecInfo3.ParametersLayout.NumberOfColumns, paramInfoCollection); } }