员工打卡....

员工打卡

namespace 员工信息维护
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}

//列表,用于保存 SE 对象
public List<SE> programmerList = new List<SE>();
//刷新DataGrindView数据
public void BindGrid(List<SE> list)
{
this.dataGridView1.DataSource = new BindingList<SE>(list);
}

private void toolStripButton1_Click(object sender, EventArgs e)
{
frmMaintance jj = new frmMaintance();
//调用父窗体
jj.FrmParent = this;
jj.Show();
}

private void toolStripButton4_Click(object sender, EventArgs e)
{
frmRecord dk = new frmRecord();
dk.recordList = this.recordList;
dk.Show();
}

private void big_Load(object sender, EventArgs e)
{
//xianshi();
}
//查询
private void button1_Click(object sender, EventArgs e)
{
List<SE> tempList = new List<SE>();
foreach(SE item in this.programmerList){
if (item.no.IndexOf(this.textBox1.Text.Trim())!=-1) {
tempList.Add(item);
}

this.dataGridView1.DataSource = new BindingList<SE>(tempList);
}
}

private void toolStripButton3_Click(object sender, EventArgs e)
{
DialogResult re = MessageBox.Show("确认要删除该数据吗", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
if (re == DialogResult.OK)
{
foreach (SE item in this.programmerList)
{
if (dataGridView1.SelectedRows[0].Cells[0].Value==item.no)
{
programmerList.Remove(item);
break;
}

}
MessageBox.Show("删除成功");
this.dataGridView1.DataSource = new BindingList<SE>(programmerList);
}
//this.dataGridView1.DataSource = new BindingList<SE>(temp);

}
//签到

public Dictionary<string, Records> recordList = new Dictionary<string, Records>();

private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
{
//验证是否有选中的行
if (this.dataGridView1.SelectedRows.Count != 1)
{
MessageBox.Show("请选中一行!");
return;
}
//确保没有签到过
string workNo = this.dataGridView1.CurrentRow.Cells[0].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.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
record.SignInTime = DateTime.Now;
//添加签到信息到记录中
this.recordList.Add(record.ID, record);
MessageBox.Show("签到成功!");
}

private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
{

//验证是否有选中的行
if (this.dataGridView1.SelectedRows.Count != 1)
{
MessageBox.Show("请选中一行!");
return;
}
string ID = this.dataGridView1.SelectedRows[0].Cells[0].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("很抱歉,尚未签到!");
}

}

}

}

public partial class frmMaintance : Form
{
// big FrmParent = new big ();
//初始化
public frmMaintance()
{
InitializeComponent();
this.comboBox1.SelectedIndex = 0;
}

//big FimParant=new big ();
//保存父窗体的引用
public FrmMain FrmParent { get; set; }

// public static List<SE>programmerList=new List<SE>();
private void button1_Click(object sender, EventArgs e)
{
try
{

SE pp = new SE();
pp.no = this.textBox1.Text.Trim();
pp.age = Int32.Parse(this.textBox2.Text.Trim());
pp.sex = this.comboBox1.Text;
pp.name = this.textBox3.Text;
foreach (SE item in FrmParent.programmerList)
{
if (pp.no == item.no)
{
MessageBox.Show("此工号已存在");
return;
}
}
FrmParent.programmerList.Add(pp);
this.Close();

}
catch (Exception ex)
{
Console.WriteLine(ex.Message);

}
finally 
{
//刷新父窗体信息
this.FrmParent.BindGrid(FrmParent.programmerList);
}
}

private void frmMaintance_Load(object sender, EventArgs e)
{

}

}

public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}

//列表,用于保存 SE 对象
public List<SE> programmerList = new List<SE>();
//刷新DataGrindView数据
public void BindGrid(List<SE> list)
{
this.dataGridView1.DataSource = new BindingList<SE>(list);
}

private void toolStripButton1_Click(object sender, EventArgs e)
{
frmMaintance jj = new frmMaintance();
//调用父窗体
jj.FrmParent = this;
jj.Show();
}

private void toolStripButton4_Click(object sender, EventArgs e)
{
frmRecord dk = new frmRecord();
dk.recordList = this.recordList;
dk.Show();
}

private void big_Load(object sender, EventArgs e)
{
//xianshi();
}
//查询
private void button1_Click(object sender, EventArgs e)
{
List<SE> tempList = new List<SE>();
foreach(SE item in this.programmerList){
if (item.no.IndexOf(this.textBox1.Text.Trim())!=-1) {
tempList.Add(item);
}

this.dataGridView1.DataSource = new BindingList<SE>(tempList);
}
}

private void toolStripButton3_Click(object sender, EventArgs e)
{
DialogResult re = MessageBox.Show("确认要删除该数据吗", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
if (re == DialogResult.OK)
{
foreach (SE item in this.programmerList)
{
if (dataGridView1.SelectedRows[0].Cells[0].Value==item.no)
{
programmerList.Remove(item);
break;
}

}
MessageBox.Show("删除成功");
this.dataGridView1.DataSource = new BindingList<SE>(programmerList);
}
//this.dataGridView1.DataSource = new BindingList<SE>(temp);

}
//签到

public Dictionary<string, Records> recordList = new Dictionary<string, Records>();

private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
{
//验证是否有选中的行
if (this.dataGridView1.SelectedRows.Count != 1)
{
MessageBox.Show("请选中一行!");
return;
}
//确保没有签到过
string workNo = this.dataGridView1.CurrentRow.Cells[0].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.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
record.SignInTime = DateTime.Now;
//添加签到信息到记录中
this.recordList.Add(record.ID, record);
MessageBox.Show("签到成功!");
}

private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
{

//验证是否有选中的行
if (this.dataGridView1.SelectedRows.Count != 1)
{
MessageBox.Show("请选中一行!");
return;
}
string ID = this.dataGridView1.SelectedRows[0].Cells[0].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("很抱歉,尚未签到!");
}

}

}

}

