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下标不等于-1if (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();}

 

转载于:https://www.cnblogs.com/www-yang-com/p/8723440.html

一霎清明雨,实现考勤管理。相关推荐

  1. mysql查询员工排班信息_考勤管理信息系统人员排班管理及查询

    原标题:考勤管理信息系统人员排班管理及查询 考勤管理信息系统人员排班管理及查询 考勤管理信息系统 在企业的生产实践中,为了保证生产的正常进行,常需要将员工一个月的上班情况作好规划并逐一罗列好,并记录在 ...

  2. 职工考勤管理信息系统数据库课设_职工考勤管理信息系统数据库课程设计

    职工考勤管理信息系统数据库课程设计 数据库课程设计说明书 数据库课程设计说明 题目 : 职工考勤管理信息系统 专 业 计算机科学与技术 班 级 学 号 姓 名 2011 年 10 月 21 日 1 数 ...

  3. 从考勤管理需求说起,聊聊场景的思维“工具”

    你是否有过做问题分析时,毫无头绪,生怕会遗漏什么?是否在逐条列出方案后,依然会有人提出些没想到的问题?看一下作者是如何解决的. 一 上个月,我们在做项目的考勤管理和入职流程需求沟通时,前后讨论了不下1 ...

  4. java学生考勤代码免费,基于jsp的学生考勤管理-JavaEE实现学生考勤管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学生考勤管理, 该项目可用各类java课程设计大作业中, 学生考勤管理的系统架构分为前后台两部分, 最终实现在线上 ...

  5. 工程联盟管理平台、CRM、项目管理、合同管理、合作商管理、考勤管理、成本管理、指标管理、业主管理、工时报告、招投标、开票回单、物料库、培训中心、知识库、采购管理、Axure原型、产品原型、rp原型

    工程联盟管理平台.CRM.项目管理.合同管理.合作商管理.考勤管理.成本管理.指标管理.业主管理.工时报告.招投标.开票回单.物料库.培训中心.知识库.消息中心.采购管理.财务管理.参数设置.权限.角 ...

  6. 人力资源管理系统、OA、行政管理系统、考勤管理、资产管理、车辆管理、绩效管理、员工管理、招聘、入职、离职、转正、加班、调休、企业OA系统、axure原型、rp源文件、web端后台管理原型、高保真原型

    人力资源管理系统.OA.行政管理系统.考勤管理.资产管理.车辆管理.绩效管理.员工管理.招聘.入职.离职.转正.加班.调休.企业OA系统.axure原型.rp源文件.web端后台管理原型.高保真原型 ...

  7. 基于J2EE人事考勤管理系统设计与实现(论文+项目源码) 运行环境: idea ,maven,mysql

    主要功能说明: 部门经理角色包含以下功能:个人信息管理,请假信息审批,部门考勤记录,考勤系统管理等功能. 管理员角色包含以下功能:管理员登录,员工管理,请假统计等功能. 员工角色包含以下功能:员工登录 ...

  8. 人事管理系统如何做好员工考勤管理?

    企业考勤管理的主要难题在于考勤.排班.假勤这三块,对于考勤来说,往往存在一些漏打卡.代打卡.打卡慢的情况: 对于排班,存在着多班次混排的情况,对各人员调配.设备调配.轮班作业.生产计划调整等有复杂调配 ...

  9. 创业公司考勤管理如何做到快准狠!

    考勤管理是一个公司基础的事务性工作,需要涉及到员工每日考勤情况,月末考勤统计,考勤数据关联绩效,工资发放几个相关的步骤,工作量大而繁琐.正是由于传统的考勤管理极其耗费精力,企业纷纷转向了自动化考勤,实 ...

  10. 微信小程序 —— 考勤管理Demo(前后端及数据库)

    源码地址: https://github.com/Zheng-Wenkai/WX_checkAttendanceDemo 简要介绍 这是一个微信小程序的考勤管理Demo,包括前后端及数据库等内容.如有 ...

最新文章

  1. php 魔术变量和超级全局变量,PHP超级全局变量与魔术变量
  2. 【C#】using用法
  3. 数据中台应用实战50篇(二)-中台解决方案本质在解决什么问题?
  4. Asp.Net MVC4入门指南(9):查询详细信息和删除记录
  5. wordpress后台外观没有菜单和小工具的解决方法
  6. 写给即将过去的2012
  7. 中国输卵管癌治疗行业市场供需与战略研究报告
  8. lisp弧度转度分秒_度分秒转弧度)
  9. 2022年11月份,NPDP产品经理认证即将改版,到底改哪些内容?
  10. 关于Altium Designer的BOM,元件清单
  11. win10计算机网络共享设置密码,Win10使用技巧:给共享文件夹添加密码
  12. 有效预防xss_预防XSS攻击的一些方法整理
  13. imputation-文献:False signals induced by single-cell imputation(scRNA-seq插补引入的假阳性问题)
  14. 802.11ac深度技术分析
  15. android实现歌词的自动滚动
  16. github项目推荐:少儿图形化编程启蒙游戏
  17. 毕业感想--致04软件和工贸足球队
  18. 第二台计算机,世界上第二台电脑的名称是什么
  19. 加速新基建,优锘科技的数字孪生可视化运营平台迎来最好时代
  20. Jmeter录制脚本过滤css

热门文章

  1. 解密PreAngel区块链布局:平台协议类项目占4成,多个项目蓄势待发
  2. IDEA 快捷键 Android Studio快捷键
  3. 2017c 语言程序设计,C语言程序设计第一次作业(2017.10.10完成)
  4. threadlocal使用_Java多线程数据共享神器ThreadLocal
  5. 矩阵相乘取共轭_正交矩阵学习小结
  6. java中如何获得屏幕的宽度和高度_在Android中获取屏幕宽度和高度
  7. 2020年数学与计算机科学奖获得者,2020 数学与计算机科学奖 获奖人 —— 彭实戈 - 未来科学大奖...
  8. oracle日期格式更新_oracle 日期格式
  9. jquery清空div内容_jQuery常用功能
  10. 基于空间数据库的空间数据管理