⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hierarchicalreportcollection.cs

📁 ASP.NET 建立和发布可自定义 Web 报表的指南
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;

namespace ASPNET.StarterKit.Reports.Components
{
	//*********************************************************************
	//
	// This class inherits from the ArrayList class.  This 'thin class' 
	// will hold the result values from the stored procedure queries
	// run in the HierarchicalReport class.
	//
	//*********************************************************************
	public class HierarchicalReportCollection : ArrayList
	{
		public enum HierarchicalReportFields
		{
			InitValue,
			Territory,
			SalesTotals,
			EmployeeName,
		}
		
		//*********************************************************************
		//
		// Sort()
		//
		// This is where the actual sorting takes place when the user clicks
		// on a column header.  Based on which column the user clicks, 
		// represented by an enum, the Sort() method calls the appropriate
		// IComparer class to compare the items in the base Array List.
		//
		//*********************************************************************

		public void Sort(HierarchicalReportFields sortField, bool isAscending)
		{
			switch (sortField) 
			{
				case HierarchicalReportFields.Territory:
					base.Sort(new TerritoryNameComparer());
					break;
				case HierarchicalReportFields.SalesTotals:
					base.Sort(new SalesTotalsComparer());
					break;
				case HierarchicalReportFields.EmployeeName:
					base.Sort(new EmployeeNameComparer());
					break;
			}

			if (!isAscending) base.Reverse();
		}

		private sealed class TerritoryNameComparer : IComparer 
		{
			public int Compare(object x, object y)
			{
				HierarchicalReport first = (HierarchicalReport) x;
				HierarchicalReport second = (HierarchicalReport) y;
				return first.TerritoryDescription.CompareTo(second.TerritoryDescription);
			}
		}

		private sealed class SalesTotalsComparer : IComparer 
		{
			public int Compare(object x, object y)
			{
				HierarchicalReport first = (HierarchicalReport) x;
				HierarchicalReport second = (HierarchicalReport) y;
				return first.SalesTotals.CompareTo(second.SalesTotals);
			}
		}

		private sealed class EmployeeNameComparer : IComparer 
		{
			public int Compare(object x, object y)
			{
				HierarchicalReport first = (HierarchicalReport) x;
				HierarchicalReport second = (HierarchicalReport) y;
				return first.EmployeeName.CompareTo(second.EmployeeName);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -