第三章制作打卡考勤项目
来源:互联网 发布:淘宝联盟机器人发单 编辑:程序博客网 时间:2024/05/14 13:51
[csharp] view plain copyusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GenericDemo { public class SE { public string ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Gender { get; set; } } } [csharp] view plain copyusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GenericDemo { public class Records { public DateTime SignInTime { get; set; } public DateTime SignOutTime { get; set; } public string ID { get; set; } public string Name { get; set; } } } [csharp] view plain copyusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace GenericDemo { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } //窗体的跳转 private void toolStripButton1_Click(object sender, EventArgs e) { FrmMaintance frm = new FrmMaintance(); frm.MaintanceType = 1; frm.FrmParent = this; frm.Show(); } //创建员工信息集合 public List<SE> programmerList = new List<SE>(); //显示数据 public void BindGrid(List<SE> list) { this.dvgprogrammer.DataSource = new BindingList<SE>(list); } private void btnSee_Click(object sender, EventArgs e) { IndexOf(); } //模糊查询 public string IndexOf() { List<SE> tempList = new List<SE>(); foreach (SE item in this.programmerList) { if (item.ID.IndexOf(this.txtID.Text.Trim()) != -1) { tempList.Add(item); } } //刷新 this.dvgprogrammer.DataSource = new BindingList<SE>(tempList); return null; } //删除信息 private void toolStripButton3_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("要删除员工信息吗?","输入提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question); // MessageBox.Show(result.ToString()); OK if (result == DialogResult.OK) { foreach (SE item in programmerList) { //选中整行时返回的值与员工ID相同时,删除所选中的 if (this.dvgprogrammer.SelectedRows[0].Cells[0].Value.ToString() == item.ID) { this.programmerList.Remove(item); break; } } //刷新窗体 this.dvgprogrammer.DataSource = new BindingList<SE>(programmerList); } } //打卡记录的Dictionary public Dictionary<string, Records> recordList = new Dictionary<string, Records>(); //签到操作 private void tsmiSignIn_Click(object sender, EventArgs e) { //验证是否有选中的行 if (this.dvgprogrammer.SelectedRows.Count != 1) { MessageBox.Show("请选中一行!"); return; } //确保没有签到过 string workNo = dvgprogrammer.CurrentRow.Cells["workNo"].Value.ToString(); MessageBox.Show(workNo); foreach (string id in recordList.Keys) { if (workNo == id) { MessageBox.Show("您已经签到过了!"); return; } } //签到 Records record = new Records(); record.ID = workNo; record.Name = this.dvgprogrammer.CurrentRow.Cells["name"].Value.ToString(); record.SignInTime = DateTime.Now; //添加签到信息到记录中 this.recordList.Add(record.ID, record); MessageBox.Show("签到成功!"); } //签退操作 private void tsmiSignOut_Click(object sender, EventArgs e) { //验证是否有选中的行 if (this.dvgprogrammer.SelectedRows.Count != 1) { MessageBox.Show("请选中一行!"); return; } string ID = dvgprogrammer.CurrentRow.Cells["workNo"].Value.ToString(); //标识是否已签到过 bool isOut = false; //遍历key,与ID对比,若相等可以签退,反之不行. foreach (string key in recordList.Keys) { if (key == ID) { //签退时间 this.recordList[key].SignOutTime = DateTime.Now; MessageBox.Show("签退成功!"); isOut = true; break; } } if (!isOut) { MessageBox.Show("很抱歉,请签到!"); } } private void toolStripButton4_Click(object sender, EventArgs e) { FrmRecords frms = new FrmRecords(); frms.recordList = this.recordList; frms.Show(); } } } [csharp] view plain copyusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace GenericDemo { public partial class FrmMaintance : Form { public FrmMain FrmParent { get; set; } public FrmMaintance() { InitializeComponent(); //加载窗体时下拉框中为"男" this.cmbGender.SelectedIndex = 0; } public int MaintanceType; private void FrmUpdate_Load(object sender, EventArgs e) { } private void btnOK_Click(object sender, EventArgs e) { try { //插入数据 SE se = new SE(); se.ID = this.txtId.Text.Trim(); se.Name = this.txtName.Text.Trim(); se.Age = Int32.Parse(this.txtAge.Text.Trim()); if (this.cmbGender.SelectedItem.ToString() == "男") { se.Gender = "男"; } else { se.Gender = "女"; } //工号验证 if (FrmParent.programmerList.Equals(se.ID)) { MessageBox.Show("此工号存在!"); return; } //将数据添加FrmMain窗体中的programmerList里 FrmParent.programmerList.Add(se); MessageBox.Show("是否添加员工信息", "输入提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); //添加成功,关闭窗体 this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { //刷新FrmMain窗体 this.FrmParent.BindGrid(FrmParent.programmerList); } } } } [csharp] view plain copyusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace GenericDemo { public partial class FrmRecords : Form { //打卡记录 public Dictionary<string, Records> recordList { get; set; } public FrmRecords() { InitializeComponent(); } private void FrmRecords_Load(object sender, EventArgs e) { BindingSource bs = new BindingSource(); bs.DataSource = recordList.Values; this.dvgRecords.DataSource = bs; Rows(); } public void Rows() { int row = this.dvgRecords.RowCount; this.lbRecord.Text = "共有" + row + "条打卡记录"; } } }
0 0
- 第三章制作打卡考勤项目
- 第三章 员工打卡
- WIFI 考勤打卡 浅析
- 第三章 员工考勤信息管理
- 第三章的员工打卡
- 第三章 上机 员工打卡
- 考勤信息(员工打卡)
- 移动警务考勤打卡组合定位实现
- 公司自动打卡与考勤作弊
- [济南考勤机专题]考勤机类型(五)打卡考勤机
- 深入.NET平台和C#语言 第三章员工打卡
- 学习OpenCV第三章课后题(打卡)
- 考勤项目(gui)
- easyui 考勤项目
- 模仿万年历,制作的考勤功能
- 深入.NET平台和c#理解------第三章上机题员工打卡
- 考勤
- 考勤
- LightOJ1422-Halloween Costumes(区间DP)
- Activity的生命周期和启动模式
- File类
- 微信小程序指南总结
- php 自带过滤和转义函数
- 第三章制作打卡考勤项目
- MySQL中DATETIME、DATE和TIMESTAMP的区别
- pip install命名行cmd代理设置
- LeetCode-168. Excel Sheet Column Title
- 互联网开放医疗之西医
- CentOS系统生产系统优化脚本
- mongodb实现远程连接
- mysql数据库基础回顾
- 283. Move Zeroes