zoukankan      html  css  js  c++  java
  • Table是怎样炼成的:SaleReport Table的继承者

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

     1    /// <summary>
     2    /// 描述一个销售报表
     3    /// </summary>

     4    public class SaleReport : Table
     5    {
     6
     7        public SaleReport(string reportName)
     8            : base(reportName, new ColumnCollection())
     9        {
    10
    11            this.Columns.Add("序号"typeof(int), 0);
    12            this.Columns.Add("姓名"typeof(string), null);
    13            this.Columns.Add("商品名称"typeof(string), null);
    14            this.Columns.Add("日期"typeof(DateTime), null);
    15            this.Columns.Add("数量"typeof(double), null);
    16        }

    17
    18        /// <summary>
    19        /// 报表的名称
    20        /// </summary>

    21        public string Name
    22        {
    23            get
    24            {
    25                return this.Name;
    26            }

    27        }

    28
    29        /// <summary>
    30        /// 加入数据
    31        /// </summary>
    32        /// <param name="staff"></param>
    33        /// <param name="commodity"></param>
    34        /// <param name="cash"></param>

    35        public void AddRecord(string staff, string commodity, double cash)
    36        {
    37            Row row = this.NewRow();
    38            row["序号"= this.Rows.Count + 1;
    39            row["姓名"= staff;
    40            row["商品名称"= commodity;
    41            row["日期"= DateTime.Now;
    42            row["数量"= cash;
    43
    44            this.Rows.Add(row);
    45        }

    46
    47        /// <summary>
    48        /// 移除数据
    49        /// </summary>
    50        /// <param name="index"></param>

    51        public void RemoveAt(int index)
    52        {
    53            this.Rows.RemoveAt(index);
    54        }

    55
    56        /// <summary>
    57        /// 返回销售报表的销售金额
    58        /// </summary>
    59        /// <returns></returns>

    60        public double GetTotal()
    61        {
    62            double cash = 0;
    63            foreach (Row row in this.Rows)
    64            {
    65                cash += (double)row["数量"];
    66            }

    67            return cash;
    68        }

    69
    70        /// <summary>
    71        /// 返回销售报表的销售金额
    72        /// </summary>
    73        /// <param name="staff">销售员</param>
    74        /// <returns></returns>

    75        public double GetTotal(string staff)
    76        {
    77            double cash = 0;
    78            foreach (Row row in this.Rows)
    79            {
    80                if ((string)row["姓名"== staff)
    81                {
    82                    cash += (double)row["数量"];
    83                }

    84            }

    85            return cash;
    86        }

    87
    88    }


    SaleReport对外封装了对Table的处理细节,使用SaleReport的用户不会感觉到在使用Table类
     1            SaleReport report = new SaleReport("销售台帐");
     2            report.AddRecord("Alex""Phone"2600);
     3            report.AddRecord("Alex""PC"4560);
     4            report.AddRecord("Alex""Table"234);
     5            report.AddRecord("Sidney""Phone"2100);
     6            report.AddRecord("Sidney""TV"4500);
     7            report.AddRecord("Tom""oven"300);
     8            report.AddRecord("Leo""oven"240);
     9
    10            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

  • 相关阅读:
    从gettext来看linux下程序的internationalization
    C++ Convert Operator和其他Operator的应用场景比较
    申明一个函数指针,并且该函数的返回值也是一个函数指针 示例代码
    XML操作大全
    如何让页面延迟显示?
    Ajax实现不刷屏的前提下实现页面定时刷新
    我喜欢的笑话 呵呵
    Atlas UpdatePanel使用技巧以及常见问题
    asp.net 弹出窗体
    C# asp.net操作文件
  • 原文地址:https://www.cnblogs.com/shyleoking/p/649839.html
Copyright © 2011-2022 走看看