public frmBangChamCong(Control sender, List <clsPhongBan_DTO> lsPhongBan, ucTienLuong ucTL) { InitializeComponent(); clsKyHieuChamCong_BUS BUSKH = new clsKyHieuChamCong_BUS(); clsKyHieuChamCong_BUS BUKH = new clsKyHieuChamCong_BUS(); BUSPB = new clsPhongBan_BUS(); // Lấy tất cả các phòng ban để hiển thị tên phòng bang ở sự kiện dgvBangChamCong_CellFormatting lsPhongBan2 = BUSPB.LayDanhSachPhongBan(); this.lsPhongBan = lsPhongBan; frm_PhongBan = sender as frmPhongBan; this.ucTL = ucTL; int DayInMonth = DateTime.DaysInMonth(ucTL.Nam, ucTL.Thang); // Trả về tháng đó có bao nhiêu ngày for (var i = 1; i <= DayInMonth; i++) { var col = "col" + i; dgvBangChamCong.Columns[col].Visible = true; DataGridViewComboBoxColumn dgvcbo = (DataGridViewComboBoxColumn)dgvBangChamCong.Columns[col]; dgvcbo.DataSource = BUSKH.LayDanhSachKyHieu(); dgvcbo.DisplayMember = "KYHIEU"; dgvcbo.ValueMember = "KYHIEU"; } }
// Sử dụng Autocomplete cho DatagriviewTextboxColumn. Dành cho khi ký hiệu chấm công có từ 2 ký hiệu trở lên public void addItems(AutoCompleteStringCollection col) { clsKyHieuChamCong_BUS BUSKH = new clsKyHieuChamCong_BUS(); List <clsKyHieuChamCong_DTO> lsKH = BUSKH.LayDanhSachKyHieu(); for (int i = 0; i < lsKH.Count; i++) { col.Add(lsKH[i].KyHieu); } }
private void dgvBangChamCong_CellEndEdit(object sender, DataGridViewCellEventArgs e) { try { DataGridViewRow r = dgvBangChamCong.CurrentRow; r.Cells[e.ColumnIndex].Value = r.Cells[e.ColumnIndex].Value.ToString().ToUpper(); string KyHieu = r.Cells[e.ColumnIndex].Value.ToString(); clsKyHieuChamCong_BUS BUSKH = new clsKyHieuChamCong_BUS(); List <clsKyHieuChamCong_DTO> lsKH = new List <clsKyHieuChamCong_DTO>(); lsKH = BUSKH.LayDanhSachKyHieu(); bool Flag = false; // Ký hiệu chấm công sai int Ngay = Convert.ToInt32(dgvBangChamCong.Columns[e.ColumnIndex].Name.ToString().Replace("col", "")); DateTime dt = new DateTime(ucTL.Nam, ucTL.Thang, Ngay); if (dt.DayOfWeek != 0) { for (int i = 0; i < lsKH.Count; i++) { if (lsKH[i].KyHieu == "CN") { lsKH.RemoveAt(i); //Xóa ký hiệu CN ở những ngày thường break; } } } foreach (clsKyHieuChamCong_DTO KH in lsKH) { if (KyHieu == KH.KyHieu) { Flag = true; // Ký hiệu chấm công vừa nhập là phù hợp } } //if (Flag == false) //{ // // Cho phép số và dấu chấm (Số lẻ) // Regex invalidCharsRegex = new Regex(@"(?<=^| )\d+(\.\d+)?(?=$| )|(?<=^| )\.\d+(?=$| )"); // if (invalidCharsRegex.IsMatch(KyHieu)) // { // if (Convert.ToDouble(KyHieu) <= 24) //Thời gian làm phải nhỏ hơn hoặc bằng 24 tiếng // { // Flag = true; // } // } //} if (Flag == false) //Ký hiệu chấm công sai { r.Cells[e.ColumnIndex].Value = null; r.Cells[e.ColumnIndex].Style.BackColor = Color.Green; } btnLuu.Enabled = true; } catch { } }