コード例 #1
0
 private void VisitTablixMember(AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember memberDef, int rowMemberIndex, Stack <int> openRecursiveLevels)
 {
     if (memberDef.Instance != null)
     {
         bool generateDocMap = this.m_generateDocMap;
         if (this.ProcessVisibilityAndContinue(memberDef.Visibility, memberDef.Instance.Visibility, memberDef))
         {
             if (!memberDef.IsStatic && rowMemberIndex == -1 && memberDef.Group != null && this.m_generateDocMap)
             {
                 GroupInstance instance         = memberDef.Group.Instance;
                 string        documentMapLabel = instance.DocumentMapLabel;
                 int           recursiveLevel   = instance.RecursiveLevel;
                 if (documentMapLabel != null)
                 {
                     while (openRecursiveLevels.Count > 0 && openRecursiveLevels.Peek() >= recursiveLevel)
                     {
                         this.WriteDocumentMapEndContainer();
                         openRecursiveLevels.Pop();
                     }
                     this.WriteDocumentMapBeginContainer(documentMapLabel, memberDef.Group.Instance.UniqueName);
                     openRecursiveLevels.Push(recursiveLevel);
                 }
             }
             if (rowMemberIndex == -1 && memberDef.TablixHeader != null && memberDef.TablixHeader.CellContents != null)
             {
                 this.Visit(memberDef.TablixHeader.CellContents.ReportItem);
             }
             if (memberDef.Children == null)
             {
                 if (memberDef.IsColumn)
                 {
                     if (rowMemberIndex != -1)
                     {
                         AspNetCore.ReportingServices.OnDemandReportRendering.TablixCell tablixCell = ((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.TablixCell>)((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.TablixRow>)memberDef.OwnerTablix.Body.RowCollection)[rowMemberIndex])[memberDef.MemberCellIndex];
                         if (tablixCell != null && tablixCell.CellContents != null)
                         {
                             this.Visit(tablixCell.CellContents.ReportItem);
                         }
                     }
                 }
                 else
                 {
                     this.VisitTablixMemberCollection(memberDef.OwnerTablix.ColumnHierarchy.MemberCollection, memberDef.MemberCellIndex, true);
                 }
             }
             else
             {
                 this.VisitTablixMemberCollection(memberDef.Children, rowMemberIndex, false);
             }
             this.m_generateDocMap = generateDocMap;
         }
     }
 }
コード例 #2
0
 public override TablixMember this[int index]
 {
     get
     {
         if (index >= 0 && index < this.Count)
         {
             if (base.m_children == null)
             {
                 base.m_children = new DataRegionMember[this.Count];
             }
             TablixMember tablixMember = (TablixMember)base.m_children[index];
             if (tablixMember == null)
             {
                 tablixMember = (TablixMember)(base.m_children[index] = new ShimListMember(this, base.OwnerTablix, this.m_renderGroups, index, base.m_isColumnGroup));
             }
             return(tablixMember);
         }
         throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, this.Count);
     }
 }
コード例 #3
0
 public override TablixMember this[int index]
 {
     get
     {
         if (index >= 0 && index < this.Count)
         {
             if (base.m_children == null)
             {
                 base.m_children = new DataRegionMember[this.Count];
             }
             TablixMember tablixMember = (TablixMember)base.m_children[index];
             if (tablixMember == null)
             {
                 IReportScope reportScope = (this.m_parent != null) ? this.m_parent.ReportScope : base.m_owner.ReportScope;
                 tablixMember = (TablixMember)(base.m_children[index] = new InternalTablixMember(reportScope, this, base.OwnerTablix, this.m_parent, this.m_memberDefs[index], index));
             }
             return(tablixMember);
         }
         throw new RenderingObjectModelException(ProcessingErrorCode.rsInvalidParameterRange, index, 0, this.Count);
     }
 }
コード例 #4
0
 public TablixMember(IDefinitionPath parentDefinitionPath, Tablix owner, TablixMember parent, int parentCollectionIndex)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex)
 {
 }
