示例#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;
                 }
             }
         }
     }
 }
        private AspNetCore.ReportingServices.RdlExpressions.VariantResult[] EvaluatePrimaryKeyExpressions(RuntimeDataTablixGroupLeafObjReference groupLeafRef, Relationship relationship)
        {
            RuntimeDataTablixGroupLeafObj runtimeDataTablixGroupLeafObj = groupLeafRef.Value();
            DataFieldRow dataFieldRow = runtimeDataTablixGroupLeafObj.DataRows[0];

            dataFieldRow.RestoreDataSetAndSetFields(base.m_odpContext, relationship.RelatedDataSet.DataSetCore.FieldsContext);
            return(relationship.EvaluateJoinConditionKeys(true, base.m_odpContext.ReportRuntime));
        }
示例#3
0
 public void RegisterActiveIntersection(RuntimeDataTablixGroupLeafObjReference innerGroupLeafRef, RuntimeDataTablixGroupLeafObjReference outerGroupLeafRef)
 {
     if (m_lastOuterGroupLeafRef != outerGroupLeafRef)
     {
         if (m_lastOuterGroupLeafRef != null)
         {
             using (m_lastOuterGroupLeafRef.PinValue())
             {
                 m_lastOuterGroupLeafRef.Value().ResetStreamingModeIdcRowBuffer();
             }
         }
         m_lastOuterGroupLeafRef = outerGroupLeafRef;
         if (m_activeOuterRelationship != null)
         {
             m_lastOuterPrimaryKeyValues = EvaluatePrimaryKeyExpressions(m_lastOuterGroupLeafRef, m_activeOuterRelationship);
         }
     }
     if (m_lastInnerGroupLeafRef != innerGroupLeafRef)
     {
         m_lastInnerGroupLeafRef     = innerGroupLeafRef;
         m_lastInnerPrimaryKeyValues = EvaluatePrimaryKeyExpressions(m_lastInnerGroupLeafRef, m_activeInnerRelationship);
     }
 }
示例#4
0
 private Microsoft.ReportingServices.RdlExpressions.VariantResult[] EvaluatePrimaryKeyExpressions(RuntimeDataTablixGroupLeafObjReference groupLeafRef, Relationship relationship)
 {
     groupLeafRef.Value().DataRows[0].RestoreDataSetAndSetFields(m_odpContext, relationship.RelatedDataSet.DataSetCore.FieldsContext);
     return(relationship.EvaluateJoinConditionKeys(evaluatePrimaryKeys: true, m_odpContext.ReportRuntime));
 }