internal bool FetchSubReportData(Microsoft.ReportingServices.ReportIntermediateFormat.SubReport subReport, Microsoft.ReportingServices.ReportIntermediateFormat.SubReportInstance subReportInstance) { Microsoft.ReportingServices.ReportIntermediateFormat.ReportInstance reportInstance = subReportInstance.ReportInstance.Value(); reportInstance.ResetReportVariables(subReport.OdpContext); bool flag; try { FetchData(reportInstance, subReport.MergeTransactions); if (subReport.OdpContext.ReprocessSnapshot && reportInstance.IsMissingExpectedDataChunk(subReport.OdpContext)) { flag = false; } else { if (subReport.OdpContext.ReprocessSnapshot && !subReport.InDataRegion) { PreProcessTablixes(subReport.Report, subReport.OdpContext, onlyWithSubReports: false); } flag = true; } } catch (ProcessingAbortedException) { flag = false; } if (flag) { reportInstance.CalculateAndStoreReportVariables(subReport.OdpContext); } return(flag); }
internal void FetchData(Microsoft.ReportingServices.ReportIntermediateFormat.ReportInstance reportInstance, bool mergeTransaction) { if (m_odpContext.ProcessWithCachedData) { if (reportInstance.IsMissingExpectedDataChunk(m_odpContext)) { throw new Microsoft.ReportingServices.ReportProcessing.ReportProcessing.DataCacheUnavailableException(); } } else if (!m_odpContext.SnapshotProcessing) { if (m_odpContext.InSubreport) { m_odpContext.CreateAndSetupDataExtensionFunction.DataSetRetrieveForReportInstance(m_odpContext.ReportContext, m_parameters); } if (!m_retrievalManager.PrefetchData(reportInstance, m_parameters, mergeTransaction)) { throw new ProcessingAbortedException(); } reportInstance.NoRows = m_retrievalManager.NoRows; } }