📄 hierarchicalreportcollection.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 + -