private void CreateTopLevelRuntimeGroupings(ref DataActions groupingDataAction, ref IReference <RuntimeMemberObj>[] groupings, HierarchyNodeList topLevelStaticMembers, HierarchyNodeList topLevelDynamicMembers, IReference <RuntimeMemberObj>[] innerGroupings, bool hasOppositeStaticLeafMembers)
        {
            int num = topLevelDynamicMembers?.Count ?? 0;

            groupings = new IReference <RuntimeMemberObj> [Math.Max(1, num)];
            if (num == 0)
            {
                IReference <RuntimeMemberObj> reference = RuntimeDataTablixMemberObj.CreateRuntimeMemberObject(m_selfReference, null, ref groupingDataAction, m_odpContext, innerGroupings, topLevelStaticMembers, hasOppositeStaticLeafMembers, 0, base.ObjectType);
                groupings[0] = reference;
                return;
            }
            for (int i = 0; i < num; i++)
            {
                Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMemberDef = topLevelDynamicMembers[i];
                IReference <RuntimeMemberObj> reference2 = RuntimeDataTablixMemberObj.CreateRuntimeMemberObject(m_selfReference, dynamicMemberDef, ref groupingDataAction, m_odpContext, innerGroupings, (i == 0) ? topLevelStaticMembers : null, hasOppositeStaticLeafMembers, 0, base.ObjectType);
                groupings[i] = reference2;
            }
        }
Ejemplo n.º 2
0
        internal static IReference <RuntimeMemberObj> CreateRuntimeMemberObject(IReference <IScope> owner, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMemberDef, ref DataActions dataAction, OnDemandProcessingContext odpContext, IReference <RuntimeMemberObj>[] innerGroupings, HierarchyNodeList staticMembers, bool outerMostStatics, int headingLevel, Microsoft.ReportingServices.ReportProcessing.ObjectType dataRegionType)
        {
            RuntimeDataTablixMemberObj obj = new RuntimeDataTablixMemberObj(owner, dynamicMemberDef, ref dataAction, odpContext, innerGroupings, staticMembers, outerMostStatics, headingLevel, dataRegionType);

            return(odpContext.TablixProcessingScalabilityCache.Allocate((RuntimeMemberObj)obj, headingLevel));
        }