コード例 #5
0
 public InternalTablixMemberCollection(IDefinitionPath parentDefinitionPath, Tablix owner, TablixMember parent, TablixMemberList memberDefs)
     : base(parentDefinitionPath, owner)
 {
     this.m_parent     = parent;
     this.m_memberDefs = memberDefs;
 }
コード例 #6
0
 public ShimTablixMember(IDefinitionPath parentDefinitionPath, Tablix owner, TablixMember parent, int parentCollectionIndex, bool isColumn)
     : base(parentDefinitionPath, owner, parent, parentCollectionIndex)
 {
     this.m_isColumn = isColumn;
 }
コード例 #7
0
 public InternalTablixMember(IReportScope reportScope, IDefinitionPath parentDefinitionPath, Tablix owner, TablixMember parent, AspNetCore.ReportingServices.ReportIntermediateFormat.TablixMember memberDef, int index)
     : base(parentDefinitionPath, owner, parent, index)
 {
     if (memberDef.IsStatic)
     {
         this.m_reportScope = reportScope;
     }
     base.m_owner     = owner;
     this.m_memberDef = memberDef;
     if (this.m_memberDef.Grouping != null)
     {
         base.m_group = new Group(base.OwnerTablix, this.m_memberDef, this);
     }
     this.m_memberDef.ROMScopeInstance = this.ReportScope.ReportScopeInstance;
     this.m_memberDef.ResetVisibilityComputationCache();
 }
コード例 #8
0
 public TablixHeader(Tablix owner, TablixMember tablixMember)
 {
     this.m_owner        = owner;
     this.m_tablixMember = tablixMember;
 }
コード例 #9
0
        private bool ProcessVisibilityAndContinue(AspNetCore.ReportingServices.OnDemandReportRendering.Visibility aVisibility, VisibilityInstance aVisibilityInstance, AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember memberDef)
        {
            if (aVisibility == null)
            {
                return(true);
            }
            if (aVisibilityInstance != null && this.m_createSnapshot)
            {
                bool startHidden = aVisibilityInstance.StartHidden;
            }
            switch (aVisibility.HiddenState)
            {
            case SharedHiddenState.Always:
                if (this.m_createSnapshot)
                {
                    this.m_generateDocMap = false;
                    return(true);
                }
                return(false);

            case SharedHiddenState.Sometimes:
                if (!aVisibilityInstance.CurrentlyHidden)
                {
                    break;
                }
                if (aVisibility.ToggleItem != null)
                {
                    break;
                }
                if (this.m_createSnapshot)
                {
                    this.m_generateDocMap = false;
                    return(true);
                }
                return(false);

            default:
                if (memberDef == null)
                {
                    break;
                }
                if (!memberDef.IsTotal)
                {
                    break;
                }
                if (this.m_createSnapshot)
                {
                    this.m_generateDocMap = false;
                    return(true);
                }
                return(false);
            }
            return(true);
        }
コード例 #10
0
 private void VisitTablixMemberCollection(TablixMemberCollection memberCollection, int rowMemberIndex, bool isTopLevel)
 {
     if (memberCollection != null)
     {
         for (int i = 0; i < memberCollection.Count; i++)
         {
             AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember tablixMember = ((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember>)memberCollection)[i];
             if (tablixMember.IsStatic)
             {
                 this.VisitTablixMember(tablixMember, rowMemberIndex, null);
             }
             else
             {
                 TablixDynamicMemberInstance tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMember.Instance;
                 Stack <int> stack = new Stack <int>();
                 if (isTopLevel)
                 {
                     tablixDynamicMemberInstance.ResetContext();
                 }
                 while (tablixDynamicMemberInstance.MoveNext())
                 {
                     this.VisitTablixMember(tablixMember, rowMemberIndex, stack);
                 }
                 for (int j = 0; j < stack.Count; j++)
                 {
                     this.WriteDocumentMapEndContainer();
                 }
             }
         }
     }
 }
コード例 #11
0
 public TablixDynamicMemberInstance(Tablix owner, TablixMember memberDef, InternalDynamicMemberLogic memberLogic)
     : base(owner, memberDef)
 {
     this.m_memberLogic = memberLogic;
     this.ResetContext();
 }