Exemplo n.º 1
0
        private void InitializeEnvironment()
        {
            m_report = m_romReport.RenderReport.ReportDef;
            Microsoft.ReportingServices.ReportProcessing.ReportInstance  reportInstance   = m_romReport.RenderReport.ReportInstance;
            Microsoft.ReportingServices.ReportRendering.RenderingContext renderingContext = m_romReport.RenderReport.RenderingContext;
            ReportSnapshot     reportSnapshot     = renderingContext.ReportSnapshot;
            ReportInstanceInfo reportInstanceInfo = (ReportInstanceInfo)reportInstance.GetInstanceInfo(renderingContext.ChunkManager);

            m_processingContext = new Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessingContext(renderingContext.TopLevelReportContext, m_report.ShowHideType, renderingContext.GetResourceCallback, m_report.EmbeddedImages, m_report.ImageStreamNames, new ProcessingErrorContext(), !m_report.PageMergeOnePass, renderingContext.AllowUserProfileState, renderingContext.ReportRuntimeSetup, renderingContext.DataProtection);
            m_reportCulture     = Localization.DefaultReportServerSpecificCulture;
            if (m_report.Language != null)
            {
                string text = null;
                text = ((m_report.Language.Type != ExpressionInfo.Types.Constant) ? reportInstance.Language : m_report.Language.Value);
                if (text != null)
                {
                    try
                    {
                        m_reportCulture = new CultureInfo(text, useUserOverride: false);
                        if (m_reportCulture.IsNeutralCulture)
                        {
                            m_reportCulture = CultureInfo.CreateSpecificCulture(text);
                            m_reportCulture = new CultureInfo(m_reportCulture.Name, useUserOverride: false);
                        }
                    }
                    catch (Exception e)
                    {
                        if (AsynchronousExceptionDetection.IsStoppingException(e))
                        {
                            throw;
                        }
                    }
                }
            }
            m_processingContext.ReportObjectModel = new ObjectModelImpl(m_processingContext);
            Global.Tracer.Assert(m_processingContext.ReportRuntime == null, "(m_processingContext.ReportRuntime == null)");
            m_processingContext.ReportRuntime = new ReportRuntime(m_processingContext.ReportObjectModel, m_processingContext.ErrorContext);
            m_processingContext.ReportObjectModel.FieldsImpl      = new FieldsImpl();
            m_processingContext.ReportObjectModel.ParametersImpl  = new ParametersImpl(reportInstanceInfo.Parameters.Count);
            m_processingContext.ReportObjectModel.GlobalsImpl     = new GlobalsImpl(reportInstanceInfo.ReportName, m_currentPageNumber, m_totalPages, reportSnapshot.ExecutionTime, reportSnapshot.ReportServerUrl, reportSnapshot.ReportFolder);
            m_processingContext.ReportObjectModel.UserImpl        = new UserImpl(reportSnapshot.RequestUserName, reportSnapshot.Language, m_processingContext.AllowUserProfileState);
            m_processingContext.ReportObjectModel.DataSetsImpl    = new DataSetsImpl();
            m_processingContext.ReportObjectModel.DataSourcesImpl = new DataSourcesImpl(m_report.DataSourceCount);
            for (int i = 0; i < reportInstanceInfo.Parameters.Count; i++)
            {
                m_processingContext.ReportObjectModel.ParametersImpl.Add(reportInstanceInfo.Parameters[i].Name, new ParameterImpl(reportInstanceInfo.Parameters[i].Values, reportInstanceInfo.Parameters[i].Labels, reportInstanceInfo.Parameters[i].MultiValue));
            }
            m_processingContext.ReportRuntime.LoadCompiledCode(m_report, parametersOnly: false, m_processingContext.ReportObjectModel, m_processingContext.ReportRuntimeSetup);
        }
        internal ImageMapAreaInstanceList Deconstruct(Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessingContext processingContext, Microsoft.ReportingServices.ReportProcessing.CustomReportItem context)
        {
            Global.Tracer.Assert(context != null && processingContext != null);
            if (m_list == null || m_list.Count == 0)
            {
                return(null);
            }
            int count = m_list.Count;
            ImageMapAreaInstanceList imageMapAreaInstanceList = new ImageMapAreaInstanceList(count);

            for (int i = 0; i < count; i++)
            {
                ImageMapAreaInstance value = ((ImageMapArea)m_list[i]).Deconstruct(context);
                imageMapAreaInstanceList.Add(value);
            }
            return(imageMapAreaInstanceList);
        }