예제 #1
0
 internal ReportItem(Microsoft.ReportingServices.ReportProcessing.CustomReportItem criDef, CustomReportItemInstance criInstance, CustomReportItemInstanceInfo instanceInfo)
 {
     m_members = new ReportItemRendering();
     Rendering.m_reportItemDef          = criDef;
     Rendering.m_reportItemInstance     = criInstance;
     Rendering.m_reportItemInstanceInfo = instanceInfo;
     m_intUniqueName = criInstance.UniqueName;
 }
예제 #2
0
        internal ImageMapAreaInstance Deconstruct(Microsoft.ReportingServices.ReportProcessing.CustomReportItem context)
        {
            Global.Tracer.Assert(context != null);
            ImageMapAreaInstance imageMapAreaInstance = new ImageMapAreaInstance(context.ProcessingContext);

            imageMapAreaInstance.ID          = m_id;
            imageMapAreaInstance.Shape       = m_shape;
            imageMapAreaInstance.Coordinates = m_coordinates;
            if (m_actionInfo != null)
            {
                Microsoft.ReportingServices.ReportProcessing.Action action = null;
                m_actionInfo.Deconstruct(imageMapAreaInstance.UniqueName, ref action, out ActionInstance actionInstance, context);
                imageMapAreaInstance.Action         = action;
                imageMapAreaInstance.ActionInstance = actionInstance;
            }
            return(imageMapAreaInstance);
        }
        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);
        }
