有了Table,我们对其继承,实现更符合业务要求的类

1Table是怎样炼成的:SaleReport Table的继承者 _编程 /// <summary>
2Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 描述一个销售报表
3Table是怎样炼成的:SaleReport Table的继承者 _继承者_04 /// </summary>

4Table是怎样炼成的:SaleReport Table的继承者 _table_05 public class SaleReport : Table
5Table是怎样炼成的:SaleReport Table的继承者 _table_06 {
6Table是怎样炼成的:SaleReport Table的继承者 _table_03
7Table是怎样炼成的:SaleReport Table的继承者 _table_03 public SaleReport(string reportName)
8Table是怎样炼成的:SaleReport Table的继承者 _table_03 : base(reportName, new ColumnCollection())
9Table是怎样炼成的:SaleReport Table的继承者 _继承者_12 {
10Table是怎样炼成的:SaleReport Table的继承者 _table_03
11Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Columns.Add("序号", typeof(int), 0);
12Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Columns.Add("姓名", typeof(string), null);
13Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Columns.Add("商品名称", typeof(string), null);
14Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Columns.Add("日期", typeof(DateTime), null);
15Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Columns.Add("数量", typeof(double), null);
16Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

17Table是怎样炼成的:SaleReport Table的继承者 _table_03
18Table是怎样炼成的:SaleReport Table的继承者 _休闲_23 /// <summary>
19Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 报表的名称
20Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 /// </summary>

21Table是怎样炼成的:SaleReport Table的继承者 _table_03 public string Name
22Table是怎样炼成的:SaleReport Table的继承者 _继承者_28 {
23Table是怎样炼成的:SaleReport Table的继承者 _table_03 get
24Table是怎样炼成的:SaleReport Table的继承者 _编程_32 {
25Table是怎样炼成的:SaleReport Table的继承者 _table_03 return this.Name;
26Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

27Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

28Table是怎样炼成的:SaleReport Table的继承者 _table_03
29Table是怎样炼成的:SaleReport Table的继承者 _table_39 /// <summary>
30Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 加入数据
31Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// </summary>
32Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// <param name="staff"></param>
33Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// <param name="commodity"></param>
34Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 /// <param name="cash"></param>

35Table是怎样炼成的:SaleReport Table的继承者 _table_03 public void AddRecord(string staff, string commodity, double cash)
36Table是怎样炼成的:SaleReport Table的继承者 _继承者_47 {
37Table是怎样炼成的:SaleReport Table的继承者 _table_03 Row row = this.NewRow();
38Table是怎样炼成的:SaleReport Table的继承者 _table_03 row["序号"] = this.Rows.Count + 1;
39Table是怎样炼成的:SaleReport Table的继承者 _table_03 row["姓名"] = staff;
40Table是怎样炼成的:SaleReport Table的继承者 _table_03 row["商品名称"] = commodity;
41Table是怎样炼成的:SaleReport Table的继承者 _table_03 row["日期"] = DateTime.Now;
42Table是怎样炼成的:SaleReport Table的继承者 _table_03 row["数量"] = cash;
43Table是怎样炼成的:SaleReport Table的继承者 _table_03
44Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Rows.Add(row);
45Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

46Table是怎样炼成的:SaleReport Table的继承者 _table_03
47Table是怎样炼成的:SaleReport Table的继承者 _编程_60 /// <summary>
48Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 移除数据
49Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// </summary>
50Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 /// <param name="index"></param>

51Table是怎样炼成的:SaleReport Table的继承者 _table_03 public void RemoveAt(int index)
52Table是怎样炼成的:SaleReport Table的继承者 _table_66 {
53Table是怎样炼成的:SaleReport Table的继承者 _table_03 this.Rows.RemoveAt(index);
54Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

55Table是怎样炼成的:SaleReport Table的继承者 _table_03
56Table是怎样炼成的:SaleReport Table的继承者 _继承者_72 /// <summary>
57Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 返回销售报表的销售金额
58Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// </summary>
59Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 /// <returns></returns>

60Table是怎样炼成的:SaleReport Table的继承者 _table_03 public double GetTotal()
61Table是怎样炼成的:SaleReport Table的继承者 _休闲_78 {
62Table是怎样炼成的:SaleReport Table的继承者 _table_03 double cash = 0;
63Table是怎样炼成的:SaleReport Table的继承者 _table_03 foreach (Row row in this.Rows)
64Table是怎样炼成的:SaleReport Table的继承者 _继承者_83 {
65Table是怎样炼成的:SaleReport Table的继承者 _table_03 cash += (double)row["数量"];
66Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

67Table是怎样炼成的:SaleReport Table的继承者 _table_03 return cash;
68Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

69Table是怎样炼成的:SaleReport Table的继承者 _table_03
70Table是怎样炼成的:SaleReport Table的继承者 _table_91 /// <summary>
71Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// 返回销售报表的销售金额
72Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// </summary>
73Table是怎样炼成的:SaleReport Table的继承者 _table_03 /// <param name="staff">销售员</param>
74Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 /// <returns></returns>

75Table是怎样炼成的:SaleReport Table的继承者 _table_03 public double GetTotal(string staff)
76Table是怎样炼成的:SaleReport Table的继承者 _编程_98 {
77Table是怎样炼成的:SaleReport Table的继承者 _table_03 double cash = 0;
78Table是怎样炼成的:SaleReport Table的继承者 _table_03 foreach (Row row in this.Rows)
79Table是怎样炼成的:SaleReport Table的继承者 _职场_103 {
80Table是怎样炼成的:SaleReport Table的继承者 _table_03 if ((string)row["姓名"] == staff)
81Table是怎样炼成的:SaleReport Table的继承者 _休闲_107 {
82Table是怎样炼成的:SaleReport Table的继承者 _table_03 cash += (double)row["数量"];
83Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

84Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

85Table是怎样炼成的:SaleReport Table的继承者 _table_03 return cash;
86Table是怎样炼成的:SaleReport Table的继承者 _继承者_21 }

87Table是怎样炼成的:SaleReport Table的继承者 _table_03
88Table是怎样炼成的:SaleReport Table的继承者 _继承者_04 }


SaleReport对外封装了对Table的处理细节,使用SaleReport的用户不会感觉到在使用Table类
1Table是怎样炼成的:SaleReport Table的继承者 _table_05 SaleReport report = new SaleReport("销售台帐");
2Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Alex", "Phone", 2600);
3Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Alex", "PC", 4560);
4Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Alex", "Table", 234);
5Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Sidney", "Phone", 2100);
6Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Sidney", "TV", 4500);
7Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Tom", "oven", 300);
8Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.AddRecord("Leo", "oven", 240);
9Table是怎样炼成的:SaleReport Table的继承者 _table_05
10Table是怎样炼成的:SaleReport Table的继承者 _table_05 report.Print();


运行的结果是
序号 姓名 商品名称 日期 数量

1 Alex Phone 2007-2-13 23:19:27 2600
2 Alex PC 2007-2-13 23:19:27 4560
3 Alex Table 2007-2-13 23:19:27 234
4 Sidney Phone 2007-2-13 23:19:27 2100
5 Sidney TV 2007-2-13 23:19:27 4500
6 Tom oven 2007-2-13 23:19:27 300
7 Leo oven 2007-2-13 23:19:27 240