Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }