private void btnThem_Click(object sender, EventArgs e) { //1. lấy dữ liệu từ form dtpThang.Update(); NgayKhaiBao = dtpThang.Value.Date; //-----------BUG [KHÔNG PHẢI BUG] CHỈ TÔ MÀU ĐỂ CHÚ Ý] bắt buộc EndEdit thao tác trên Grid rồi mới thực hiện xử lý tác vụ dgrdDSNVTrgPhg.EndEdit(); dgrdDSNVTrgPhg.Update(); //2. lấy danh sách nhân viên check object[,] arrDSNVCheck = new object[dgrdDSNVTrgPhg.Rows.Count + 1, 2]; LayDSMaCC_MaNV_Checked(dgrdDSNVTrgPhg.DataSource as DataTable, arrDSNVCheck); if ((int)arrDSNVCheck[0, 0] == 0) { AutoClosingMessageBox.Show("Chưa chọn Nhân viên", "Thông báo", 2000); return; } Single hesoPC = 1f; // tính phụ cấp thêm 100% công : tổng cộng 1 công , 100%phụ cấp // lấy công bool kqThaotac = XL.KhaiBaoLVNgayNghiChoNV(arrDSNVCheck, NgayKhaiBao, hesoPC); if (kqThaotac == false) { MessageBox.Show("Có lỗi trong quá trình thực hiện. Vui lòng kiểm tra lại dữ liệu.", "Lỗi"); } // sau khi thao tác xong thì liệt kê lại btnLietKe.PerformClick(); }