|
<html><head><link rel=stylesheet href=style.css></head><body><div class=SourcePanel style='font-size:12'><pre style='background-color:white'>
<font color= "blue">using</font> System;
<font color= "blue">using</font> System.Data;
<font color= "blue">using</font> System.Configuration;
<font color= "blue">using</font> System.Collections;
<font color= "blue"></font>
<font color= "blue">namespace</font> ASPNET.StarterKit.Reports.Components
<font color= "blue"></font>{
<font color= "green"> //*********************************************************************</font>
<font color= "green"> //</font>
<font color= "green"> // This class inherits from the ArrayList class. This 'thin class' </font>
<font color= "green"> // will hold the result values from the stored procedure queries</font>
<font color= "green"> // run in the HierarchicalReport class.</font>
<font color= "green"> //</font>
<font color= "green"> //*********************************************************************</font>
<font color= "blue"> public class</font> HierarchicalReportCollection : ArrayList
<font color= "blue"> </font>{
<font color= "blue"> public enum</font> HierarchicalReportFields
<font color= "blue"> </font>{
<font color= "blue"> </font>InitValue,
<font color= "blue"> </font>Territory,
<font color= "blue"> </font>SalesTotals,
<font color= "blue"> </font>EmployeeName,
<font color= "blue"> </font>}
<font color= "blue"> </font>
<font color= "green"> //*********************************************************************</font>
<font color= "green"> //</font>
<font color= "green"> // Sort()</font>
<font color= "green"> //</font>
<font color= "green"> // This is where the actual sorting takes place when the user clicks</font>
<font color= "green"> // on a column header. Based on which column the user clicks, </font>
<font color= "green"> // represented by an enum, the Sort() method calls the appropriate</font>
<font color= "green"> // IComparer class to compare the items in the base Array List.</font>
<font color= "green"> //</font>
<font color= "green"> //*********************************************************************</font>
<font color= "blue"></font>
<font color= "blue"> public void</font> Sort(HierarchicalReportFields sortField, bool isAscending)
<font color= "blue"> </font>{
<font color= "blue"> switch</font> (sortField)
<font color= "blue"> </font>{
<font color= "blue"> case</font> HierarchicalReportFields.Territory:
<font color= "blue"> </font>base.Sort(new TerritoryNameComparer());
<font color= "blue"> </font>break;
<font color= "blue"> case</font> HierarchicalReportFields.SalesTotals:
<font color= "blue"> </font>base.Sort(new SalesTotalsComparer());
<font color= "blue"> </font>break;
<font color= "blue"> case</font> HierarchicalReportFields.EmployeeName:
<font color= "blue"> </font>base.Sort(new EmployeeNameComparer());
<font color= "blue"> </font>break;
<font color= "blue"> </font>}
<font color= "blue"></font>
<font color= "blue"></font><font color= "blue"> if </font>(!isAscending) base.Reverse();<font color= "blue"></font>
<font color= "blue"> </font>}
<font color= "blue"></font>
<font color= "blue"> private </font>sealed class TerritoryNameComparer : IComparer
<font color= "blue"> </font>{
<font color= "blue"> public </font>int Compare(object x, object y)
<font color= "blue"> </font>{
<font color= "blue"> </font>HierarchicalReport first = (HierarchicalReport) x;
<font color= "blue"> </font>HierarchicalReport second = (HierarchicalReport) y;
<font color= "blue"> return</font> first.TerritoryDescription.CompareTo(second.TerritoryDescription);
<font color= "blue"> </font>}
<font color= "blue"> </font>}
<font color= "blue"></font>
<font color= "blue"> private </font>sealed class SalesTotalsComparer : IComparer
<font color= "blue"> </font>{
<font color= "blue"> public </font>int Compare(object x, object y)
<font color= "blue"> </font>{
<font color= "blue"> </font>HierarchicalReport first = (HierarchicalReport) x;
<font color= "blue"> </font>HierarchicalReport second = (HierarchicalReport) y;
<font color= "blue"> return</font> first.SalesTotals.CompareTo(second.SalesTotals);
<font color= "blue"> </font>}
<font color= "blue"> </font>}
<font color= "blue"></font>
<font color= "blue"> private </font>sealed class EmployeeNameComparer : IComparer
<font color= "blue"> </font>{
<font color= "blue"> public </font>int Compare(object x, object y)
<font color= "blue"> </font>{
<font color= "blue"> </font>HierarchicalReport first = (HierarchicalReport) x;
<font color= "blue"> </font>HierarchicalReport second = (HierarchicalReport) y;
<font color= "blue"> return</font> first.EmployeeName.CompareTo(second.EmployeeName);
<font color= "blue"> </font>}
<font color= "blue"> </font>}
<font color= "blue"> </font>}
<font color= "blue"></font>}
</pre>
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here