internal RuntimeLookupProcessing(OnDemandProcessingContext odpContext, Microsoft.ReportingServices.ReportIntermediateFormat.DataSet dataSet, DataSetInstance dataSetInstance, RuntimeOnDemandDataSetObj lookupOwner)
 {
     m_odpContext        = odpContext;
     m_dataSet           = dataSet;
     m_dataSetInstance   = dataSetInstance;
     m_lookupOwner       = lookupOwner;
     m_mustBufferAllRows = dataSet.HasSameDataSetLookups;
     InitializeRuntimeStructures();
 }
        public DataProcessingController(OnDemandProcessingContext odpContext, Microsoft.ReportingServices.ReportIntermediateFormat.DataSet dataSet, DataSetInstance dataSetInstance)
        {
            m_odpContext      = odpContext;
            m_dataSet         = dataSet;
            m_dataSetInstance = dataSetInstance;
            m_report          = odpContext.ReportDefinition;
            m_odpContext.EnsureScalabilitySetup();
            UserSortFilterContext userSortFilterContext = m_odpContext.UserSortFilterContext;

            if (!m_odpContext.InSubreportInDataRegion)
            {
                userSortFilterContext.ResetContextForTopLevelDataSet();
            }
            m_hasSortFilterInfo = m_odpContext.PopulateRuntimeSortFilterEventInfo(m_dataSet);
            if (-1 == userSortFilterContext.DataSetGlobalId)
            {
                userSortFilterContext.DataSetGlobalId = m_dataSet.GlobalID;
            }
            Global.Tracer.Assert(m_odpContext.ReportObjectModel != null && m_odpContext.ReportRuntime != null);
            m_odpContext.SetupFieldsForNewDataSet(m_dataSet, m_dataSetInstance, addRowIndex: true, noRows: true);
            m_dataSet.SetFilterExprHost(m_odpContext.ReportObjectModel);
            m_dataSetObj = new RuntimeOnDemandDataSetObj(m_odpContext, m_dataSet, m_dataSetInstance);
        }