using System;
using System.Collections;
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 上机04_显示员工考勤记录
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}
/// <summary>
/// 添加打卡记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiAdd_Click(object sender, EventArgs e)
{
FrmAdd frm = new FrmAdd();
frm.Frmparent = this;
frm.Show();
}
/// <summary>
/// 创建集合
/// </summary>
ArrayList list = new ArrayList();
//列表,用于保存SE对象
public List<SE> programeerlist=new List<SE>();
/// <summary>
/// 刷新dgv数据
/// </summary>
/// <param name="list"></param>
public void BindGrid(List<SE> list)
{
this.dgvList.DataSource=new BindingList<SE>(list);
}
/// <summary>
/// 模糊查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnQuery_Click(object sender, EventArgs e)
{
MessageBox.Show("Test");
List<SE> tempList = new List<SE>(); //用临时列表保存查询到的信息
//循环遍历搜索
foreach (SE item in this.programeerlist)
{
//可以查找第一个ID
if (item.ID.IndexOf(this.txtNum.Text.Trim()) != -1)
{
tempList.Add(item); //重新添加数据
}
}
//重新绑定数据
this.dgvList.DataSource = new BindingList<SE>(tempList);
}
/// <summary>
/// 删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiDelete_Click(object sender, EventArgs e)
{
DialogResult result= MessageBox.Show("确定要删除这个信息吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
if(result== DialogResult.OK)
{
foreach (SE item in this.programeerlist)
{
if (this.dgvList.SelectedRows[0].Cells["cloNum"].Value.ToString() == item.ID)
{
programeerlist.Remove(item);
break;
}
}
BindGrid(programeerlist);
MessageBox.Show("删除成功!@");
}
}
/// <summary>
/// 泛型集合 key 是string类型 Value 是se类型
/// </summary>
private Dictionary<string, Record> recordList = new Dictionary<string, Record>();
/// <summary>
/// 打卡签到
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiSignup_Click(object sender, EventArgs e)
{
if (this.dgvList.SelectedRows.Count!=1)
{
MessageBox.Show("请选中一行!");
return;
}
//确保没有签过到
string workNo = dgvList.SelectedRows[0].Cells["cloNum"].Value.ToString();
//string类型 打卡记录的键
foreach (string item in recordList.Keys)
{
if (workNo==item)
{
MessageBox.Show("您已经签到过了!");
return;
}
}
//执行签到
Record record = new Record();
record.Name = dgvList.SelectedRows[0].Cells[1].Value.ToString();
record.ID = workNo;
record.SingInTime = DateTime.Now; //获取系统当前的时间
this.recordList.Add(record.ID,record); //添加到签到记录中
MessageBox.Show("签到成功!");
}
/// <summary>
/// 签退时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiRetreat_Click(object sender, EventArgs e)
{
if (this.dgvList.SelectedRows.Count!=1)
{
MessageBox.Show("请选中一行!");
return;
}
//获取dgv 的选中的行
string ID = dgvList.SelectedRows[0].Cells["cloNum"].Value.ToString();
bool isout = false; //标识是否已经签到过
foreach (string item in recordList.Keys)
{
if (item == ID)
{
//执行签到,设置签退时间
this.recordList[item].SingOUtTime = DateTime.Now;
MessageBox.Show("签退成功!");
isout = true;
break;
}
}
if (!isout)
{
MessageBox.Show("很抱歉!,尚未签到!");
}
}
/// <summary>
/// 打卡记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiCount_Click(object sender, EventArgs e)
{
FrmCount frmCount = new FrmCount();
frmCount.Decrods = this.recordList;
frmCount.Show();
}
}
}
using System;
using System.Collections;
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 上机04_显示员工考勤记录
{
public partial class FrmAdd : Form
{
public FrmAdd()
{
InitializeComponent();
this.cboGenger.SelectedIndex=0;
}
public FrmMain Frmparent { get; set; }
/// <summary>
/// 添加按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSave_Click(object sender, EventArgs e)
{
if(CheckInfo())
{
SE se = new SE();
se.ID = this.txtNum.Text.Trim(); //工号
se.Age = int.Parse(this.txtAge.Text.Trim().ToString()); //年龄
se.Name = this.txtName.Text.Trim(); //姓名
if (this.cboGenger.SelectedItem.ToString() == "男")
{
se.GetGender = Gender.男;
}
else
{
se.GetGender = Gender.女;
}
try
{
foreach (SE item in Frmparent.programeerlist)
{
if (item.ID == se.ID)
{
MessageBox.Show("此工号已经存在!");
return;
}
}
//添加到父类
Frmparent.programeerlist.Add(se);
this.Close();
}
catch (Exception ex)
{
MessageBox.Show("出错" + ex.Message);
}
finally
{
this.Frmparent.BindGrid(Frmparent.programeerlist);
}
}
}
private void FrmAdd_Load(object sender, EventArgs e)
{
ArrayList list = new ArrayList();
SE se = new SE();
se.GetGender = 0;
list.Add(se);
}
#region 非空验证
/// <summary>
/// 非空验证
/// </summary>
/// <returns></returns>
public bool CheckInfo()
{
if (this.txtName.Text == "")
{
MessageBox.Show("请输入姓名");
return false;
}
else if (this.txtAge.Text == "")
{
MessageBox.Show("请输入年龄");
return false;
}
else if (this.txtNum.Text == "")
{
MessageBox.Show("请输入员工工号");
return false;
}
return true;
}
#endregion
}
}
using 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 上机04_显示员工考勤记录
{
public partial class FrmCount : Form
{
public FrmCount()
{
InitializeComponent();
}
//Dictionary
public Dictionary<string,Record> Decrods { get; set; }
private void FrmCount_Load(object sender, EventArgs e)
{
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = Decrods.Values;
this.dgvList.DataSource = bindingSource;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 上机04_显示员工考勤记录
{
public class SE
{
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编号
/// </summary>
public string ID { get; set; }
/// <summary>
/// 性别
/// </summary>
public Gender GetGender { get; set; }
}
public enum Gender
{
男,女
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 上机04_显示员工考勤记录
{
public class Record
{
/// <summary>
/// 签到时间
/// </summary>
public DateTime SingInTime { get; set; }
/// <summary>
/// 签退时间
/// </summary>
public DateTime SingOUtTime { get; set; }
/// <summary>
/// 工号
/// </summary>
public string ID { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
}
}