示例#1
0
 public override void Advance()
 {
     using (m_lastInnerGroupLeafRef.PinValue())
     {
         using (m_lastOuterGroupLeafRef.PinValue())
         {
             RuntimeDataTablixGroupLeafObj runtimeDataTablixGroupLeafObj = m_lastInnerGroupLeafRef.Value();
             RuntimeDataTablixGroupLeafObj rowGroupLeaf = m_lastOuterGroupLeafRef.Value();
             OnDemandStateManager          stateManager = m_odpContext.StateManager;
             ObjectModelImpl reportObjectModel          = m_odpContext.ReportObjectModel;
             if (m_idcDataSet.DataSetCore.FieldsContext != null)
             {
                 reportObjectModel.RestoreFields(m_idcDataSet.DataSetCore.FieldsContext);
             }
             while (SetupNextRow(m_lastOuterPrimaryKeyValues, m_activeOuterRelationship, m_lastInnerPrimaryKeyValues, m_activeInnerRelationship))
             {
                 ApplyGroupingFieldsForServerAggregates(m_cellScope);
                 bool rowAccepted = runtimeDataTablixGroupLeafObj.GetOrCreateCell(rowGroupLeaf).NextRow();
                 if (stateManager.ShouldStopPipelineAdvance(rowAccepted))
                 {
                     break;
                 }
             }
         }
     }
 }
示例#2
0
        public void SetupEnvironment()
        {
            ObjectModelImpl reportObjectModel = base.m_odpContext.ReportObjectModel;

            reportObjectModel.RestoreFields(base.m_idcDataSet.DataSetCore.FieldsContext);
            if (!this.m_lastCorrelationHadMatchingRow)
            {
                base.m_odpContext.ReportObjectModel.ResetFieldValues();
            }
        }
示例#3
0
        public override void Advance()
        {
            _ = m_odpContext.StateManager;
            ObjectModelImpl reportObjectModel = m_odpContext.ReportObjectModel;

            if (m_idcDataSet.DataSetCore.FieldsContext != null)
            {
                reportObjectModel.RestoreFields(m_idcDataSet.DataSetCore.FieldsContext);
            }
            if (SetupCorrelatedRow(startWithCurrentRow: true))
            {
                m_lastCorrelationHadMatchingRow = true;
                return;
            }
            m_lastCorrelationHadMatchingRow = false;
            reportObjectModel.ResetFieldValues();
        }
示例#4
0
        public override void Advance()
        {
            OnDemandStateManager stateManager      = base.m_odpContext.StateManager;
            ObjectModelImpl      reportObjectModel = base.m_odpContext.ReportObjectModel;

            if (base.m_idcDataSet.DataSetCore.FieldsContext != null)
            {
                reportObjectModel.RestoreFields(base.m_idcDataSet.DataSetCore.FieldsContext);
            }
            if (base.SetupCorrelatedRow(true))
            {
                this.m_lastCorrelationHadMatchingRow = true;
            }
            else
            {
                this.m_lastCorrelationHadMatchingRow = false;
                reportObjectModel.ResetFieldValues();
            }
        }
        public override void Advance()
        {
            OnDemandStateManager stateManager      = m_odpContext.StateManager;
            ObjectModelImpl      reportObjectModel = m_odpContext.ReportObjectModel;

            if (m_idcDataSet.DataSetCore.FieldsContext != null)
            {
                reportObjectModel.RestoreFields(m_idcDataSet.DataSetCore.FieldsContext);
            }
            using (m_lastRuntimeReceiver.PinValue())
            {
                IDataCorrelation dataCorrelation = m_lastRuntimeReceiver.Value();
                while (SetupCorrelatedRow(startWithCurrentRow: false))
                {
                    ApplyGroupingFieldsForServerAggregates(m_idcReportDataScope);
                    bool rowAccepted = dataCorrelation.NextCorrelatedRow();
                    if (stateManager.ShouldStopPipelineAdvance(rowAccepted))
                    {
                        break;
                    }
                }
            }
        }