private void LayDanhSachHV() { gv.OptionsView.NewItemRowPosition = NewItemRowPosition.None; //Ghi chú: K: không thi, V: vắng fromShow frm = new fromShow(); frm.Text = "Chọn lớp để quản lý"; if (frm.ShowDialog() != DialogResult.OK) { gv.OptionsBehavior.Editable = false; } gv.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(gv_CellValueChanged); if ((frm.blDauVao == false && frm.MaLop == "") || (frm.blDauVao == true && frm.MaNLop == "")) { return; } dtMonThi = frm.dtMonThi; string sIndex = "''"; // Hiển thị môn thi của lớp foreach (DataRow dr in dtMonThi.Rows) { sIndex += ",'" + dr["MaMT"].ToString() + "'"; } // Danh sách các môn không thi string sCDT = string.Format(@" SELECT MaMT FROM DMMonThi WHERE MaMT NOT IN ({0})" , sIndex); DataTable dtIndex = db.GetDataTable(sCDT); // Xếp loại học lực string sXepLoai = string.Format(@"SELECT XepLoai,TuDiem,DenDiem FROM DMXepLoai WHERE XepLoai NOT IN (N'Xuất sắc') ORDER BY TuDiem"); dtXepLoai = db.GetDataTable(sXepLoai); // Ẩn cột điểm không thi foreach (DataRow drRow in dtIndex.Rows) { gv.Columns[drRow["MaMT"].ToString()].Visible = false; } if (frm.blDauVao) { // Thi đầu vào DateTime TuNgay = frm.pTuNgay, DenNgay = frm.pDenNgay; DataTable dt = (gv.DataSource as BindingSource).DataSource as DataTable; if (dt == null) { return; } DataTable dtSrc = dt.Clone(); DataRow[] drs = dt.Select(string.Format(" NgayThi >= '{0}' AND NgayThi <= '{1}' ", TuNgay, DenNgay)); //BinaryOperator op1 = new BinaryOperator("MaNLop", frm.MaNLop, BinaryOperatorType.Equal); //BinaryOperator op2 = new BinaryOperator("KyThiID", frm.KyThi, BinaryOperatorType.Equal); //BinaryOperator op3 = new BinaryOperator("NgayThi", TuNgay, BinaryOperatorType.GreaterOrEqual); //BinaryOperator op4 = new BinaryOperator("NgayThi", DenNgay, BinaryOperatorType.LessOrEqual); //GroupOperator op = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { op1, op2, op4 }); //gv.ActiveFilterString = op.ToString(); // Filter string lọc theo display member gv.ActiveFilterString = string.Format(@" MaNLop = '{0}' AND KyThiID = '{1}' ", frm.MaNLop, frm.KyThi, DenNgay); if (frm.dtHocVien == null) { return; } foreach (DataRow row in frm.dtHocVien.Rows) { gv.AddNewRow(); gv.SetFocusedRowCellValue(gv.Columns["MaNLop"], frm.MaNLop); gv.SetFocusedRowCellValue(gv.Columns["KyThiID"], frm.KyThiID); gv.SetFocusedRowCellValue(gv.Columns["HVTVID"], row["HVTVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["TenHV"], row["TenHV"].ToString()); gv.UpdateCurrentRow(); } } else { // Các kỳ thi khác gv.ActiveFilterString = string.Format(" MaLop = '{0}' AND KyThiID = '{1}' ", frm.MaLop, frm.KyThi); if (gv.DataRowCount == 0) { if (frm.dtHocVien == null) { return; } foreach (DataRow row in frm.dtHocVien.Rows) { gv.AddNewRow(); gv.SetFocusedRowCellValue(gv.Columns["MaLop"], frm.MaLop); gv.SetFocusedRowCellValue(gv.Columns["MaNLop"], frm.MaNLop); gv.SetFocusedRowCellValue(gv.Columns["KyThiID"], frm.KyThiID); //if (frm.NgayThi!=DateTime.MinValue) // gv.SetFocusedRowCellValue(gv.Columns["NgayThi"], frm.NgayThi); //else // gv.SetFocusedRowCellValue(gv.Columns["NgayThi"], DBNull.Value); gv.SetFocusedRowCellValue(gv.Columns["NgayThi"], row["NgayThi"] != DBNull.Value ? row["NgayThi"] : DBNull.Value); gv.SetFocusedRowCellValue(gv.Columns["HVID"], row["HVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["HVTVID"], row["HVTVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["TenHV"], row["TenHV"].ToString()); gv.UpdateCurrentRow(); } } } gv.BestFitColumns(); }
private void LayDanhSachHV() { gv.OptionsView.NewItemRowPosition = NewItemRowPosition.None; //Ghi chú: K: không thi, V: vắng fromShow frm = new fromShow(); frm.Text = "Chọn lớp để quản lý"; if (frm.ShowDialog() != DialogResult.OK) { gv.OptionsBehavior.Editable = false; } gv.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(gv_CellValueChanged); if ((frm.blDauVao == false && frm.MaLop == "") || (frm.blDauVao == true && frm.MaNLop == "")) { return; } dtMonThi = frm.dtMonThi; string sIndex = "''"; // Hiển thị môn thi của lớp foreach (DataRow dr in dtMonThi.Rows) { sIndex += ",'" + dr["MaMT"].ToString() + "'"; } // Danh sách các môn không thi string sCDT = string.Format(@"SELECT MaMT FROM DMMonThi WHERE MaMT NOT IN ({0})", sIndex); using (DataTable dtIndex = db.GetDataTable(sCDT)) { // Ẩn cột điểm không thi foreach (DataRow drRow in dtIndex.Rows) { gv.Columns[drRow["MaMT"].ToString()].Visible = false; } } // Xếp loại học lực string sXepLoai = string.Format(@"SELECT XepLoai,TuDiem,DenDiem FROM DMXepLoai WHERE XepLoai NOT IN (N'Xuất sắc') ORDER BY TuDiem"); dtXepLoai = db.GetDataTable(sXepLoai); if (frm.blDauVao) { // Thi đầu vào DateTime TuNgay = frm.pTuNgay, DenNgay = frm.pDenNgay; DataTable dt = (gv.DataSource as BindingSource).DataSource as DataTable; if (dt == null) { return; } DataTable dtSrc = dt.Clone(); DataRow[] drs = dt.Select(string.Format(" NgayThi >= '{0}' AND NgayThi <= '{1}' ", TuNgay, DenNgay)); // Filter string lọc theo display member gv.ActiveFilterString = string.Format(@" MaNLop = '{0}' AND KyThiID = '{1}' ", frm.MaNLop, frm.KyThi, DenNgay); if (frm.dtHocVien == null) { return; } foreach (DataRow row in frm.dtHocVien.Rows) { gv.AddNewRow(); gv.SetFocusedRowCellValue(gv.Columns["MaNLop"], frm.MaNLop); gv.SetFocusedRowCellValue(gv.Columns["KyThiID"], frm.KyThiID); gv.SetFocusedRowCellValue(gv.Columns["HVTVID"], row["HVTVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["TenHV"], row["TenHV"].ToString()); gv.UpdateCurrentRow(); } } else { // Các kỳ thi khác gv.ActiveFilterString = string.Format(" MaLop = '{0}' AND KyThiID = '{1}' ", frm.MaLop, frm.KyThi); if (gv.DataRowCount == 0) { if (frm.dtHocVien == null) { return; } foreach (DataRow row in frm.dtHocVien.Rows) { gv.AddNewRow(); gv.SetFocusedRowCellValue(gv.Columns["MaLop"], frm.MaLop); gv.SetFocusedRowCellValue(gv.Columns["MaNLop"], frm.MaNLop); gv.SetFocusedRowCellValue(gv.Columns["KyThiID"], frm.KyThiID); gv.SetFocusedRowCellValue(gv.Columns["NgayThi"], row["NgayThi"]); gv.SetFocusedRowCellValue(gv.Columns["HVID"], row["HVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["HVTVID"], row["HVTVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["TenHV"], row["TenHV"].ToString()); gv.UpdateCurrentRow(); } } else { // Fix TH dữ liệu lên không đủ hoặc bị xóa trong khi nhập liệu string _sqlFix = @"SELECT MaLop, HVID, HVTVID, TenHV, '{2}' as NgayThi FROM MTDK mt WHERE MaLop = '{0}' and isNghiHoc ='0' and isBL = '0' AND HVID NOT IN (SELECT HVID FROM DMKQ WHERE MaLop = '{0}' AND KyThiID = '{1}')" ; using (DataTable dtFix = db.GetDataTable(string.Format(_sqlFix, frm.MaLop, frm.KyThiID, frm.NgayThi))) { foreach (DataRow row in dtFix.Rows) { gv.AddNewRow(); gv.SetFocusedRowCellValue(gv.Columns["MaLop"], frm.MaLop); gv.SetFocusedRowCellValue(gv.Columns["MaNLop"], frm.MaNLop); gv.SetFocusedRowCellValue(gv.Columns["KyThiID"], frm.KyThiID); gv.SetFocusedRowCellValue(gv.Columns["NgayThi"], row["NgayThi"]); gv.SetFocusedRowCellValue(gv.Columns["HVID"], row["HVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["HVTVID"], row["HVTVID"].ToString()); gv.SetFocusedRowCellValue(gv.Columns["TenHV"], row["TenHV"].ToString()); gv.UpdateCurrentRow(); } } } } gv.BestFitColumns(); }