Esempio n. 1
0
 public bool ComputeDeepHidden(Microsoft.ReportingServices.OnDemandReportRendering.RenderingContext renderingContext, ToggleCascadeDirection direction)
 {
     if (!CanUseCachedVisibilityData(m_hasCachedDeepHiddenValue))
     {
         bool hidden = ComputeHidden(renderingContext, direction);
         if (!m_hasCachedDeepHiddenValue)
         {
             m_hasCachedDeepHiddenValue = true;
             m_cachedDeepHiddenValue    = Visibility.ComputeDeepHidden(hidden, this, direction, renderingContext);
         }
     }
     return(m_cachedDeepHiddenValue);
 }
Esempio n. 2
0
        internal static bool ComputeDeepHidden(bool hidden, IVisibilityOwner visibilityOwner, ToggleCascadeDirection direction, Microsoft.ReportingServices.OnDemandReportRendering.RenderingContext renderingContext)
        {
            Visibility visibility = visibilityOwner.Visibility;

            if (hidden && (visibility == null || !visibility.IsToggleReceiver))
            {
                hidden = false;
            }
            if (!hidden && visibility != null && visibility.IsToggleReceiver)
            {
                hidden = ((!visibility.RecursiveReceiver || !(visibilityOwner is TablixMember)) ? (hidden | visibility.ToggleSender.ComputeDeepHidden(renderingContext, direction)) : (hidden | ((TablixMember)visibilityOwner).ComputeToggleSenderDeepHidden(renderingContext)));
            }
            if (!hidden && (visibility == null || !visibility.RecursiveReceiver) && visibilityOwner.ContainingDynamicVisibility != null)
            {
                hidden |= visibilityOwner.ContainingDynamicVisibility.ComputeDeepHidden(renderingContext, direction);
            }
            if (!hidden && direction != ToggleCascadeDirection.Column && visibilityOwner.ContainingDynamicRowVisibility != null)
            {
                hidden |= visibilityOwner.ContainingDynamicRowVisibility.ComputeDeepHidden(renderingContext, direction);
            }
            if (!hidden && direction != ToggleCascadeDirection.Row && visibilityOwner.ContainingDynamicColumnVisibility != null)
            {
                hidden |= visibilityOwner.ContainingDynamicColumnVisibility.ComputeDeepHidden(renderingContext, direction);
            }
            return(hidden);
        }
Esempio n. 3
0
 public bool ComputeHidden(Microsoft.ReportingServices.OnDemandReportRendering.RenderingContext renderingContext, ToggleCascadeDirection direction)
 {
     if (!CanUseCachedVisibilityData(m_hasCachedHiddenValue))
     {
         UpdateVisibilityDataCacheFlag(ref m_hasCachedHiddenValue);
         m_cachedHiddenValue = Visibility.ComputeHidden(this, renderingContext, direction, out bool valueIsDeep);
         if (valueIsDeep)
         {
             m_hasCachedDeepHiddenValue = true;
             m_cachedDeepHiddenValue    = m_cachedHiddenValue;
         }
     }
     return(m_cachedHiddenValue);
 }
Esempio n. 4
0
        internal static bool ComputeHidden(IVisibilityOwner visibilityOwner, Microsoft.ReportingServices.OnDemandReportRendering.RenderingContext renderingContext, ToggleCascadeDirection direction, out bool valueIsDeep)
        {
            valueIsDeep = false;
            bool       flag       = false;
            Visibility visibility = visibilityOwner.Visibility;

            if (visibility != null)
            {
                switch (GetSharedHidden(visibility))
                {
                case SharedHiddenState.Always:
                    flag = true;
                    break;

                case SharedHiddenState.Never:
                    flag = false;
                    break;

                case SharedHiddenState.Sometimes:
                    flag = visibilityOwner.ComputeStartHidden(renderingContext);
                    if (visibility.IsToggleReceiver)
                    {
                        TextBox toggleSender = visibility.ToggleSender;
                        Global.Tracer.Assert(toggleSender != null, "Missing Persisted Toggle Receiver -> Sender Link");
                        string senderUniqueName = visibilityOwner.SenderUniqueName;
                        if (senderUniqueName != null && renderingContext.IsSenderToggled(senderUniqueName))
                        {
                            flag = !flag;
                        }
                        if (!flag)
                        {
                            flag = ComputeDeepHidden(flag, visibilityOwner, direction, renderingContext);
                        }
                        valueIsDeep = true;
                    }
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
            return(flag);
        }