예제 #4
0
        internal void Deconstruct(int uniqueName, ref Microsoft.ReportingServices.ReportProcessing.Action action, out ActionInstance actionInstance, Microsoft.ReportingServices.ReportProcessing.CustomReportItem context)
        {
            Global.Tracer.Assert(IsCustomControl && context != null);
            actionInstance = null;
            if (Processing.m_actionCollection == null || Processing.m_actionCollection.Count == 0)
            {
                if (action == null)
                {
                    return;
                }
                Global.Tracer.Assert(action.ActionItems != null && 0 < action.ActionItems.Count);
                int count = action.ActionItems.Count;
                actionInstance                   = new ActionInstance();
                actionInstance.UniqueName        = uniqueName;
                actionInstance.ActionItemsValues = new ActionItemInstanceList(count);
                for (int i = 0; i < count; i++)
                {
                    ActionItemInstance actionItemInstance = new ActionItemInstance();
                    if (action.ActionItems[i].DrillthroughParameters != null)
                    {
                        int count2 = action.ActionItems[i].DrillthroughParameters.Count;
                        actionItemInstance.DrillthroughParametersValues = new object[count2];
                        actionItemInstance.DrillthroughParametersOmits  = new BoolList(count2);
                    }
                    actionInstance.ActionItemsValues.Add(actionItemInstance);
                }
                return;
            }
            bool flag   = action == null;
            int  count3 = Processing.m_actionCollection.Count;

            Global.Tracer.Assert(1 <= count3);
            if (flag)
            {
                action             = new Microsoft.ReportingServices.ReportProcessing.Action();
                action.ActionItems = new ActionItemList(count3);
                action.ComputedActionItemsCount = count3;
            }
            else if (count3 != action.ComputedActionItemsCount)
            {
                context.ProcessingContext.ErrorContext.Register(ProcessingErrorCode.rsCRIRenderItemProperties, Severity.Error, context.CustomObjectType, context.CustomObjectName, context.Type, context.Name, "Actions", action.ComputedActionItemsCount.ToString(CultureInfo.InvariantCulture), count3.ToString(CultureInfo.InvariantCulture));
                throw new ReportProcessingException(context.ProcessingContext.ErrorContext.Messages);
            }
            actionInstance                   = new ActionInstance();
            actionInstance.UniqueName        = uniqueName;
            actionInstance.ActionItemsValues = new ActionItemInstanceList(count3);
            for (int j = 0; j < count3; j++)
            {
                Action     action2    = Processing.m_actionCollection[j];
                ActionItem actionItem = null;
                if (flag)
                {
                    actionItem = new ActionItem();
                    actionItem.ComputedIndex = j;
                    actionItem.Label         = new ExpressionInfo(ExpressionInfo.Types.Expression);
                    switch (action2.m_actionType)
                    {
                    case ActionType.HyperLink:
                        actionItem.HyperLinkURL = new ExpressionInfo(ExpressionInfo.Types.Expression);
                        break;

                    case ActionType.DrillThrough:
                        actionItem.DrillthroughReportName = new ExpressionInfo(ExpressionInfo.Types.Expression);
                        if (action2.m_parameters != null && 0 < action2.m_parameters.Count)
                        {
                            int count4 = action2.m_parameters.Count;
                            actionItem.DrillthroughParameters = new ParameterValueList(count4);
                            for (int k = 0; k < count4; k++)
                            {
                                ParameterValue parameterValue = new ParameterValue();
                                parameterValue.Name           = action2.m_parameters.GetKey(k);
                                parameterValue.Omit           = new ExpressionInfo(ExpressionInfo.Types.Constant);
                                parameterValue.Omit.BoolValue = false;
                                parameterValue.Value          = new ExpressionInfo(ExpressionInfo.Types.Expression);
                                actionItem.DrillthroughParameters.Add(parameterValue);
                            }
                        }
                        break;

                    case ActionType.BookmarkLink:
                        actionItem.BookmarkLink = new ExpressionInfo(ExpressionInfo.Types.Expression);
                        break;
                    }
                    action.ActionItems.Add(actionItem);
                }
                else
                {
                    actionItem = action.ActionItems[j];
                }
                Global.Tracer.Assert(actionItem != null);
                ActionItemInstance actionItemInstance2 = new ActionItemInstance();
                actionItemInstance2.Label = action2.Processing.m_label;
                switch (action2.m_actionType)
                {
                case ActionType.HyperLink:
                    actionItemInstance2.HyperLinkURL = action2.Processing.m_action;
                    break;

                case ActionType.DrillThrough:
                    actionItemInstance2.DrillthroughReportName = action2.Processing.m_action;
                    if (action2.m_parameters != null)
                    {
                        int count5 = action2.m_parameters.Count;
                        if (actionItem.DrillthroughParameters == null && 0 < count5)
                        {
                            context.ProcessingContext.ErrorContext.Register(ProcessingErrorCode.rsCRIRenderItemProperties, Severity.Error, context.CustomObjectType, context.CustomObjectName, context.Type, context.Name, "Action.DrillthroughParameters", "0", count5.ToString(CultureInfo.InvariantCulture));
                            throw new ReportProcessingException(context.ProcessingContext.ErrorContext.Messages);
                        }
                        if (count5 != actionItem.DrillthroughParameters.Count)
                        {
                            context.ProcessingContext.ErrorContext.Register(ProcessingErrorCode.rsCRIRenderItemProperties, Severity.Error, context.CustomObjectType, context.CustomObjectName, context.Type, context.Name, "Action.DrillthroughParameters", actionItem.DrillthroughParameters.Count.ToString(CultureInfo.InvariantCulture), count5.ToString(CultureInfo.InvariantCulture));
                            throw new ReportProcessingException(context.ProcessingContext.ErrorContext.Messages);
                        }
                        Global.Tracer.Assert(0 < count5);
                        actionItemInstance2.DrillthroughParametersValues = new object[count5];
                        actionItemInstance2.DrillthroughParametersOmits  = new BoolList(count5);
                        DrillthroughParameters drillthroughParameters = new DrillthroughParameters(count5);
                        for (int l = 0; l < count5; l++)
                        {
                            actionItemInstance2.DrillthroughParametersValues[l] = action2.m_parameters.GetValues(l);
                            actionItemInstance2.DrillthroughParametersOmits.Add(false);
                            drillthroughParameters.Add(actionItem.DrillthroughParameters[l].Name, actionItemInstance2.DrillthroughParametersValues[l]);
                        }
                        DrillthroughInformation drillthroughInfo = new DrillthroughInformation(actionItemInstance2.DrillthroughReportName, drillthroughParameters, null);
                        string drillthroughId = uniqueName.ToString(CultureInfo.InvariantCulture) + ":" + j.ToString(CultureInfo.InvariantCulture);
                        context.ProcessingContext.DrillthroughInfo.AddDrillthrough(drillthroughId, drillthroughInfo);
                    }
                    break;

                case ActionType.BookmarkLink:
                    actionItemInstance2.BookmarkLink = action2.Processing.m_action;
                    break;
                }
                actionInstance.ActionItemsValues.Add(actionItemInstance2);
            }
            Global.Tracer.Assert(action != null && actionInstance != null && Processing.m_actionCollection != null);
            Microsoft.ReportingServices.ReportProcessing.Style style = action.StyleClass;
            object[] styleAttributeValues = null;
            Microsoft.ReportingServices.ReportProcessing.CustomReportItem.DeconstructRenderStyle(flag, Processing.m_sharedStyles, Processing.m_nonSharedStyles, ref style, out styleAttributeValues, context);
            action.StyleClass = style;
            actionInstance.StyleAttributeValues = styleAttributeValues;
        }
