private void btnThem_Click(object sender, EventArgs e)
        {
            //1. lấy dữ liệu từ form
            dtpThang.Update();
            currMonth = dtpThang.Value;
            //-----------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;
            }

            // lấy ngày check
            List <DateTime> DSNgayCheck = LayNgayCheck(checklistNgay);

            // lấy loại vắng
            DataRowView row = cbLoaiVang.SelectedItem as DataRowView;

            bool kqThaotac = XL.KhaiBaoNgayVangChoNV(arrDSNVCheck, DSNgayCheck, row);

            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_Click(btnLietKe, null);
        }