• 考勤系统(员工打卡)


    实现员工的添加,查询和删除,并用dgvList显示出来

    复制代码
    1.1///先声明一个单列集合
    
      public List<SE> list = new List<SE>();
    
    1.2///初始化三个对象
    
      private void FrmMain_Load(object sender, EventArgs e)
            {
    
                    SE s1 = new SE();
                    s1.id = 20161000;
                    s1.name = "张三";
                    s1.age = 20;
                    s1.gender = "男";
    
                    SE s2 = new SE();
                    s2.id = 20161002;
                    s2.name = "李四";
                    s2.age = 18;
                    s2.gender = "男";
    
                    SE s3 = new SE();
                    s3.id = 20161004;
                    s3.name = "凤姐";
                    s3.age = 20;
                    s3.gender = "女";
    
    1.3//把数据添加到集合中并用dgvList加载出来
    
                    list.Add(s1);
                    list.Add(s2);
                    list.Add(s3);
             
               dgvList.DataSource =(list);
    
    }
    复制代码

    复制代码
    1.4   private void btn01_Click(object sender, EventArgs e)
            {
    
                ///创建临时的单列集合来存储数据
                List<SE> llist = new List<SE>();
                //遍历集合中的对象
                foreach (SE item in list)
                {
                    //判断要查询对象的工号的下标是否存在
                    if(item.Id.IndexOf(txt01.Text.Trim())!=-1)
                    {
                        llist.Add(item); //把数据加入到临时集合中
                    }
                }
                //把查询到的数据绑定到dgvList中
                dgvList.DataSource = new BindingList<SE>(llist);
    
    }
    
    1.5 private void toolStripButton3_Click(object sender, EventArgs e)
            {
    
                 ///删除前先考虑根据什么来删除数据
                ///我根据员工工号来删除  首先得到工号
                
                string id = dgvList.SelectedRows[0].Cells[0].Value.ToString();
    
                //使用for循环来查找
                for (int i = 0; i < list.Count; i++)
                {
                    //判断数据是否相等再删除
                    if(list[i].Id==id)
                    {
                        list.RemoveAt(i);
                    }
                }
                //删除后还得再重新绑定数据
                dgvList.DataSource = new BindingList<SE>(list);
    
    }
    复制代码

    复制代码
    1.6///声明一个静态的双列集合
    
      public static Dictionary<string, Record> recordList = new Dictionary<string, Record>();
    
            //单击签到
            private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //判断是否选中一行
                if(dgvList.SelectedRows.Count!=1)
                {
                    MessageBox.Show("请选中一行");
                    return;
                }
                //把选中的数据传给记录列表
                string no = dgvList.SelectedRows[0].Cells[0].Value.ToString();
                foreach (string id in recordList.Keys)
                {
                    if(no==id)
                    {
                        MessageBox.Show("您已签到过");
                        return;
                            
                    }
                }
                Record record = new Record();
                record.ID = no;
                record.Name= dgvList.SelectedRows[0].Cells[1].Value.ToString();
                record.StratTime = DateTime.Now;
                recordList.Add(record.ID,record);
                MessageBox.Show("签到成功");
            }
    复制代码

    复制代码
    1.7///单击签退
    
           private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //判断是否选中一行
                if (dgvList.SelectedRows.Count != 1)
                {
                    MessageBox.Show("请选中一行");
                    return;
                }
                //把选中的数据传给记录列表
                string no = dgvList.SelectedRows[0].Cells[0].Value.ToString();
                bool falg = false;
                //判断是否有签到记录
                foreach (string key in recordList.Keys)
                {
                    if(key==no)
                    {
                        ///执行签到
                        
                        recordList[key].EndTime = DateTime.Now;
                        MessageBox.Show("签退成功");
                        falg = true;
                        break;
                    }
                }
                if(falg==false)
                {
                    MessageBox.Show("您还没有签到");
                }
            }
    复制代码

     

    复制代码
    1.8///声明一个Record类
    
    public  class Record
        {
            public string Name { get; set; }
    
            public DateTime StratTime { get; set; }
    
            public DateTime EndTime { get; set; }
    
            public String ID { get; set; }
        }
    
    1.9///调用签到记录窗口
    
          private void toolStripButton4_Click(object sender, EventArgs e)
            {
                FrmRecord record = new FrmRecord();
                record.Show();
            }
    
    2.0///调用增加员工的窗口
    
           private void toolStripButton1_Click(object sender, EventArgs e)
            {
                FrmAdd add = new FrmAdd();
                Hide();
                add.Show();
            }
    
     
    
    2.1///添加员工
    
    private void btn01_Click(object sender, EventArgs e)
            {
                ///通过保存把数据加到集合中
                //首先创建一个对象并赋值
                SE se = new SE();
                se.Id = txt01.Text;
                se.Name = txt03.Text;
                se.Age = txt02.Text;
                se.Gender = cbo01.Text;
                foreach (SE item in FrmMain.list)
                {
                    if (item.Id == txt01.Text)
                    {
                        MessageBox.Show("此工号已存在");
                        return;
                    }
                }
    
                //把数据加到list集合中,因为集合是在主窗体中声明的需要调用
                FrmMain main = new FrmMain();
                FrmMain.list.Add(se);
                main.Show();
    
            }
    复制代码

    2.2

          

    复制代码
    private void FrmAdd_Load(object sender, EventArgs e)
            {
                //把男和女添加到下拉列表框中
                cbo01.Items.Add("男");
                //把男默认选中
                cbo01.SelectedIndex=0;
                cbo01.Items.Add("女");
            }
  • 相关阅读:
    继承
    iOS 适配暗黑模式
    【C++ STL】容器的选择
    纳税相关
    SwiftUI状态绑定:@State
    python 中各种容器可以容纳的数据类型
    open GL 在使用材质属性glMaterial设置物体颜色效果时,使用shader和使用固定管线后颜色区别
    做为一名测试工程师,你经常会用到或听到的那些工具
    推荐一款技术人必备的接口测试神器:Apifox
    测试管理工具推荐
  • 原文地址:https://www.cnblogs.com/kai123-qwe/p/6669473.html
Copyright © 2020-2023  润新知