public partial class frmRecord : Form
{

public Dictionary<string, Records> recordList { get; set; }
public frmRecord()
{
InitializeComponent();
}

private void DK_Load(object sender, EventArgs e)
{

BindingSource bs = new BindingSource();
bs.DataSource = recordList.Values;
this.dataGridView1.DataSource = bs;
Rows();
}

public void Rows()
{
int row = this.dataGridView1.RowCount;
this.label1.Text = "共有" + row + "条打卡记录";
}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}

}

  //员工类

public class SE
{

public string no { get; set; }
public int age { get; set; }
public string name { get; set; }
public string sex { get; set; }

  //打卡信息类

public class Records
{

public DateTime SignInTime { get; set; }
public DateTime SignOutTime { get; set; }
public string ID { get; set; }
public string Name { get; set; }

}

static class Program
{

// 应用程序的主入口点。

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());
}
}

时间: 2024-10-16 09:49:43

员工打卡....的相关文章

员工打卡系统

语言:C# 1. 分析: 图1(主页面) 根据图1可得信息 1.Windows Forms 窗体 ,控件DataGrid View (显示控件) ,菜单控件 ,Label ,button,Textbox. 2.要实现菜单控件的新增,修改,删除及打卡记录; 窗体的查看功能 图2(新增, 修改窗体) (1)新增时                                                                  (2)修改时                      

泛型集合小项目员工打卡

项目样式 需求说明:1.实现新增员工 2.使用DataGrideView空间展示员工信息 3.实现删除员工信息 4.给主窗体添加右键菜单,实现上班签到和下班签退 5.选择签到,必须检索员工打卡记录,如果已签到,提示不能再签到 6.选择签退,必须检索员工打卡记录,如果已签退,提示不能再签退 7.使用DataGrideView控件显示员工考勤记录 项目开始: 首先搭好窗体,创建员工类 SE 打卡时间类 public class SE { public int id{ get; set; } //存储

使用C# WinForm制作 员工打卡项目 -- S2 2.3

新建一个员工类,存储员工的信息 新建一个List<>集合,并在load事件中实例化三个员工对象 DataGridView绑定数据源,可以显示出数据 点击查询按钮,查询工号等同于输入的数的员工信息. 右键签到和签退,增加记录 需要使用一个Dictionary<>双列泛型集合存储打卡记录 判断员工是否已经签到过,不能重复签到,没有签到不能签退 新增员工 代码比较简单 不做详解 最后 用一个新窗体展示打卡记录 就是Dictionary<>集合中的内容 签到过就像Diction

员工打卡课后小项目

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; } pub

考勤信息(员工打卡)

实现员工的添加,查询和删除,并用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 = &qu

考勤系统(员工打卡)

实现员工的添加,查询和删除,并用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 = &qu

员工打卡 正班工时计算

ALTER   PROCEDURE [dbo].[Hr_addNote]asBEGIN    update Hr_1 set 备注 ='正常 8 H' where 上班打卡_A < CONVERT(datetime,CONVERT(char(10),日期时间,120) + ' 08:31:00',101) and 下班打卡_P > CONVERT(datetime,CONVERT(char(10),日期时间,120) + ' 18:00:00',101)and 备注 is null  and 

用手环监视员工松懈的亚马逊,做法合适吗?

从人类文明发展史来看,追求自由.民主.公平等始终是不变的主旋律.尤其是尊重每个人应有的基本权利,更成为全球达成的共识.但在实际的生活中,却似乎总有一些事情在打破着"生之为人"的底线.如果你的雇主让你戴上手环来追踪你的一举一动,甚至在判断出你做错了事情的时候,甚至用震动来警告,你会有何种感受? 就在近日,亚马逊申请的相关手环专利就获得了批准.早在2015年纽约时报揭露亚马逊毫无人情味的工作文化,让亚马逊饱受批评.不过外界的批评并没有让亚马逊收敛,反而是变本加厉.甚至从大环境来看,越来越多

公司有了智能人脸识别门禁考勤机让员工考勤更轻松

在不少的中小企业里,并没有太过于完善的考勤设备,更多的可能是由人工来统计考勤,这样难免会产生误差,事关员工们的切身利益,让我来为大家推荐一款智能人脸识别门禁考勤机,让考勤更加规范,让员工的利益真正落到实地! 考勤是衡量员工绩效的标准之一,由此考勤的登记也显得尤为重要,智能云考勤,开启人脸移动考勤时代,帮你解决所有疑难杂症.实时查看员工动态,电子审批让流程变得更加简单,支持一次录入,保证数据的安全性,让老板.人事部门都能一目了然. 智能刷脸打卡,省去冗余的过程,让工作变得更加简单.无需指纹,刷卡,