• 一霎清明雨,实现考勤管理。


    1.首先是添加员工信息:

    
    
            public int type;
            //保存父窗体的引用
            public FrmMain FrmParent { get; set; }
    
            //
            public FrmAdd()
            {
                InitializeComponent();
    
                this.cboSex.SelectedIndex = 0;
         }
    2.写在保存按钮里去:

    try
    { //创建SE的对象 SE se = new SE(); se.ID = this.txtid.Text.Trim(); se.Age = Int32.Parse(this.txtAge.Text.Trim()); se.Name = this.txtName.Text.Trim();//姓名 if (this.cboSex.SelectedItem.ToString() == "") { se.Gender = Gender.男.ToString(); } else { se.Gender = Gender.女.ToString(); } //循环打印 foreach (SE item in FrmParent.AddList) { if (item.ID == se.ID) { MessageBox.Show("此工号已经存在!"); return; } } //添加泛型集合里 FrmParent.AddList.Add(se); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { //刷新列表 this.FrmParent.BindGrid(FrmParent.AddList); }
    理解:

    主窗口


      public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }
            public Dictionary<string, Record> dic = new Dictionary<string, Record>();
            //泛型集合
            public List<SE> AddList = new List<SE>();
            //刷新DataGridView数据
            public void BindGrid(List<SE> list)
            {
                this.divList.DataSource = new BindingList<SE>(list);
                
            }
            //主窗口
            private void FrmMain_Load(object sender, EventArgs e)
            {
               
            }
            //新增
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                FrmAdd fm = new FrmAdd();
                fm.type = 1;
                fm.FrmParent = this;
                fm.ShowDialog();
            }
            //查看
            private void btnLook_Click(object sender, EventArgs e)
            {
                List<SE> tempList = new List<SE>();//用于临时列表保存查询到的信息
                foreach (SE item in this.AddList)
                {
                    //如果泛型集合的SE下标不等于-1
                    if (item.ID.IndexOf(this.txtId.Text.Trim()) !=-1)
                    {
                        tempList.Add(item);
                    }
                }
                this.divList.DataSource = new BindingList<SE>(tempList);
    
            }
            //删除
            private void toolStripButton3_Click(object sender, EventArgs e)
            {
                DialogResult = MessageBox.Show("是否确定删除?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                if (DialogResult ==DialogResult.Yes)
                {
                    //通过索引访问
                    List<SE> tempList = new List<SE>();
                    foreach (SE item in this.AddList)
                    {
                        tempList.Remove(item);
                    }
                    this.divList.DataSource = new BindingList<SE>(tempList);
                }
            }
            //修改
            private void toolStripButton2_Click(object sender, EventArgs e)
            {
    
            }
          
    
            private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //判断是否选中一行
                if (this.divList.SelectedRows.Count != 1)
                {
                    MessageBox.Show("请选中一行!");
                    return;
                }
                string workNo = divList.CurrentRow.Cells[0].Value.ToString();
                //遍历Key值
                foreach (string item in dic.Keys)
                {
                    if (workNo == item)
                    {
                        MessageBox.Show("您已经签到过!");
                        return;
                    }
                }
                Record record = new Record();
    
                record.ID = workNo;//id号
    
                record.Name = divList.CurrentRow.Cells[1].Value.ToString();//获取选中的姓名
                record.SignInTime = DateTime.Now;//当前的时间
                this.dic.Add(record.ID,record);//添加到记录里
                MessageBox.Show("签到成功!");
    
            }
    
            private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (this.divList.SelectedRows.Count !=1)
                {
                    MessageBox.Show("请选择一行!");
                    return;
                }
                string ID = divList.CurrentRow.Cells[0].Value.ToString();
                bool isOut = false;//标识是否已经签到过
                foreach (string item in dic.Keys)
                {
                    if (item == ID)
                    {
                        this.dic[item].SignOutTime = DateTime.Now;
                        MessageBox.Show("签退成功!");
                        isOut = true;
                        break;
                    }
                }
    
    
                if (!isOut)
                {
                    MessageBox.Show("很抱歉,尚未签到!");
                }
            }
    
            private void toolStripButton4_Click(object sender, EventArgs e)
            {
                Frmclock fm = new Frmclock();
                fm.FrmParent = this;
                fm.ShowDialog();
            }
        }
    
    

            public Frmclock()
            {
                InitializeComponent();
            }
            //保存父级
            public FrmMain FrmParent { get; set; }    
    
            public void show()
            {
                BindingSource bs = new BindingSource();
                bs.DataSource = FrmParent.dic.Values;
                this.dataGridView1.DataSource = bs;
            }
            private void Frmclock_Load(object sender, EventArgs e)
            {
                show();
            }
    
    
    
     
  • 相关阅读:
    我的第二个思维导图,用来介绍框架
    如何减少基于DataSet框架的代码输入量(一)
    近日
    关于客户端如何获取服务器时间的方法
    匹配用逗号分隔的数字(防sql注入检查)
    十六进制字符串转整形
    sql获取自增行号
    body不出现滚动条方法
    vs2010 无法调试 无法进入断点 断点无效
    Textarea 高度自适应 根据内容自适应高度
  • 原文地址:https://www.cnblogs.com/www-yang-com/p/8723440.html
Copyright © 2020-2023  润新知