public class Fm{//员工类public string Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Gender { get; set; }}
public class SI{//打卡类public string Name { get; set; }public DateTime Begin { get; set; }public DateTime End { get; set; }}
public partial class Yg : Form{public Yg(){InitializeComponent();}public static Qd qd;//初始化员工信息public static List<Fm> fm = new List<Fm>{new Fm{Id="20090101", Name="王小毛",Age=19,Gender="男"},new Fm{Id="20090102", Name="周新宇",Age=19,Gender="男"}};//保存打卡记录的集合public static List<SI> si = new List<SI>();private void Form1_Load(object sender, EventArgs e){//绑定dgvlistdgv1.DataSource = fm;}public void info(){//更新dgvlist的数据源dgv1.DataSource = new BindingList<Fm>(fm);}private void toolStripButton1_Click(object sender, EventArgs e){//打开新增员工的窗体)Wh frm = new Wh();frm.ygxx = this;frm.Show();}private void button1_Click(object sender, EventArgs e){//模糊查询的方法List<Fm> fm=new List<Fm>();foreach (Fm item in Yg.fm){if (item.Id.IndexOf(txt1.Text.Trim()) >= 0){fm.Add(item);}}dgv1.DataSource = new BindingList<Fm>(fm);}private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e){}private void toolStripButton3_Click(object sender, EventArgs e){//删除的方法if (dgv1.SelectedRows.Count > 0){DialogResult dr = MessageBox.Show("确认要删除" + dgv1.SelectedRows[0].Cells[1].Value + "吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);if (dr == DialogResult.Yes){for (int i = 0; i < fm.Count; i++){if (dgv1.SelectedRows[0].Cells[0].Value.ToString() == fm[i].Id){fm.RemoveAt(i);dgv1.DataSource = new BindingList<Fm>(fm);}}}}}private void 签到ToolStripMenuItem_Click(object sender, EventArgs e){//签到if (dgv1.SelectedRows.Count > 0){int s = 0;foreach (SI item in si){if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString()){s++;}}if (s == 0){SI sione = new SI();sione.Name = dgv1.SelectedRows[0].Cells[1].Value.ToString();sione.Begin = DateTime.Now;si.Add(sione);if (qd != null){Qd.cishu = si.Count;qd.info();}}else{MessageBox.Show("您已经签到过了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}}private void 签退ToolStripMenuItem_Click(object sender, EventArgs e){//签退if (dgv1.SelectedRows.Count > 0){SI s = null;int count = 0;foreach (SI item in si){if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString() && item.End == Convert.ToDateTime("0001-1-1")){s = item;}if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString()){count++;}}if (s !=null){for (int i = 0; i < si.Count; i++){if (si[i] == s){si[i].End = DateTime.Now;if (qd != null){Qd.cishu = si.Count;qd.info();}}}}else if (count <= 0&&s==null){MessageBox.Show("您还未签到", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}else{MessageBox.Show("您已经签退过了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}}private void toolStripButton4_Click(object sender, EventArgs e){//打开打卡记录Qd from = new Qd();Qd.cishu = si.Count;from.Show();}private void toolStripButton2_Click(object sender, EventArgs e){//打开修改员工记录的窗体Wh from = new Wh();from.Text = "修改员工信息";from.ygxx = this;from.sid = dgv1.SelectedRows[0].Cells[0].Value.ToString();from.Show();}}
private void button1_Click(object sender, EventArgs e){//进入新增员工的方法if (this.Text == "员工信息维护"){int error = 0;//查看有没有该员工idforeach (Fm item in Yg.fm){if (txt1.Text == item.Id){error++;}}if (txt1.Text != null && txt2.Text != null && txt3.Text != null && cnb1.Text != null && error == 0){Fm fm = new Fm();fm.Id = txt1.Text;fm.Name = txt2.Text;fm.Age = Convert.ToInt32(txt3.Text);fm.Gender = cnb1.Text;Yg.fm.Add(fm);ygxx.info();MessageBox.Show("添加成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}else if (error != 0){MessageBox.Show("员工号已存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}else{MessageBox.Show("请完善员工信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}//进入修改方法else{for (int i = 0; i < Yg.fm.Count; i++){if (Yg.fm[i].Id == sid){Yg.fm[i].Id = txt1.Text;Yg.fm[i].Name = txt2.Text;Yg.fm[i].Age = Convert.ToInt32(txt3.Text);Yg.fm[i].Gender = cnb1.Text;ygxx.info();MessageBox.Show("修改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}}}private void groupBox1_Enter(object sender, EventArgs e){}//进入修改方法时传入要修改的员工信息private void Wh_Load(object sender, EventArgs e){foreach (Fm item in Yg.fm){if (item.Id == sid){txt1.Text = item.Id;txt2.Text = item.Name;txt3.Text = item.Age.ToString();cnb1.Text = item.Gender;}}}}
public partial class Qd : Form{public Qd(){InitializeComponent();}public static int cishu;private void qd_Load(object sender, EventArgs e){Yg.qd = this;info();}//显示共有多少条记录public void info(){BindingSource bs = new BindingSource();bs.DataSource = Yg.si;dataGridView1.DataSource = bs;this.label1.Text = "共有" + cishu + "条记录";}private void label1_Click(object sender, EventArgs e){}}