private void btnTongHop_Click(object sender, EventArgs e) { grbDiemTK.Visible = true; MathParser parser = new MathParser(); int SoMonL1, SoMonL2; double TongHeSo = 0, TongSoDiemL1, TongSoDiemL2, DiemTK; bool IsCoDiemLan2 = false; int SoThapPhanLamTron = int.Parse((new cBKQHT_QuyChe()).GetByMaThamSo(pDM_LopInfo.IDDM_TrinhDo, "TBC_LAMTRON")); string[] arrStr; int SoMonCoDiem = oBKQHT_DiemTongKetMon.GetSoMonCoDiemByLop(pDM_LopInfo.DM_LopID, Program.IDNamHoc, Program.HocKy, ref TongHeSo); if (dtSinhVien.Rows.Count > 0 && dtMonHoc != null && dtMonHoc.Rows.Count > 0 && SoMonCoDiem > 0) { for (int i = 0; i < dtSinhVien.Rows.Count; i++) { TongSoDiemL1 = 0; TongSoDiemL2 = 0; SoMonL1 = 0; SoMonL2 = 0; IsCoDiemLan2 = false; for (int j = dtColStart; j < dtSinhVien.Columns.Count; j += 2) { arrStr = dtSinhVien.Columns[j].ColumnName.Split('_'); if (arrStr.Length > 0) { DataRow[] dr = dtMonHoc.Select("DM_MonHocID=" + arrStr[0]); if (dr.Length > 0 && (bool)dr[0]["TinhDiemToanKhoa"] == true) { if (dtSinhVien.Rows[i][dtSinhVien.Columns[j].ColumnName].ToString() != "") { TongSoDiemL1 += double.Parse("0" + dtSinhVien.Rows[i][dtSinhVien.Columns[j].ColumnName]) * double.Parse("0" + dr[0]["SoHocTrinh"]); SoMonL1++; } if (dtSinhVien.Rows[i][dtSinhVien.Columns[j + 1].ColumnName].ToString() != "") { IsCoDiemLan2 = true; TongSoDiemL2 += double.Parse("0" + dtSinhVien.Rows[i][dtSinhVien.Columns[j + 1].ColumnName].ToString()) * double.Parse("0" + dr[0]["SoHocTrinh"].ToString()); SoMonL2++; } else if (dtSinhVien.Rows[i][dtSinhVien.Columns[j].ColumnName].ToString() != "") { TongSoDiemL2 += double.Parse("0" + dtSinhVien.Rows[i][dtSinhVien.Columns[j].ColumnName].ToString()) * double.Parse("0" + dr[0]["SoHocTrinh"].ToString()); SoMonL2++; } } } } dtSinhVien.Rows[i]["DiemTK1"] = parser.Round(TongSoDiemL1 / TongHeSo, SoThapPhanLamTron, true); DiemTK = double.Parse(dtSinhVien.Rows[i]["DiemTK1"].ToString()); for (int j = 0; j < dtXepLoai.Rows.Count; j++) { if (DiemTK >= double.Parse(dtXepLoai.Rows[j]["TuDiem"].ToString())) { dtSinhVien.Rows[i]["KQHT_XepLoaiTotNghiepID1"] = dtXepLoai.Rows[j]["KQHT_XepLoaiTotNghiepID"]; if (SoMonL1 < SoMonCoDiem) { dtSinhVien.Rows[i]["GhiChuL1"] = (SoMonCoDiem - SoMonL1).ToString() + " môn không có điểm"; } else { dtSinhVien.Rows[i]["GhiChuL1"] = ""; } break; } } if (IsCoDiemLan2) { dtSinhVien.Rows[i]["DiemTK2"] = parser.Round(TongSoDiemL2 / TongHeSo, SoThapPhanLamTron, true); DiemTK = double.Parse(dtSinhVien.Rows[i]["DiemTK2"].ToString()); for (int j = 0; j < dtXepLoai.Rows.Count; j++) { if (DiemTK >= double.Parse(dtXepLoai.Rows[j]["TuDiem"].ToString())) { dtSinhVien.Rows[i]["KQHT_XepLoaiTotNghiepID2"] = dtXepLoai.Rows[j]["KQHT_XepLoaiTotNghiepID"]; if (SoMonL2 < SoMonCoDiem) { dtSinhVien.Rows[i]["GhiChuL2"] = (SoMonCoDiem - SoMonL2).ToString() + " môn không có điểm"; } else { dtSinhVien.Rows[i]["GhiChuL2"] = ""; } break; } } } else { dtSinhVien.Rows[i]["DiemTK2"] = DBNull.Value; dtSinhVien.Rows[i]["KQHT_XepLoaiTotNghiepID2"] = DBNull.Value; dtSinhVien.Rows[i]["GhiChuL2"] = ""; } } } }
private void XuLyTable() { // add diem cua mon hoc trong ky dtDiem = oBKQHT_DiemTongKetToanKhoa.GetTongHop(pDM_LopInfo, Program.IDNamHoc, int.Parse(cmbLanThi.EditValue.ToString())); DataTable dtThucTapTotNghiep = oBKQHT_DiemTongKetMon.GetDiemThucTapTotNghiep(pDM_LopInfo); DataRow drNew; try { if (dtDiem.Rows.Count > 0) { int SoMonThiLai = 0, SoMonNo = 0, SoMonCoDiem = 0, SoMonDaCoDiem = 0; double SoHocTrinhThiLai = 0, SoHocTrinhNo = 0, TongSoHocTrinh = 0; object DiemTTTN; string SV_SinhVienID = dtDiem.Rows[0]["SV_SinhVienID"].ToString(), MonThiLai = "", MonHocNo = "", HoDem = ""; string IDDM_Lop = dtDiem.Rows[0]["IDDM_Lop"].ToString(); drNew = dtSinhVien.NewRow(); drNew["SV_SinhVienID"] = int.Parse(SV_SinhVienID); drNew["MaSinhVien"] = dtDiem.Rows[0]["MaSinhVien"].ToString(); drNew["TenSV"] = GetTen(dtDiem.Rows[0]["HoVaTen"].ToString(), ref HoDem); drNew["HoVa"] = HoDem; drNew["NgaySinh"] = dtDiem.Rows[0]["NgaySinh"]; drNew["NoiSinh"] = "" + dtDiem.Rows[0]["NoiSinh"]; drNew["TenLop"] = dtDiem.Rows[0]["TenLop"].ToString(); drNew["DiemTK"] = dtDiem.Rows[0]["DiemTongKet"]; drNew["DiemTBMH"] = dtDiem.Rows[0]["DiemTBMH"]; drNew["DiemTHXL"] = dtDiem.Rows[0]["DiemTHXL"]; drNew["IDDM_Lop"] = dtDiem.Rows[0]["IDDM_Lop"]; drNew["KQHT_XepLoaiTotNghiepID"] = dtDiem.Rows[0]["IDDM_XepLoai"]; drNew["GhiChu"] = dtDiem.Rows[0]["GhiChu"]; DiemTTTN = dtThucTapTotNghiep.Compute("Sum(Diem)", "IDSV_SinhVien = " + SV_SinhVienID.ToString()); if ("" + DiemTTTN != "") { drNew["DiemTTTN"] = Math.Round(double.Parse(DiemTTTN.ToString()), 1, MidpointRounding.AwayFromZero); } SoMonCoDiem = oBKQHT_DiemTongKetMon.GetSoMonCoDiemByLop(int.Parse(IDDM_Lop), 0, 0, ref TongSoHocTrinh); foreach (DataRow dr in dtDiem.Rows) { if (dr["SV_SinhVienID"].ToString() != SV_SinhVienID) { if (SoMonThiLai > 0) { drNew["SoMonThiLai"] = SoMonThiLai; drNew["SoHocTrinhThiLai"] = SoHocTrinhThiLai; drNew["MonThiLai"] = MonThiLai; } if (SoMonNo > 0) { drNew["SoMonNo"] = SoMonNo; drNew["SoHocTrinhNo"] = SoHocTrinhNo; drNew["MonHocNo"] = MonHocNo; } if (SoMonDaCoDiem < SoMonCoDiem) { drNew["SoMonChuaCoDiem"] = SoMonCoDiem - SoMonDaCoDiem; } dtSinhVien.Rows.Add(drNew); if (IDDM_Lop != dr["IDDM_Lop"].ToString()) { IDDM_Lop = dr["IDDM_Lop"].ToString(); SoMonCoDiem = oBKQHT_DiemTongKetMon.GetSoMonCoDiemByLop(int.Parse(IDDM_Lop), 0, 0, ref TongSoHocTrinh); } // Gán lại giá trị SoMonThiLai = 0; SoHocTrinhThiLai = 0; MonThiLai = ""; SoMonDaCoDiem = 0; SoMonNo = 0; SoHocTrinhNo = 0; MonHocNo = ""; SV_SinhVienID = dr["SV_SinhVienID"].ToString(); drNew = dtSinhVien.NewRow(); drNew["SV_SinhVienID"] = int.Parse(SV_SinhVienID); drNew["MaSinhVien"] = dr["MaSinhVien"].ToString(); drNew["TenSV"] = GetTen(dr["HoVaTen"].ToString(), ref HoDem); drNew["HoVa"] = HoDem; drNew["NgaySinh"] = dr["NgaySinh"]; drNew["NoiSinh"] = "" + dr["NoiSinh"]; drNew["TenLop"] = dr["TenLop"].ToString(); drNew["DiemTK"] = dr["DiemTongKet"]; drNew["DiemTBMH"] = dr["DiemTBMH"]; drNew["DiemTHXL"] = dr["DiemTHXL"]; drNew["IDDM_Lop"] = dr["IDDM_Lop"]; drNew["KQHT_XepLoaiTotNghiepID"] = dr["IDDM_XepLoai"]; drNew["GhiChu"] = dr["GhiChu"]; DiemTTTN = dtThucTapTotNghiep.Compute("Sum(Diem)", "IDSV_SinhVien = " + SV_SinhVienID.ToString()); if ("" + DiemTTTN != "") { drNew["DiemTTTN"] = Math.Round(double.Parse(DiemTTTN.ToString()), 1, MidpointRounding.AwayFromZero); } if ("" + dr["Diem"] != "") { try { if (dr["LanThi"].ToString() == "2") { SoMonThiLai++; SoHocTrinhThiLai += double.Parse(dr["SoHocTrinh"].ToString()); MonThiLai += (MonThiLai == "" ? "" : ", ") + dr["TenMonHoc"]; } //drNew["C" + "_" + dr["IDXL_MonHocTrongKy"].ToString()] = double.Parse(dr["Diem"].ToString()); SoMonDaCoDiem++; if (double.Parse(dr["Diem"].ToString()) < 5.0) { SoMonNo++; SoHocTrinhNo += double.Parse(dr["SoHocTrinh"].ToString()); MonHocNo += (MonHocNo == "" ? "" : ", ") + dr["TenMonHoc"]; } } catch { } } } else { if ("" + dr["Diem"] != "") { try { if (dr["LanThi"].ToString() == "2") { SoMonThiLai++; SoHocTrinhThiLai += double.Parse(dr["SoHocTrinh"].ToString()); MonThiLai += (MonThiLai == "" ? "" : ", ") + dr["TenMonHoc"]; } //drNew["C" + "_" + dr["IDXL_MonHocTrongKy"].ToString()] = double.Parse(dr["Diem"].ToString()); SoMonDaCoDiem++; if (double.Parse(dr["Diem"].ToString()) < 5.0) { SoMonNo++; SoHocTrinhNo += double.Parse(dr["SoHocTrinh"].ToString()); MonHocNo += (MonHocNo == "" ? "" : ", ") + dr["TenMonHoc"]; } } catch { } } } } if (SoMonThiLai > 0) { drNew["SoMonThiLai"] = SoMonThiLai; drNew["SoHocTrinhThiLai"] = SoHocTrinhThiLai; drNew["MonThiLai"] = MonThiLai; } if (SoMonNo > 0) { drNew["SoMonNo"] = SoMonNo; drNew["SoHocTrinhNo"] = SoHocTrinhNo; drNew["MonHocNo"] = MonHocNo; } if (SoMonDaCoDiem < SoMonCoDiem) { drNew["SoMonChuaCoDiem"] = SoMonCoDiem - SoMonDaCoDiem; } dtSinhVien.Rows.Add(drNew); } } catch { } // add mon thi tot nghiep dtDiemTotNghiep = oBKQHT_DiemTongKetToanKhoa.GetDiemTotNghieps(pDM_LopInfo, Program.IDNamHoc, int.Parse(cmbLanThi.EditValue.ToString())); try { if (dtDiemTotNghiep.Rows.Count > 0) { foreach (DataRow drSinhVien in dtSinhVien.Rows) { DataRow[] drTemp = dtDiemTotNghiep.Select("SV_SinhVienID=" + drSinhVien["SV_SinhVienID"]); foreach (DataRow dr in drTemp) { if ("" + dr["Diem"] != "") { try { drSinhVien["TN_" + dr["IDDM_MonHoc"]] = double.Parse(dr["Diem"].ToString()); } catch { } } } } } } catch { } }