Example #1
0
        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);
        }
Example #2
0
 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;
     }
 }