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); }
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); }
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); }
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); } }
public RuntimeUserSortTargetInfo(ReportProcessing.IHierarchyObj owner, int sortInfoIndex, RuntimeSortFilterEventInfo sortInfo) { this.AddSortInfo(owner, sortInfoIndex, sortInfo); }