예제 #5
0
 internal CustomReportItem(Microsoft.ReportingServices.ReportProcessing.CustomReportItem criDef, CustomReportItemInstance criInstance, CustomReportItemInstanceInfo instanceInfo)
     : base(criDef, criInstance, instanceInfo)
 {
     m_isProcessing = true;
 }
예제 #6
0
        internal static ReportItem CreateItem(string uniqueName, Microsoft.ReportingServices.ReportProcessing.ReportItem reportItemDef, ReportItemInstance reportItemInstance, RenderingContext renderingContext, NonComputedUniqueNames nonComputedUniqueNames)
        {
            if (reportItemDef == null)
            {
                return(null);
            }
            Global.Tracer.Assert(renderingContext != null);
            ReportItem reportItem    = null;
            int        intUniqueName = 0;

            NonComputedUniqueNames[] childrenNonComputedUniqueNames = null;
            if (reportItemInstance != null)
            {
                intUniqueName = reportItemInstance.UniqueName;
            }
            else if (nonComputedUniqueNames != null)
            {
                intUniqueName = nonComputedUniqueNames.UniqueName;
                childrenNonComputedUniqueNames = nonComputedUniqueNames.ChildrenUniqueNames;
            }
            if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Line)
            {
                Microsoft.ReportingServices.ReportProcessing.Line reportItemDef2 = (Microsoft.ReportingServices.ReportProcessing.Line)reportItemDef;
                LineInstance reportItemInstance2 = (LineInstance)reportItemInstance;
                reportItem = new Line(uniqueName, intUniqueName, reportItemDef2, reportItemInstance2, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.CheckBox)
            {
                Microsoft.ReportingServices.ReportProcessing.CheckBox reportItemDef3 = (Microsoft.ReportingServices.ReportProcessing.CheckBox)reportItemDef;
                CheckBoxInstance reportItemInstance3 = (CheckBoxInstance)reportItemInstance;
                reportItem = new CheckBox(uniqueName, intUniqueName, reportItemDef3, reportItemInstance3, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Image)
            {
                Microsoft.ReportingServices.ReportProcessing.Image reportItemDef4 = (Microsoft.ReportingServices.ReportProcessing.Image)reportItemDef;
                ImageInstance reportItemInstance4 = (ImageInstance)reportItemInstance;
                reportItem = new Image(uniqueName, intUniqueName, reportItemDef4, reportItemInstance4, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.TextBox)
            {
                Microsoft.ReportingServices.ReportProcessing.TextBox reportItemDef5 = (Microsoft.ReportingServices.ReportProcessing.TextBox)reportItemDef;
                TextBoxInstance reportItemInstance5 = (TextBoxInstance)reportItemInstance;
                reportItem = new TextBox(uniqueName, intUniqueName, reportItemDef5, reportItemInstance5, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Rectangle)
            {
                Microsoft.ReportingServices.ReportProcessing.Rectangle reportItemDef6 = (Microsoft.ReportingServices.ReportProcessing.Rectangle)reportItemDef;
                RectangleInstance reportItemInstance6 = (RectangleInstance)reportItemInstance;
                reportItem = new Rectangle(uniqueName, intUniqueName, reportItemDef6, reportItemInstance6, renderingContext, childrenNonComputedUniqueNames);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.ActiveXControl)
            {
                Microsoft.ReportingServices.ReportProcessing.ActiveXControl reportItemDef7 = (Microsoft.ReportingServices.ReportProcessing.ActiveXControl)reportItemDef;
                ActiveXControlInstance reportItemInstance7 = (ActiveXControlInstance)reportItemInstance;
                reportItem = new ActiveXControl(uniqueName, intUniqueName, reportItemDef7, reportItemInstance7, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.SubReport)
            {
                Microsoft.ReportingServices.ReportProcessing.SubReport subReport = (Microsoft.ReportingServices.ReportProcessing.SubReport)reportItemDef;
                SubReportInstance subReportInstance = (SubReportInstance)reportItemInstance;
                bool   processedWithError           = false;
                Report innerReport;
                if (Microsoft.ReportingServices.ReportProcessing.SubReport.Status.Retrieved != subReport.RetrievalStatus)
                {
                    innerReport        = null;
                    processedWithError = true;
                }
                else
                {
                    if (subReport.ReportContext == null && renderingContext.CurrentReportContext != null)
                    {
                        subReport.ReportContext = renderingContext.CurrentReportContext.GetSubreportContext(subReport.ReportPath);
                    }
                    ICatalogItemContext reportContext     = subReport.ReportContext;
                    RenderingContext    renderingContext2 = new RenderingContext(renderingContext, subReport.Uri, subReport.Report.EmbeddedImages, subReport.Report.ImageStreamNames, reportContext);
                    if (subReportInstance == null)
                    {
                        innerReport = new Report(subReport.Report, null, renderingContext2, subReport.ReportName, subReport.Description, null);
                    }
                    else if (subReportInstance.ReportInstance == null)
                    {
                        processedWithError = true;
                        innerReport        = new Report(subReport.Report, null, renderingContext2, subReport.ReportName, subReport.Description, null);
                    }
                    else
                    {
                        innerReport = new Report(subReport.Report, subReportInstance.ReportInstance, renderingContext2, subReport.ReportName, subReport.Description, null);
                    }
                }
                reportItem = new SubReport(intUniqueName, subReport, subReportInstance, renderingContext, innerReport, processedWithError);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.List)
            {
                Microsoft.ReportingServices.ReportProcessing.List reportItemDef8 = (Microsoft.ReportingServices.ReportProcessing.List)reportItemDef;
                ListInstance reportItemInstance8 = (ListInstance)reportItemInstance;
                reportItem = new List(intUniqueName, reportItemDef8, reportItemInstance8, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Matrix)
            {
                Microsoft.ReportingServices.ReportProcessing.Matrix reportItemDef9 = (Microsoft.ReportingServices.ReportProcessing.Matrix)reportItemDef;
                MatrixInstance reportItemInstance9 = (MatrixInstance)reportItemInstance;
                reportItem = new Matrix(intUniqueName, reportItemDef9, reportItemInstance9, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Table)
            {
                Microsoft.ReportingServices.ReportProcessing.Table reportItemDef10 = (Microsoft.ReportingServices.ReportProcessing.Table)reportItemDef;
                TableInstance reportItemInstance10 = (TableInstance)reportItemInstance;
                reportItem = new Table(intUniqueName, reportItemDef10, reportItemInstance10, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.OWCChart)
            {
                Microsoft.ReportingServices.ReportProcessing.OWCChart reportItemDef11 = (Microsoft.ReportingServices.ReportProcessing.OWCChart)reportItemDef;
                OWCChartInstance reportItemInstance11 = (OWCChartInstance)reportItemInstance;
                reportItem = new OWCChart(intUniqueName, reportItemDef11, reportItemInstance11, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.Chart)
            {
                Microsoft.ReportingServices.ReportProcessing.Chart reportItemDef12 = (Microsoft.ReportingServices.ReportProcessing.Chart)reportItemDef;
                ChartInstance reportItemInstance12 = (ChartInstance)reportItemInstance;
                reportItem = new Chart(intUniqueName, reportItemDef12, reportItemInstance12, renderingContext);
            }
            else if (reportItemDef is Microsoft.ReportingServices.ReportProcessing.CustomReportItem)
            {
                Microsoft.ReportingServices.ReportProcessing.CustomReportItem reportItemDef13 = (Microsoft.ReportingServices.ReportProcessing.CustomReportItem)reportItemDef;
                CustomReportItemInstance reportItemInstance13 = (CustomReportItemInstance)reportItemInstance;
                reportItem = new CustomReportItem(uniqueName, intUniqueName, reportItemDef13, reportItemInstance13, renderingContext, childrenNonComputedUniqueNames);
                if (!renderingContext.NativeAllCRITypes && (renderingContext.NativeCRITypes == null || !renderingContext.NativeCRITypes.ContainsKey(((CustomReportItem)reportItem).Type)))
                {
                    reportItem = ((CustomReportItem)reportItem).AltReportItem;
                }
            }
            return(reportItem);
        }