天天看點

Table是怎樣煉成的:SaleReport Table的繼承者

有了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