Beispiel #1
0
 public void ProcessUserSortForTarget(ObjectModelImpl reportObjectModel, ReportRuntime reportRuntime, ReportProcessing.IHierarchyObj target, ref ReportProcessing.DataRowList dataRows, bool targetForNonDetailSort)
 {
     if (targetForNonDetailSort && dataRows != null && 0 < dataRows.Count)
     {
         RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = null;
         IntList sortFilterInfoIndices = target.SortFilterInfoIndices;
         Global.Tracer.Assert(null != target.SortTree, "(null != target.SortTree)");
         if (sortFilterInfoIndices != null)
         {
             runtimeSortFilterEventInfo = this.m_runtimeSortFilterInfo[sortFilterInfoIndices[0]];
         }
         for (int i = 0; i < dataRows.Count; i++)
         {
             reportObjectModel.FieldsImpl.SetFields(dataRows[i]);
             object keyValue = DBNull.Value;
             if (runtimeSortFilterEventInfo != null)
             {
                 keyValue = runtimeSortFilterEventInfo.GetSortOrder(reportRuntime);
             }
             target.SortTree.NextRow(keyValue);
         }
         dataRows = null;
     }
     target.MarkSortInfoProcessed(this.m_runtimeSortFilterInfo);
 }
Beispiel #2
0
        public bool IsSortFilterTarget(bool[] isSortFilterTarget, ReportProcessing.IScope outerScope, ReportProcessing.IHierarchyObj target, ref RuntimeUserSortTargetInfo userSortTargetInfo)
        {
            bool result = false;

            if (this.m_runtimeSortFilterInfo != null && isSortFilterTarget != null && (outerScope == null || !outerScope.TargetForNonDetailSort))
            {
                for (int i = 0; i < this.m_runtimeSortFilterInfo.Count; i++)
                {
                    RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = this.m_runtimeSortFilterInfo[i];
                    if (runtimeSortFilterEventInfo.EventTarget == null && isSortFilterTarget[i] && (outerScope == null || outerScope.TargetScopeMatched(i, false)))
                    {
                        runtimeSortFilterEventInfo.EventTarget = target;
                        if (userSortTargetInfo == null)
                        {
                            userSortTargetInfo = new RuntimeUserSortTargetInfo(target, i, runtimeSortFilterEventInfo);
                        }
                        else
                        {
                            userSortTargetInfo.AddSortInfo(target, i, runtimeSortFilterEventInfo);
                        }
                        result = true;
                    }
                }
            }
            return(result);
        }
Beispiel #3
0
 public void AddSortInfoIndex(int sortInfoIndex, RuntimeSortFilterEventInfo sortInfo)
 {
     Global.Tracer.Assert(sortInfo.EventSource.UserSort.SortExpressionScope == null || !sortInfo.TargetSortFilterInfoAdded);
     if (this.m_sortFilterInfoIndices == null)
     {
         this.m_sortFilterInfoIndices = new IntList();
     }
     this.m_sortFilterInfoIndices.Add(sortInfoIndex);
     sortInfo.TargetSortFilterInfoAdded = true;
 }
 public SortFilterExpressionScopeObj(RuntimeSortFilterEventInfo owner)
 {
     this.m_owner           = owner;
     this.m_scopeInstances  = new ReportProcessing.RuntimeDataRegionObjList();
     this.m_scopeValuesList = new ArrayList();
 }
 void ReportProcessing.IHierarchyObj.AddSortInfoIndex(int sortFilterInfoIndex, RuntimeSortFilterEventInfo sortInfo)
 {
     Global.Tracer.Assert(false);
 }
Beispiel #6
0
 public void AddSortInfo(ReportProcessing.IHierarchyObj owner, int sortInfoIndex, RuntimeSortFilterEventInfo sortInfo)
 {
     if (sortInfo.EventSource.UserSort.SortExpressionScope != null || owner.IsDetail)
     {
         if (sortInfo.EventSource.UserSort.SortExpressionScope == null)
         {
             this.AddSortInfoIndex(sortInfoIndex, sortInfo);
         }
         if (this.m_sortTree == null)
         {
             this.m_sortTree = new ReportProcessing.BTreeNode(owner);
         }
     }
     if (sortInfo.EventSource.UserSort.SortExpressionScope != null)
     {
         if (this.m_targetForNonDetailSort == null)
         {
             this.m_targetForNonDetailSort = new Hashtable();
         }
         this.m_targetForNonDetailSort.Add(sortInfoIndex, null);
     }
     else
     {
         if (this.m_targetForDetailSort == null)
         {
             this.m_targetForDetailSort = new Hashtable();
         }
         this.m_targetForDetailSort.Add(sortInfoIndex, null);
     }
 }
Beispiel #7
0
 public RuntimeUserSortTargetInfo(ReportProcessing.IHierarchyObj owner, int sortInfoIndex, RuntimeSortFilterEventInfo sortInfo)
 {
     this.AddSortInfo(owner, sortInfoIndex, sortInfo);
 }