有了Table,我們對其繼承,實作更符合業務要求的類
1
Table是怎樣煉成的:SaleReport Table的繼承者 /// <summary>
2
Table是怎樣煉成的:SaleReport Table的繼承者 /// 描述一個銷售報表
3
Table是怎樣煉成的:SaleReport Table的繼承者 /// </summary>
4
Table是怎樣煉成的:SaleReport Table的繼承者 public class SaleReport : Table
5
Table是怎樣煉成的:SaleReport Table的繼承者 {
6
Table是怎樣煉成的:SaleReport Table的繼承者 7
Table是怎樣煉成的:SaleReport Table的繼承者 public SaleReport(string reportName)
8
Table是怎樣煉成的:SaleReport Table的繼承者 : base(reportName, new ColumnCollection())
9
Table是怎樣煉成的:SaleReport Table的繼承者 10
Table是怎樣煉成的:SaleReport Table的繼承者 11
Table是怎樣煉成的:SaleReport Table的繼承者 this.Columns.Add("序号", typeof(int), 0);
12
Table是怎樣煉成的:SaleReport Table的繼承者 this.Columns.Add("姓名", typeof(string), null);
13
Table是怎樣煉成的:SaleReport Table的繼承者 this.Columns.Add("商品名稱", typeof(string), null);
14
Table是怎樣煉成的:SaleReport Table的繼承者 this.Columns.Add("日期", typeof(DateTime), null);
15
Table是怎樣煉成的:SaleReport Table的繼承者 this.Columns.Add("數量", typeof(double), null);
16
Table是怎樣煉成的:SaleReport Table的繼承者 }
17
Table是怎樣煉成的:SaleReport Table的繼承者 18
Table是怎樣煉成的:SaleReport Table的繼承者 19
Table是怎樣煉成的:SaleReport Table的繼承者 /// 報表的名稱
20
Table是怎樣煉成的:SaleReport Table的繼承者 21
Table是怎樣煉成的:SaleReport Table的繼承者 public string Name
22
Table是怎樣煉成的:SaleReport Table的繼承者 23
Table是怎樣煉成的:SaleReport Table的繼承者 get
24
Table是怎樣煉成的:SaleReport Table的繼承者 25
Table是怎樣煉成的:SaleReport Table的繼承者 return this.Name;
26
Table是怎樣煉成的:SaleReport Table的繼承者 27
Table是怎樣煉成的:SaleReport Table的繼承者 28
Table是怎樣煉成的:SaleReport Table的繼承者 29
Table是怎樣煉成的:SaleReport Table的繼承者 30
Table是怎樣煉成的:SaleReport Table的繼承者 /// 加入資料
31
Table是怎樣煉成的:SaleReport Table的繼承者 32
Table是怎樣煉成的:SaleReport Table的繼承者 /// <param name="staff"></param>
33
Table是怎樣煉成的:SaleReport Table的繼承者 /// <param name="commodity"></param>
34
Table是怎樣煉成的:SaleReport Table的繼承者 /// <param name="cash"></param>
35
Table是怎樣煉成的:SaleReport Table的繼承者 public void AddRecord(string staff, string commodity, double cash)
36
Table是怎樣煉成的:SaleReport Table的繼承者 37
Table是怎樣煉成的:SaleReport Table的繼承者 Row row = this.NewRow();
38
Table是怎樣煉成的:SaleReport Table的繼承者 row["序号"] = this.Rows.Count + 1;
39
Table是怎樣煉成的:SaleReport Table的繼承者 row["姓名"] = staff;
40
Table是怎樣煉成的:SaleReport Table的繼承者 row["商品名稱"] = commodity;
41
Table是怎樣煉成的:SaleReport Table的繼承者 row["日期"] = DateTime.Now;
42
Table是怎樣煉成的:SaleReport Table的繼承者 row["數量"] = cash;
43
Table是怎樣煉成的:SaleReport Table的繼承者 44
Table是怎樣煉成的:SaleReport Table的繼承者 this.Rows.Add(row);
45
Table是怎樣煉成的:SaleReport Table的繼承者 46
Table是怎樣煉成的:SaleReport Table的繼承者 47
Table是怎樣煉成的:SaleReport Table的繼承者 48
Table是怎樣煉成的:SaleReport Table的繼承者 /// 移除資料
49
Table是怎樣煉成的:SaleReport Table的繼承者 50
Table是怎樣煉成的:SaleReport Table的繼承者 /// <param name="index"></param>
51
Table是怎樣煉成的:SaleReport Table的繼承者 public void RemoveAt(int index)
52
Table是怎樣煉成的:SaleReport Table的繼承者 53
Table是怎樣煉成的:SaleReport Table的繼承者 this.Rows.RemoveAt(index);
54
Table是怎樣煉成的:SaleReport Table的繼承者 55
Table是怎樣煉成的:SaleReport Table的繼承者 56
Table是怎樣煉成的:SaleReport Table的繼承者 57
Table是怎樣煉成的:SaleReport Table的繼承者 /// 傳回銷售報表的銷售金額
58
Table是怎樣煉成的:SaleReport Table的繼承者 59
Table是怎樣煉成的:SaleReport Table的繼承者 /// <returns></returns>
60
Table是怎樣煉成的:SaleReport Table的繼承者 public double GetTotal()
61
Table是怎樣煉成的:SaleReport Table的繼承者 62
Table是怎樣煉成的:SaleReport Table的繼承者 double cash = 0;
63
Table是怎樣煉成的:SaleReport Table的繼承者 foreach (Row row in this.Rows)
64
Table是怎樣煉成的:SaleReport Table的繼承者 65
Table是怎樣煉成的:SaleReport Table的繼承者 cash += (double)row["數量"];
66
Table是怎樣煉成的:SaleReport Table的繼承者 67
Table是怎樣煉成的:SaleReport Table的繼承者 return cash;
68
Table是怎樣煉成的:SaleReport Table的繼承者 69
Table是怎樣煉成的:SaleReport Table的繼承者 70
Table是怎樣煉成的:SaleReport Table的繼承者 71
Table是怎樣煉成的:SaleReport Table的繼承者 72
Table是怎樣煉成的:SaleReport Table的繼承者 73
Table是怎樣煉成的:SaleReport Table的繼承者 /// <param name="staff">銷售員</param>
74
Table是怎樣煉成的:SaleReport Table的繼承者 75
Table是怎樣煉成的:SaleReport Table的繼承者 public double GetTotal(string staff)
76
Table是怎樣煉成的:SaleReport Table的繼承者 77
Table是怎樣煉成的:SaleReport Table的繼承者 78
Table是怎樣煉成的:SaleReport Table的繼承者 79
Table是怎樣煉成的:SaleReport Table的繼承者 80
Table是怎樣煉成的:SaleReport Table的繼承者 if ((string)row["姓名"] == staff)
81
Table是怎樣煉成的:SaleReport Table的繼承者 82
Table是怎樣煉成的:SaleReport Table的繼承者 83
Table是怎樣煉成的:SaleReport Table的繼承者 84
Table是怎樣煉成的:SaleReport Table的繼承者 85
Table是怎樣煉成的:SaleReport Table的繼承者 86
Table是怎樣煉成的:SaleReport Table的繼承者 87
Table是怎樣煉成的:SaleReport Table的繼承者 88
Table是怎樣煉成的:SaleReport Table的繼承者 SaleReport對外封裝了對Table的處理細節,使用SaleReport的使用者不會感覺到在使用Table類
Table是怎樣煉成的:SaleReport Table的繼承者 SaleReport report = new SaleReport("銷售台帳");
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Alex", "Phone", 2600);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Alex", "PC", 4560);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Alex", "Table", 234);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Sidney", "Phone", 2100);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Sidney", "TV", 4500);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Tom", "oven", 300);
Table是怎樣煉成的:SaleReport Table的繼承者 report.AddRecord("Leo", "oven", 240);
Table是怎樣煉成的:SaleReport Table的繼承者
Table是怎樣煉成的:SaleReport Table的繼承者 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
本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/806270