Exemplo n.º 1
0
 public static IOnDemandScopeInstance GetCellInstance(IReference <IOnDemandMemberInstance> outerGroupLeafRef, IReference <IOnDemandMemberInstance> innerGroupLeafRef, out IReference <IOnDemandScopeInstance> cellRef)
 {
     using (innerGroupLeafRef.PinValue())
     {
         IOnDemandMemberInstance onDemandMemberInstance = innerGroupLeafRef.Value();
         return(onDemandMemberInstance.GetCellInstance((IOnDemandMemberInstanceReference)outerGroupLeafRef, out cellRef));
     }
 }
Exemplo n.º 2
0
        internal override ScopeID GetScopeID()
        {
            if (m_grouping.IsDetail)
            {
                throw new RenderingObjectModelException(ProcessingErrorCode.rsDetailGroupsNotSupportedInStreamingMode, "GetScopeID");
            }
            if (m_scopeID != null)
            {
                return(m_scopeID);
            }
            m_odpContext.SetupContext(m_memberDef.DataRegionMemberDefinition, m_memberDef.ReportScopeInstance);
            IRIFReportDataScope iRIFReportDataScope = (IRIFReportDataScope)m_memberDef.ReportScope.RIFReportScope;

            if (iRIFReportDataScope.IsBoundToStreamingScopeInstance && !iRIFReportDataScope.CurrentStreamingScopeInstance.Value().IsNoRows)
            {
                List <ScopeValue>       list = null;
                IOnDemandMemberInstance onDemandMemberInstance = (IOnDemandMemberInstance)iRIFReportDataScope.CurrentStreamingScopeInstance.Value();
                m_scopeID = new ScopeID(EvaluateSortAndGroupExpressionValues(onDemandMemberInstance.GroupExprValues)?.ToArray());
            }
            return(m_scopeID);
        }
        public override void BindNextMemberInstance(IInstancePath rifObject, IReportScopeInstance romInstance, int moveNextInstanceIndex)
        {
            IRIFReportDataScope iRIFReportDataScope        = romInstance.ReportScope.RIFReportScope as IRIFReportDataScope;
            IReference <IOnDemandMemberInstance> reference = iRIFReportDataScope.CurrentStreamingScopeInstance as IReference <IOnDemandMemberInstance>;

            if (!reference.Value().IsNoRows)
            {
                IDisposable             disposable             = reference.PinValue();
                IOnDemandMemberInstance onDemandMemberInstance = reference.Value();
                iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance());
                if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance && OnDemandStateManagerStreaming.CanBindOrProcessIndividually(iRIFReportDataScope) && onDemandMemberInstance.IsMostRecentlyCreatedScopeInstance)
                {
                    IdcDataManager idcDataManager = null;
                    if (iRIFReportDataScope.DataScopeInfo.NeedsIDC)
                    {
                        idcDataManager = (IdcDataManager)base.GetIdcDataManager(iRIFReportDataScope);
                        List <object> groupExprValues = onDemandMemberInstance.GroupExprValues;
                        AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode   reportHierarchyNode = (AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode)iRIFReportDataScope;
                        List <AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo> groupExpressions    = reportHierarchyNode.Grouping.GroupExpressions;
                        idcDataManager.SetSkippingFilter(groupExpressions, groupExprValues);
                    }
                    if (this.TryProcessToNextScopeInstance(iRIFReportDataScope))
                    {
                        iRIFReportDataScope.BindToStreamingScopeInstance(onDemandMemberInstance.GetNextMemberInstance());
                    }
                    if (idcDataManager != null)
                    {
                        idcDataManager.ClearSkippingFilter();
                    }
                }
                if (!iRIFReportDataScope.IsBoundToStreamingScopeInstance)
                {
                    iRIFReportDataScope.BindToNoRowsScopeInstance(base.m_odpContext);
                }
                this.SetupEnvironment(iRIFReportDataScope, iRIFReportDataScope.CurrentStreamingScopeInstance.Value(), iRIFReportDataScope.CurrentStreamingScopeInstance);
                disposable.Dispose();
            }
        }
 public SyntheticOnDemandMemberInstanceReference(IOnDemandMemberInstance member)
     : base(member)
 {
 }