private void btnInBangDiem_Click(object sender, EventArgs e) { if (grvLichSu.FocusedRowHandle < 0) { ThongBao("Bạn chưa chọn lần nhập lại điểm nào !"); return; } // Lấy danh sách sinh viên dtSinhVien = CreateTable(); AddBand(); XuLyTable((int)grvLichSu.GetDataRow(grvLichSu.FocusedRowHandle)["KQHT_ChoNhapLaiDiemID"]); if (dtSinhVien.Rows.Count <= 0) { ThongBao("Không có dữ liệu để in báo cáo !"); return; } DataTable dtMain = oBKQHT_DiemThanhPhan.CreateTableReportMain(); DataRow dr = dtMain.NewRow(); dr["TenMonHoc"] = drMonHoc["TenMonHoc"]; dr["TenLop"] = pDM_LopInfo.TenLop.Replace("Lớp: ", ""); dr["HocKy"] = Program.HocKy; dr["NamHoc"] = Program.NamHoc; dr["SoTiet"] = drMonHoc["SoTiet"]; #region Tổng hợp Xếp loại // Đưa dữ liệu phần tỷ lệ kết quả học tập DataTable dtXepLoai; cBKQHT_XepLoaiMonHoc oBKQHT_XepLoaiMonHoc = new cBKQHT_XepLoaiMonHoc(); KQHT_XepLoaiMonHocInfo pKQHT_XepLoaiMonHocInfo = new KQHT_XepLoaiMonHocInfo(); int SoSinhVien; dtXepLoai = oBKQHT_XepLoaiMonHoc.Get(pKQHT_XepLoaiMonHocInfo); //dr = dtMain.NewRow(); SoSinhVien = dtSinhVien.Rows.Count; // Tỷ lệ giỏi string Condition = ""; int SoLuong = 0; DataRow[] ArrDr = dtXepLoai.Select("MaXepLoai = 'G'"); if (ArrDr.Length > 0) { Condition = "IDKQHT_XepLoai_1 = " + ArrDr[0]["KQHT_XepLoaiMonHocID"]; //foreach (DataRow drXL in ArrDr) //{ // Condition += (Condition == "" ? "" : " OR ") + "IDKQHT_XepLoai_1 = " + drXL["KQHT_XepLoaiMonHocID"]; //} SoLuong = int.Parse(dtSinhVien.Compute("Count(SV_SinhVienID)", Condition).ToString()); dr["LoaiGioi"] = TinhPhanTram(SoLuong, SoSinhVien); } // Tỷ lệ khá ArrDr = dtXepLoai.Select("MaXepLoai = 'K'"); if (ArrDr.Length > 0) { Condition = "IDKQHT_XepLoai_1 = " + ArrDr[0]["KQHT_XepLoaiMonHocID"]; //foreach (DataRow drXL in ArrDr) //{ // Condition += (Condition == "" ? "" : " OR ") + "IDKQHT_XepLoai_1 = " + drXL["KQHT_XepLoaiMonHocID"]; //} SoLuong = int.Parse(dtSinhVien.Compute("Count(SV_SinhVienID)", Condition).ToString()); dr["LoaiKha"] = TinhPhanTram(SoLuong, SoSinhVien); } // Tỷ lệ trung bình ArrDr = dtXepLoai.Select("MaXepLoai = 'TB'"); if (ArrDr.Length > 0) { Condition = "IDKQHT_XepLoai_1 = " + ArrDr[0]["KQHT_XepLoaiMonHocID"]; //foreach (DataRow drXL in ArrDr) //{ // Condition += (Condition == "" ? "" : " OR ") + "IDKQHT_XepLoai_1 = " + drXL["KQHT_XepLoaiMonHocID"]; //} SoLuong = int.Parse(dtSinhVien.Compute("Count(SV_SinhVienID)", Condition).ToString()); dr["LoaiTrungBinh"] = TinhPhanTram(SoLuong, SoSinhVien); } // Tỷ lệ yếu ArrDr = dtXepLoai.Select("MaXepLoai = 'Y'"); if (ArrDr.Length > 0) { Condition = "IDKQHT_XepLoai_1 = " + ArrDr[0]["KQHT_XepLoaiMonHocID"]; //foreach (DataRow drXL in ArrDr) //{ // Condition += (Condition == "" ? "" : " OR ") + "IDKQHT_XepLoai_1 = " + drXL["KQHT_XepLoaiMonHocID"]; //} SoLuong = int.Parse(dtSinhVien.Compute("Count(SV_SinhVienID)", Condition).ToString()); dr["LoaiYeu"] = TinhPhanTram(SoLuong, SoSinhVien); } // Tỷ lệ kém ArrDr = dtXepLoai.Select("MaXepLoai = 'KM'"); if (ArrDr.Length > 0) { Condition = "IDKQHT_XepLoai_1 = " + ArrDr[0]["KQHT_XepLoaiMonHocID"]; //foreach (DataRow drXL in ArrDr) //{ // Condition += (Condition == "" ? "" : " OR ") + "IDKQHT_XepLoai_1 = " + drXL["KQHT_XepLoaiMonHocID"]; //} Condition += " OR IDKQHT_XepLoai_1 = 0"; SoLuong = int.Parse(dtSinhVien.Compute("Count(SV_SinhVienID)", Condition).ToString()); dr["LoaiKem"] = TinhPhanTram(SoLuong, SoSinhVien); } dtMain.Rows.Add(dr); #endregion DataTable dtSub = oBKQHT_DiemThanhPhan.CreateTableReportSub_CDCNKT(dtSinhVien, dtThanhPhan, ColStart, IDKQHT_ThanhPhanTBHS); frmReport frm = new frmReport(dtMain, dtSub, "rBangKetQuaHocTap", "rBangKetQuaHocTapSub", new string[] { "SubReport1" }); frm.Show(); }