private void CreateInstance(ScopeInstance parentInstance, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItem, OnDemandProcessingContext odpContext, IReference <IScope> owner)
        {
            if (reportItem != null)
            {
                if (reportItem.IsDataRegion)
                {
                    AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = (AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem;
                    RuntimeDataRegionObjReference dataRegionObjRef = this.m_dataRegionObjs[dataRegion.IndexInCollection];
                    RuntimeRICollection.CreateDataRegionInstance(parentInstance, odpContext, dataRegionObjRef);
                }
                else
                {
                    switch (reportItem.ObjectType)
                    {
                    case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Subreport:
                        this.CreateSubReportInstance((AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport)reportItem, parentInstance, odpContext, owner);
                        break;

                    case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Rectangle:
                    {
                        AspNetCore.ReportingServices.ReportIntermediateFormat.Rectangle rectangle = (AspNetCore.ReportingServices.ReportIntermediateFormat.Rectangle)reportItem;
                        this.CreateInstances(parentInstance, odpContext, owner, rectangle.ReportItems.ComputedReportItems);
                        break;
                    }

                    case AspNetCore.ReportingServices.ReportProcessing.ObjectType.Map:
                    {
                        Map map = (Map)reportItem;
                        List <MapDataRegion> mapDataRegions = map.MapDataRegions;
                        for (int i = 0; i < mapDataRegions.Count; i++)
                        {
                            this.CreateInstance(parentInstance, mapDataRegions[i], odpContext, owner);
                        }
                        break;
                    }
                    }
                }
            }
        }
 protected void DetailHandleSortFilterEvent(AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef, IReference <IScope> outerScope, bool isColumnAxis, int rowIndex)
 {
     using (outerScope.PinValue())
     {
         IScope scope = outerScope.Value();
         List <IReference <RuntimeSortFilterEventInfo> > runtimeSortFilterInfo = this.m_odpContext.RuntimeSortFilterInfo;
         if (runtimeSortFilterInfo != null && dataRegionDef.SortFilterSourceDetailScopeInfo != null && !scope.TargetForNonDetailSort)
         {
             int count = runtimeSortFilterInfo.Count;
             for (int i = 0; i < count; i++)
             {
                 IReference <RuntimeSortFilterEventInfo> reference = runtimeSortFilterInfo[i];
                 using (reference.PinValue())
                 {
                     RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = reference.Value();
                     if (runtimeSortFilterEventInfo.EventSource.ContainingScopes != null && 0 < runtimeSortFilterEventInfo.EventSource.ContainingScopes.Count && -1 != dataRegionDef.SortFilterSourceDetailScopeInfo[i] && scope.TargetScopeMatched(i, false) && this.m_odpContext.ReportObjectModel.FieldsImpl.GetRowIndex() == dataRegionDef.SortFilterSourceDetailScopeInfo[i])
                     {
                         if (runtimeSortFilterEventInfo.EventSource.ContainingScopes.LastEntry == null)
                         {
                             AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem parent = runtimeSortFilterEventInfo.EventSource.Parent;
                             if (runtimeSortFilterEventInfo.EventSource.IsSubReportTopLevelScope)
                             {
                                 while (parent != null && !(parent is AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport))
                                 {
                                     parent = parent.Parent;
                                 }
                                 Global.Tracer.Assert(parent is AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport, "(parent is SubReport)");
                                 parent = parent.Parent;
                             }
                             if (parent == dataRegionDef)
                             {
                                 runtimeSortFilterEventInfo.SetEventSourceScope(isColumnAxis, this.SelfReference, rowIndex);
                             }
                         }
                         runtimeSortFilterEventInfo.AddDetailScopeInfo(isColumnAxis, this.SelfReference, rowIndex);
                     }
                 }
             }
         }
     }
 }
示例#3
0
        public static ReportItem CreateItem(IReportScope reportScope, IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext)
        {
            ReportItem reportItem = null;

            switch (reportItemDef.ObjectType)
            {
            case ObjectType.Textbox:
                reportItem = new TextBox(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.TextBox)reportItemDef, renderingContext);
                break;

            case ObjectType.Rectangle:
                reportItem = new Rectangle(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Rectangle)reportItemDef, renderingContext);
                break;

            case ObjectType.Image:
                reportItem = new Image(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Image)reportItemDef, renderingContext);
                break;

            case ObjectType.Line:
                reportItem = new Line(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Line)reportItemDef, renderingContext);
                break;

            case ObjectType.Subreport:
                reportItem = new SubReport(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport)reportItemDef, renderingContext);
                break;

            case ObjectType.Tablix:
                reportItem = new Tablix(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Tablix)reportItemDef, renderingContext);
                break;

            case ObjectType.Chart:
                reportItem = new Chart(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Chart)reportItemDef, renderingContext);
                break;

            case ObjectType.GaugePanel:
                reportItem = new GaugePanel(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.GaugePanel)reportItemDef, renderingContext);
                break;

            case ObjectType.CustomReportItem:
            {
                AspNetCore.ReportingServices.ReportIntermediateFormat.CustomReportItem customReportItem = (AspNetCore.ReportingServices.ReportIntermediateFormat.CustomReportItem)reportItemDef;
                reportItem = new CustomReportItem(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, customReportItem, renderingContext);
                if (!((CustomReportItem)reportItem).Initialize(renderingContext))
                {
                    reportItem = ReportItem.CreateItem(reportScope, parentDefinitionPath, customReportItem.AltReportItemIndexInParentCollectionDef, customReportItem.AltReportItem, renderingContext);
                    reportItem.ReportItemDef.RepeatedSibling = customReportItem.RepeatedSibling;
                    reportItem.ReportItemDef.RepeatWith      = customReportItem.RepeatWith;
                    ReportItem.ProcessAlternateCustomReportItem(customReportItem, reportItem, renderingContext);
                }
                break;
            }

            case ObjectType.Map:
                reportItem = new Map(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Map)reportItemDef, renderingContext);
                break;
            }
            return(reportItem);
        }
示例#4
0
 public ReportItem(IReportScope reportScope, IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext)
     : base(reportScope, parentDefinitionPath, reportItemDef, renderingContext)
 {
     this.m_definitionPath = DefinitionPathConstants.GetCollectionDefinitionPath(parentDefinitionPath, indexIntoParentCollectionDef);
     base.m_reportItemDef.ROMScopeInstance = this.ReportScope.ReportScopeInstance;
 }
示例#5
0
 public DataRegion(IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext)
     : base(null, parentDefinitionPath, indexIntoParentCollectionDef, reportItemDef, renderingContext)
 {
 }
 public Rectangle(IReportScope reportScope, IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext)
     : base(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, reportItemDef, renderingContext)
 {
 }
示例#7
0
 public bool PopulateRuntimeSortFilterEventInfo(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet myDataSet)
 {
     if (odpContext.TopLevelContext.UserSortFilterInfo != null && odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo != null && odpContext.TopLevelContext.OldSortFilterEventInfo != null)
     {
         if (-1 != this.m_dataSetGlobalID)
         {
             return(false);
         }
         this.m_runtimeSortFilterInfo = null;
         EventInformation.OdpSortEventInfo odpSortInfo = odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo;
         for (int i = 0; i < odpSortInfo.Count; i++)
         {
             string uniqueNameAt = odpSortInfo.GetUniqueNameAt(i);
             AspNetCore.ReportingServices.ReportIntermediateFormat.SortFilterEventInfo sortFilterEventInfo = odpContext.TopLevelContext.OldSortFilterEventInfo[uniqueNameAt];
             if (sortFilterEventInfo != null && sortFilterEventInfo.EventSource.UserSort != null)
             {
                 int num = sortFilterEventInfo.EventSource.UserSort.SubReportDataSetGlobalId;
                 if (-1 == num)
                 {
                     num = sortFilterEventInfo.EventSource.UserSort.DataSet.GlobalID;
                 }
                 if (num == myDataSet.GlobalID)
                 {
                     if (this.m_runtimeSortFilterInfo == null)
                     {
                         this.m_runtimeSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >();
                     }
                     RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = new RuntimeSortFilterEventInfo(sortFilterEventInfo.EventSource, uniqueNameAt, odpSortInfo.GetSortDirectionAt(i), sortFilterEventInfo.EventSourceScopeInfo, odpContext, (this.m_currentContainingScope == null) ? 1 : this.m_currentContainingScope.Value().Depth);
                     runtimeSortFilterEventInfo.SelfReference.UnPinValue();
                     this.m_runtimeSortFilterInfo.Add(runtimeSortFilterEventInfo.SelfReference);
                 }
             }
         }
         if (this.m_runtimeSortFilterInfo != null)
         {
             int count = this.m_runtimeSortFilterInfo.Count;
             for (int j = 0; j < count; j++)
             {
                 IReference <RuntimeSortFilterEventInfo> reference = this.m_runtimeSortFilterInfo[j];
                 using (reference.PinValue())
                 {
                     RuntimeSortFilterEventInfo runtimeSortFilterEventInfo2 = reference.Value();
                     IInScopeEventSource        eventSource = runtimeSortFilterEventInfo2.EventSource;
                     AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortExpressionScope = eventSource.UserSort.SortExpressionScope;
                     if (sortExpressionScope != null)
                     {
                         sortExpressionScope.IsSortFilterExpressionScope = this.SetSortFilterInfo(sortExpressionScope.IsSortFilterExpressionScope, count, j);
                     }
                     AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortTarget = eventSource.UserSort.SortTarget;
                     if (sortTarget != null)
                     {
                         sortTarget.IsSortFilterTarget = this.SetSortFilterInfo(sortTarget.IsSortFilterTarget, count, j);
                     }
                     if (eventSource.ContainingScopes != null && 0 < eventSource.ContainingScopes.Count)
                     {
                         int num2 = 0;
                         int num3 = 0;
                         for (int k = 0; k < eventSource.ContainingScopes.Count; k++)
                         {
                             AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = eventSource.ContainingScopes[k];
                             if (grouping == null || !grouping.IsDetail)
                             {
                                 List <object> list = runtimeSortFilterEventInfo2.SortSourceScopeInfo[num2];
                                 if (grouping != null)
                                 {
                                     if (grouping.SortFilterScopeInfo == null)
                                     {
                                         grouping.SortFilterScopeInfo = new List <object> [count];
                                         for (int l = 0; l < count; l++)
                                         {
                                             grouping.SortFilterScopeInfo[l] = null;
                                         }
                                         grouping.SortFilterScopeIndex = new int[count];
                                         for (int m = 0; m < count; m++)
                                         {
                                             grouping.SortFilterScopeIndex[m] = -1;
                                         }
                                     }
                                     grouping.SortFilterScopeInfo[j]  = list;
                                     grouping.SortFilterScopeIndex[j] = num2;
                                 }
                                 else
                                 {
                                     List <AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport> detailScopeSubReports = eventSource.UserSort.DetailScopeSubReports;
                                     AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem       reportItem            = (detailScopeSubReports == null || num3 >= detailScopeSubReports.Count) ? eventSource.Parent : detailScopeSubReports[num3++].Parent;
                                     while (reportItem != null && !reportItem.IsDataRegion)
                                     {
                                         reportItem = reportItem.Parent;
                                     }
                                     Global.Tracer.Assert(reportItem.IsDataRegion, "(parent.IsDataRegion)");
                                     AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = (AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem;
                                     if (dataRegion.SortFilterSourceDetailScopeInfo == null)
                                     {
                                         dataRegion.SortFilterSourceDetailScopeInfo = new int[count];
                                         for (int n = 0; n < count; n++)
                                         {
                                             dataRegion.SortFilterSourceDetailScopeInfo[n] = -1;
                                         }
                                     }
                                     Global.Tracer.Assert(list != null && 1 == list.Count, "(null != scopeValues && 1 == scopeValues.Count)");
                                     dataRegion.SortFilterSourceDetailScopeInfo[j] = (int)list[0];
                                 }
                                 num2++;
                             }
                         }
                     }
                     AspNetCore.ReportingServices.ReportIntermediateFormat.GroupingList groupsInSortTarget = eventSource.UserSort.GroupsInSortTarget;
                     if (groupsInSortTarget != null)
                     {
                         for (int num5 = 0; num5 < groupsInSortTarget.Count; num5++)
                         {
                             groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression = this.SetSortFilterInfo(groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression, count, j);
                         }
                     }
                     List <int> peerSortFilters = eventSource.GetPeerSortFilters(false);
                     if (peerSortFilters != null && peerSortFilters.Count != 0)
                     {
                         if (runtimeSortFilterEventInfo2.PeerSortFilters == null)
                         {
                             runtimeSortFilterEventInfo2.PeerSortFilters = new Hashtable();
                         }
                         for (int num6 = 0; num6 < peerSortFilters.Count; num6++)
                         {
                             if (eventSource.ID != peerSortFilters[num6])
                             {
                                 runtimeSortFilterEventInfo2.PeerSortFilters.Add(peerSortFilters[num6], null);
                             }
                         }
                     }
                 }
             }
         }
         return(true);
     }
     return(false);
 }
 public void AddReportItemWithRepeatWithToUpdate(AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItem)
 {
     this.m_reportItemsWithRepeatWithToUpdate.Add(reportItem);
 }
示例#9
0
 public ReportElement(IReportScope reportScope, IDefinitionPath parentDefinitionPath, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext)
 {
     this.m_reportScope          = reportScope;
     this.m_parentDefinitionPath = parentDefinitionPath;
     this.m_reportItemDef        = reportItemDef;
     this.m_renderingContext     = renderingContext;
     this.m_isOldSnapshot        = false;
 }