protected void btnOK_Click(object sender, EventArgs e) { try { string examId = Request.QueryString.Get("examID"); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objRandomExam = objBll.GetExam(Convert.ToInt32(examId)); if (objRandomExam.IsStart != 2) { SessionSet.PageMessage = "考试还未结束不能生成补考试卷!"; return; } //OrganizationBLL OrgBll = new OrganizationBLL(); //Organization org = OrgBll.GetOrganization(objRandomExam.OrgId); //if (org.SuitRange != 1 && !objRandomExam.IsUpload) //{ // Grid1.DataBind(); // SessionSet.PageMessage = "考试为站段考试,还未上传考试成绩不能生成补考试卷!"; // return; //} if (objRandomExam.HasTrainClass) { string strTrainClassID = ""; RandomExamTrainClassBLL trainClassBLL = new RandomExamTrainClassBLL(); IList <RandomExamTrainClass> trainClasses = trainClassBLL.GetRandomExamTrainClassByRandomExamID(Convert.ToInt32(examId)); foreach (RandomExamTrainClass trainClass in trainClasses) { if (strTrainClassID == "") { strTrainClassID = "'" + trainClass.TrainClassID + "'"; } else { strTrainClassID = strTrainClassID + ",'" + trainClass.TrainClassID + "'"; } } } string OrganizationName = ""; string strExamineeName = ""; decimal dScoreLower = 0; decimal dScoreUpper = 1000; IList <RandomExamResult> examResults = null; RandomExamResultBLL bllExamResult = new RandomExamResultBLL(); examResults = bllExamResult.GetRandomExamResults(objRandomExam.RandomExamId, OrganizationName, "", strExamineeName, string.Empty, dScoreLower, dScoreUpper, objRandomExam.OrgId); string strID = string.Empty; string strNoPass = string.Empty; foreach (RandomExamResult result in examResults) { if (strID == string.Empty) { strID = result.ExamineeId.ToString(); } else { strID = strID + "," + result.ExamineeId; } //当补考考生不为未参加考试考生时 if (ddlSelect.SelectedValue != "2") { if (result.Score < objRandomExam.PassScore) { if (strNoPass == string.Empty) { strNoPass = result.ExamineeId.ToString(); } else { strNoPass = strNoPass + "," + result.ExamineeId; } } } } RandomExamArrangeBLL objArrangebll = new RandomExamArrangeBLL(); IList <RandomExamArrange> objArrangeList = objArrangebll.GetRandomExamArranges(objRandomExam.RandomExamId); string strChooseID = string.Empty; if (objArrangeList.Count > 0) { strChooseID = objArrangeList[0].UserIds; } string[] str = strChooseID.Split(','); string strNoResult = string.Empty; //当补考考生不为不及格考生时 if (ddlSelect.SelectedValue != "1") { for (int i = 0; i < str.Length; i++) { if (("," + strID + ",").IndexOf(("," + str[i] + ",")) < 0) { if (strNoResult == string.Empty) { strNoResult = str[i]; } else { strNoResult = strNoResult + "," + str[i]; } } } } string strTotal = string.Empty; if (strNoResult == string.Empty && strNoPass == string.Empty) { strTotal = string.Empty; } else if (strNoResult == string.Empty && strNoPass != string.Empty) { strTotal = strNoPass; } else if (strNoResult != string.Empty && strNoPass == string.Empty) { strTotal = strNoResult; } else if (strNoResult != string.Empty && strNoPass != string.Empty) { strTotal = strNoPass + "," + strNoResult; } if (strTotal == string.Empty) { SessionSet.PageMessage = "所选考试无考试不及格和未参加考试学员,不需生成补考考试!"; return; } int nowExamID = objBll.AddResetRandomExam(objRandomExam.RandomExamId); if (nowExamID == 0) { SessionSet.PageMessage = "复制失败!"; return; } RandomExamArrange objArrange = new RandomExamArrange(); objArrange.RandomExamId = nowExamID; objArrange.UserIds = strTotal; objArrange.Memo = string.Empty; int newArrangeId = objArrangebll.AddRandomExamArrange(objArrange); OracleAccess db = new OracleAccess(); string strSql = "select * from Random_Exam_Arrange_Detail where Random_Exam_ID=" + objRandomExam.RandomExamId; DataSet ds = db.RunSqlDataSet(strSql); str = strTotal.Split(','); foreach (DataRow dr in ds.Tables[0].Rows) { string strArrange = string.Empty; for (int i = 0; i < str.Length; i++) { if (("," + dr["User_Ids"] + ",").IndexOf("," + str[i] + ",") >= 0) { if (strArrange == string.Empty) { strArrange = str[i]; } else { strArrange += "," + str[i]; } } } if (strArrange != string.Empty) { XmlDocument doc = new XmlDocument(); //Request.PhysicalApplicationPath取得config文件路径 doc.Load(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "web.config")); XmlNode node = doc.SelectSingleNode("configuration/dataConfiguration/@defaultDatabase"); string value = node.Value; int id = 0; if (value == "Oracle") { OracleParameter para1 = new OracleParameter("p_User_Ids", OracleType.Clob); OracleParameter para2 = new OracleParameter("p_random_exam_arrange_de_id", OracleType.Number); para2.Direction = ParameterDirection.Output; OracleParameter para3 = new OracleParameter("p_random_exam_arrange_Id", OracleType.Number); para3.Value = newArrangeId; OracleParameter para4 = new OracleParameter("p_random_Exam_ID", OracleType.Number); para4.Value = nowExamID; OracleParameter para5 = new OracleParameter("p_computer_room_id", OracleType.Number); para5.Value = Convert.ToInt32(dr["Computer_Room_ID"].ToString()); IDataParameter[] paras = new IDataParameter[] { para1, para2, para3, para4, para5 }; id = Pub.RunAddProcedure(false, "USP_RANDOM_EXAM_ARRANGE_DE_I", paras, System.Text.Encoding.Unicode.GetBytes(strArrange)); } } } //向Random_Exam_Computer_Server 机房考试状态表 插入记录 strSql = "select c.Computer_Server_No from Random_Exam_Arrange_Detail a " + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID " + " inner join Computer_Server c on c.Computer_Server_ID=b.Computer_Server_ID " + " where a.Random_Exam_ID=" + nowExamID; DataSet dsComputer = db.RunSqlDataSet(strSql); string serverNo = ""; foreach (DataRow dr in dsComputer.Tables[0].Rows) { if (serverNo != dr["Computer_Server_No"].ToString()) { serverNo = dr["Computer_Server_No"].ToString(); strSql = "insert into Random_Exam_Computer_Server" + "(Random_Exam_ID,Computer_Server_No,Status_ID,Is_Start,Has_Paper," + "Random_Exam_Code,Is_Upload,DownLoaded) " + "values (" + nowExamID + "," + serverNo + ",0,0,0,'',0,0)"; db.ExecuteNonQuery(strSql); } } Response.Write("<script>top.returnValue='true';top.close();</script>"); } catch { SessionSet.PageMessage = "复制失败!"; } }
protected void btnSave_Click(object sender, ImageClickEventArgs e) { DataTable dataTable = BindGrid(); if (txtMET2.Text == "") { txtMET2.Text = "1"; } if (chkHasTrainClass.Checked) { if (hfPostID.Value == "") { SessionSet.PageMessage = "带有培训班的考试,必须选择职名!"; return; } } RandomExamBLL examBLL = new RandomExamBLL(); RailExam.Model.RandomExam exam = new RailExam.Model.RandomExam(); string strID = string.Empty; string strMode = ViewState["mode"].ToString(); string strStartMode = ViewState["startmode"].ToString(); RandomExamTrainClassBLL objTrainClassBll = new RandomExamTrainClassBLL(); string[] strPost = hfPostID.Value.Split(','); string strErrorMessage = ""; OracleAccess db = new OracleAccess(); if (strMode == "Insert") { string strExam = "select * from Random_Exam where Exam_Name='" + txtExamName.Text + "'"; if (db.RunSqlDataSet(strExam).Tables[0].Rows.Count > 0) { SessionSet.PageMessage = "该考试名称在系统中已经存在,请重新输入!"; txtExamName.Focus(); return; } if (chkHasTrainClass.Checked) { foreach (DataRow dr in dataTable.Rows) { for (int i = 0; i < strPost.Length; i++) { IList <RandomExamTrainClass> objList = objTrainClassBll.GetRandomExamTrainClassCount(Convert.ToInt32(dr["TrainClassID"].ToString()), Convert.ToInt32(dr["TrainClassSubjectID"].ToString()), Convert.ToInt32(strPost[i])); if (objList.Count > 0) { strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + dr["TrainClassSubjectName"] + "”已新增当前所选职名的试卷!"; } } } } if (strErrorMessage != "") { SessionSet.PageMessage = strErrorMessage; return; } exam.CategoryId = int.Parse(hfCategoryId.Value); exam.ExamName = txtExamName.Text; exam.Memo = txtMemo.Text; exam.CreatePerson = PrjPub.CurrentLoginUser.EmployeeName; exam.ExamModeId = 1; exam.PassScore = Convert.ToDecimal(txtPassScore.Text); if (rbnExamMode1.Checked) { exam.IsComputerExam = true; } else { exam.IsComputerExam = false; } if (rbnStartMode1.Checked) { exam.StartMode = 1; } else { exam.StartMode = 2; } if (rbnStyle1.Checked) { exam.ExamStyle = 1; } else { exam.ExamStyle = 2; } exam.IsAutoScore = chAutoScore.Checked; exam.CanSeeAnswer = chkCanSeeAnswer.Checked; exam.CanSeeScore = chSeeScore.Checked; exam.IsPublicScore = chPublicScore.Checked; exam.IsUnderControl = chUD.Checked; exam.MaxExamTimes = int.Parse(txtMET2.Text); exam.MinExamTimes = 1; exam.BeginTime = DateTime.Parse(dateBeginTime.DateValue.ToString()); exam.EndTime = DateTime.Parse(dateEndTime.DateValue.ToString()); exam.ExamTypeId = 1; exam.CreateTime = DateTime.Now; exam.Description = txtDescription.Text; exam.ExamTime = int.Parse(txtExamTime.Text); exam.StatusId = 1; exam.PostID = hfPostID.Value; exam.RandomExamModularTypeID = Convert.ToInt32(ddlModularType.SelectedValue); exam.IsReduceError = chkIsReduceScore.Checked; exam.AutoSaveInterval = chkAllItem.Checked ? 1 : 0; if (saveTd.Visible) { exam.SaveStatus = Convert.ToInt32(ddlDate.SelectedValue); if (dateSaveDate.Visible) { if (dateSaveDate.DateValue == null) { SessionSet.PageMessage = "请选择一个存档时间!"; return; } exam.SaveDate = Convert.ToDateTime(dateSaveDate.DateValue); } } else { exam.SaveStatus = 0; exam.SaveDate = null; } //exam.AutoSaveInterval = 0; exam.OrgId = PrjPub.CurrentLoginUser.StationOrgID; exam.HasTrainClass = chkHasTrainClass.Checked; int id = examBLL.AddExam(exam); strID = id.ToString(); if (_isWuhanOnly) { //当考试来源为培训班时,需自动添加考生。 if (chkHasTrainClass.Checked) { foreach (DataRow dr in dataTable.Rows) { RandomExamTrainClass obj = new RandomExamTrainClass(); obj.RandomExamID = Convert.ToInt32(strID); obj.TrainClassID = Convert.ToInt32(dr["TrainClassID"].ToString()); obj.TrainClassSubjectID = Convert.ToInt32(dr["TrainClassSubjectID"].ToString()); objTrainClassBll.AddRandomExamTrainClass(obj); } //ClientScript.RegisterStartupScript(GetType(), // "jsSelectFirstNode", // @"SaveArrange(" + strID + ",'" + strStartMode + "','" + strMode + "');", // true); //string strClause = strID + "|" + strStartMode + "|" + strMode; //ClientScript.RegisterStartupScript(GetType(), "import", "inputCallback.callback('" + strClause + "');", true); try { SaveRandomExamArrange(strID, hfTrainClassID.Value, hfPostID.Value); } catch { SessionSet.PageMessage = "添加考生失败"; return; } Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } else { Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else if (strMode == "Edit") { strID = Request.QueryString.Get("id"); if (Pub.HasPaper(Convert.ToInt32(strID))) { Response.Write("<script>alert('该考试已生成试卷,不能被编辑!');window.close();</script>"); return; } string strExam = "select * from Random_Exam where Random_Exam_ID!=" + strID + " and Exam_Name='" + txtExamName.Text + "'"; if (db.RunSqlDataSet(strExam).Tables[0].Rows.Count > 0) { SessionSet.PageMessage = "该考试名称在系统中已经存在,请重新输入!"; txtExamName.Focus(); return; } string strSql = "select * from Random_Exam_Computer_Server where Has_Paper=1 and Random_Exam_ID=" + strID; DataTable dt = db.RunSqlDataSet(strSql).Tables[0]; if (dt.Rows.Count > 0) { SessionSet.PageMessage = "当前考试已经生成试卷,不能继续编辑!"; return; } if (chkHasTrainClass.Checked && ViewState["TrainClass"].ToString() != hfTrainClassID.Value) { foreach (DataRow dr in dataTable.Rows) { for (int i = 0; i < strPost.Length; i++) { IList <RandomExamTrainClass> objList = objTrainClassBll.GetRandomExamTrainClassCount(Convert.ToInt32(dr["TrainClassID"].ToString()), Convert.ToInt32(dr["TrainClassSubjectID"].ToString()), Convert.ToInt32(strPost[i])); if (objList.Count > 0) { if (objList[0].RandomExamID.ToString() != strID) { strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + dr["TrainClassSubjectName"] + "”已新增当前所选职名的试卷!"; } } } } } if (strErrorMessage != "") { SessionSet.PageMessage = strErrorMessage; return; } exam.CategoryId = Convert.ToInt32(hfCategoryId.Value); exam.ExamName = txtExamName.Text; exam.Memo = txtMemo.Text; exam.RandomExamId = int.Parse(strID); exam.ExamTime = int.Parse(txtExamTime.Text); exam.ExamModeId = 1; exam.PassScore = Convert.ToDecimal(txtPassScore.Text); if (rbnExamMode1.Checked) { exam.IsComputerExam = true; } else { exam.IsComputerExam = false; } if (rbnStartMode1.Checked) { exam.StartMode = 1; } else { exam.StartMode = 2; } if (rbnStyle1.Checked) { exam.ExamStyle = 1; } else { exam.ExamStyle = 2; } exam.BeginTime = DateTime.Parse(dateBeginTime.DateValue.ToString()); exam.EndTime = DateTime.Parse(dateEndTime.DateValue.ToString()); exam.IsAutoScore = chAutoScore.Checked; exam.CanSeeAnswer = chkCanSeeAnswer.Checked; exam.CanSeeScore = chSeeScore.Checked; exam.IsPublicScore = chPublicScore.Checked; exam.IsUnderControl = chUD.Checked; exam.MaxExamTimes = int.Parse(txtMET2.Text); exam.MinExamTimes = 1; exam.ExamTypeId = 1; exam.Description = txtDescription.Text; //exam.AutoSaveInterval = 0; exam.RandomExamModularTypeID = Convert.ToInt32(ddlModularType.SelectedValue); exam.IsReduceError = chkIsReduceScore.Checked; exam.AutoSaveInterval = chkAllItem.Checked ? 1 : 0; if (saveTd.Visible) { exam.SaveStatus = Convert.ToInt32(ddlDate.SelectedValue); if (dateSaveDate.Visible) { if (dateSaveDate.DateValue == null) { SessionSet.PageMessage = "请选择一个存档时间!"; return; } exam.SaveDate = Convert.ToDateTime(dateSaveDate.DateValue); } } else { exam.SaveStatus = 0; exam.SaveDate = null; } RandomExamArrangeBLL objArrangeBll = new RandomExamArrangeBLL(); //当是否为培训班改变或则培训班改变时,需删除考试安排 if (Convert.ToBoolean(ViewState["HasTrainClass"].ToString()) != chkHasTrainClass.Checked || ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["PostID"].ToString() != hfPostID.Value) { objArrangeBll.DeleteRandomExamArrangeByRandomExamID(Convert.ToInt32(strID)); } if ((Convert.ToBoolean(ViewState["HasTrainClass"].ToString()) != chkHasTrainClass.Checked && !chkHasTrainClass.Checked) || ViewState["TrainClass"].ToString() != hfTrainClassID.Value) { objTrainClassBll.DeleteRandomExamTrainClassByRandomExamID(Convert.ToInt32(strID)); } exam.HasTrainClass = chkHasTrainClass.Checked; exam.PostID = hfPostID.Value; exam.Version = exam.Version + 1; examBLL.UpdateExam(exam); if (_isWuhanOnly) { if (chkHasTrainClass.Checked) { //当培训班或职名发生变化时,更改考生名单 if (ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["PostID"].ToString() != hfPostID.Value) { objTrainClassBll.DeleteRandomExamTrainClassByRandomExamID(Convert.ToInt32(strID)); foreach (DataRow dr in dataTable.Rows) { RandomExamTrainClass obj = new RandomExamTrainClass(); obj.RandomExamID = Convert.ToInt32(strID); obj.TrainClassID = Convert.ToInt32(dr["TrainClassID"].ToString()); obj.TrainClassSubjectID = Convert.ToInt32(dr["TrainClassSubjectID"].ToString()); objTrainClassBll.AddRandomExamTrainClass(obj); } //ClientScript.RegisterStartupScript(GetType(), //"jsSelectFirstNode", //@"SaveArrange(" + strID + ",'" + strStartMode + "','" + strMode + "');", //true); //string strClause = strID + "|" + strStartMode + "|" + strMode; //ClientScript.RegisterStartupScript(GetType(), "import", "inputCallback.callback('" + strClause + "');", true); try { SaveRandomExamArrange(strID, hfTrainClassID.Value, hfPostID.Value); } catch { SessionSet.PageMessage = "添加考生失败"; return; } Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } else { Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { strID = Request.QueryString.Get("id"); Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } }
private void updateExam() { // 根据 ProgressBar.htm 显示进度条界面 string templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm"); StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312")); string html = reader.ReadToEnd(); reader.Close(); Response.Write(html); Response.Flush(); System.Threading.Thread.Sleep(200); string jsBlock; try { string strId = Request.QueryString.Get("RandomExamID"); RandomExamBLL examBll = new RandomExamBLL(); RailExam.Model.RandomExam exam = examBll.GetExam(Convert.ToInt32(strId)); IList <RandomExamResult> examResults = null; RandomExamResultBLL bllExamResult = new RandomExamResultBLL(); examResults = bllExamResult.GetRandomExamResults(int.Parse(strId), "", "", "", "", 0, 1000, Convert.ToInt32(Request.QueryString.Get("OrgID"))); string strChooseID = string.Empty; foreach (RandomExamResult randomExamResult in examResults) { if (string.IsNullOrEmpty(strChooseID)) { strChooseID += randomExamResult.ExamineeId; } else { strChooseID += "," + randomExamResult.ExamineeId; } } OracleAccess access = new OracleAccess(); string strSql = @"select ER.Begin_Time,E.Is_Computerexam,ER.Examinee_ID, case when z.computer_room_seat=0 then GetOrgName(ER.org_ID)||CR.Computer_Room_Name||'微机教室' else GetOrgName(ER.org_ID)||CR.Computer_Room_Name||'微机教室-'||z.computer_room_seat||'机位' end Computer_Room_Name, case when y.subject_name is not null then y.subject_name else case when MT.RANDOM_EXAM_MODULAR_TYPE_NAME is not null then (MT.RANDOM_EXAM_MODULAR_TYPE_NAME||'-'|| E.EXAM_NAME) else E.EXAM_NAME end end as subject, ER.Score,ER.Is_Pass,E.RANDOM_EXAM_ID from random_exam_result ER inner join random_exam_result_detail z on ER.Random_Exam_Result_Id=z.Random_Exam_Result_Id and z.is_remove=1 left join random_exam E on E.RANDOM_EXAM_ID=ER.RANDOM_EXAM_ID left join random_exam_train_class x on E.Random_Exam_ID=x.Random_Exam_ID left join Zj_Train_Class_Subject y on x.train_class_subject_id=y.train_class_subject_id left join computer_room CR on CR.COMPUTER_ROOM_ID=z.Computer_Room_Id left join random_exam_modular_type MT on MT.RANDOM_EXAM_MODULAR_TYPE_ID=E.Random_Exam_Modular_Type_Id Inner join ( select b.*,min(a.end_time) end_time from Random_Exam_Result a inner join (select distinct max(a.score) score, a.examinee_id, a.Random_Exam_Id from Random_EXAM_RESULT a where a.status_id > 0. group by a.examinee_id, a.Random_Exam_Id) b on a.examinee_id =b.examinee_id and a.score =b.score and a.Random_Exam_Id = b.Random_Exam_Id group by b.examinee_id, b.Random_Exam_Id,b.score ) F on ER.examinee_id = f.examinee_id and ER.score = f.score and ER.Random_Exam_Id = f.Random_Exam_Id and ER.end_time=f.end_time where ER.Random_Exam_ID=" + strId; DataTable dtSel = access.RunSqlDataSet(strSql).Tables[0]; if (dtSel != null && dtSel.Rows.Count > 0) { int i = 1; foreach (DataRow r in dtSel.Rows) { if (("," + strChooseID + ",").IndexOf("," + r["Examinee_ID"] + ",") < 0) { System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('更新考生考试档案','" + ((i * 100) / ((double)dtSel.Rows.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); i++; continue; } access.ExecuteNonQuery(" delete from zj_employee_exam where Random_Exam_ID=" + strId + " and employee_id=" + r["Examinee_ID"]); string exam_date = r["Begin_Time"].ToString(); int exam_style = Convert.ToInt32(r["Is_Computerexam"]); string exam_address = r["Computer_Room_Name"].ToString(); string exam_subject = r["subject"].ToString(); double exam_score = Convert.ToDouble(r["Score"]); int exam_result = Convert.ToInt32(r["Is_Pass"]); int random_exam_id = Convert.ToInt32(r["RANDOM_EXAM_ID"]); StringBuilder sqlInsert = new StringBuilder(); sqlInsert.Append( "insert into zj_employee_exam(employee_exam_id,employee_id,exam_date,exam_style,exam_address,"); sqlInsert.Append("exam_subject,exam_score ,exam_result,create_date,create_person,random_exam_id"); sqlInsert.Append(") values(employee_exam_seq.nextval,{0},to_date('{1}','yyyy-mm-dd hh24:mi:ss'),{2},"); sqlInsert.Append(" '{3}','{4}','{5}',{6},to_date('{7}','yyyy-mm-dd hh24:mi:ss'),'{8}',{9})"); string sqlIns = string.Format(sqlInsert.ToString(), r["Examinee_ID"], exam_date, exam_style, exam_address, exam_subject, exam_score, exam_result, DateTime.Now, PrjPub.CurrentLoginUser.EmployeeName, random_exam_id); access.ExecuteNonQuery(sqlIns); System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('更新考生考试档案','" + ((i * 100) / ((double)dtSel.Rows.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); i++; } } if (exam.HasTrainClass) { jsBlock = string.Empty; RandomExamTrainClassBLL objBll = new RandomExamTrainClassBLL(); IList <RandomExamTrainClass> objList = objBll.GetRandomExamTrainClassByRandomExamID(Convert.ToInt32(strId)); string strClassID = ""; foreach (RandomExamTrainClass trainClass in objList) { strClassID += (strClassID == string.Empty) ? trainClass.TrainClassID.ToString() : "," + trainClass.TrainClassID; } StringBuilder sqlClass = new StringBuilder(); sqlClass.Append(" select C.TRAIN_CLASS_ID,begin_date,end_date,TP.TRAIN_PLAN_TYPE_ID,TP.Location,C.Employee_ID "); sqlClass.Append(" from zj_train_class TC right join (select train_plan_id, train_class_id,Employee_ID from zj_train_plan_employee"); sqlClass.AppendFormat(" where train_class_id in ({0}) ", strClassID); sqlClass.Append(" ) C on C.TRAIN_CLASS_ID=TC.TRAIN_CLASS_ID "); sqlClass.Append(" left join zj_train_plan TP on TP.TRAIN_PLAN_ID=C.TRAIN_PLAN_ID"); access = new OracleAccess(); DataTable dtClass = access.RunSqlDataSet(sqlClass.ToString()).Tables[0]; if (dtClass != null && dtClass.Rows.Count > 0) { int i = 1; foreach (DataRow r in dtClass.Rows) { if (("," + strChooseID + ",").IndexOf("," + r["Employee_ID"] + ",") < 0) { System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('更新考生培训档案','" + ((i * 100) / ((double)dtClass.Rows.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); i++; continue; } access.ExecuteNonQuery(" delete from zj_employee_train where Train_class_ID in (" + strClassID + ") and employee_id=" + r["Employee_ID"]); int trainClassID = Convert.ToInt32(r["TRAIN_CLASS_ID"]); string beginDate = r["begin_date"].ToString(); string endDate = r["end_date"].ToString(); int trainPlanTypeID = Convert.ToInt32(r["TRAIN_PLAN_TYPE_ID"]); string location = r["Location"].ToString(); int hour = 0; string classSubject = string.Empty; DataTable dtSubject = access.RunSqlDataSet( "select subject_name,class_hour from zj_train_class_subject where train_class_id=" + trainClassID).Tables[0]; if (dtSubject != null && dtSubject.Rows.Count > 0) { List <string> lst = new List <string>(); foreach (DataRow rhour in dtSubject.Rows) { lst.Add(rhour["subject_name"].ToString()); if (rhour["class_hour"].ToString() != "") { hour += Convert.ToInt32(rhour["class_hour"]); } } classSubject = string.Join(",", lst.ToArray()); } StringBuilder sqlInsert = new StringBuilder(); sqlInsert.Append("insert into zj_employee_train values(EMPLOYEE_TRAIN_SEQ.NEXTVAL,"); sqlInsert.Append("{0},{1},to_date('{2}','yyyy-mm-dd hh24:mi:ss'),to_date('{3}','yyyy-mm-dd hh24:mi:ss'),"); sqlInsert.Append("{4},'{5}',{6},'{7}',to_date('{8}','yyyy-mm-dd hh24:mi:ss'),'{9}')"); string sqlIns = string.Format(sqlInsert.ToString(), r["Employee_ID"], trainClassID, beginDate, endDate, trainPlanTypeID, location, hour, classSubject, DateTime.Now, PrjPub.CurrentLoginUser.EmployeeName); access.ExecuteNonQuery(sqlIns); jsBlock = "<script>SetPorgressBar('更新考生培训档案','" + ((i * 100) / ((double)dtClass.Rows.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); i++; } } } Response.Write("<script>top.returnValue='true';top.close();</script>"); } catch (Exception) { Response.Write("<script>top.returnValue='false';top.close();</script>"); } }
protected void FillPage(int nExamID) { RandomExamBLL examBLL = new RandomExamBLL(); RailExam.Model.RandomExam exam = examBLL.GetExam(nExamID); if (exam != null) { if (ViewState["startmode"].ToString() == "Edit") { if (Pub.HasPaper(exam.RandomExamId)) { Response.Write("<script>alert('该考试已生成试卷,不能被编辑!');window.close();</script>"); return; } } hfHasTrainClass.Value = exam.HasTrainClass.ToString(); txtCategoryName.Text = exam.CategoryName; hfCategoryId.Value = exam.CategoryId.ToString(); ddlType.SelectedValue = exam.ExamTypeId.ToString(); txtExamName.Text = exam.ExamName; txtExamTime.Text = exam.ExamTime.ToString(); dateBeginTime.DateValue = exam.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"); dateEndTime.DateValue = exam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); txtPassScore.Text = exam.PassScore.ToString(); if (exam.IsComputerExam) { rbnExamMode1.Checked = true; rbnExamMode2.Checked = false; } else { rbnExamMode1.Checked = false; rbnExamMode2.Checked = true; rbnExamMode1.Enabled = false; rbnExamMode2.Enabled = false; } if (exam.StartMode == 1) { rbnStartMode1.Checked = true; } else { rbnStartMode2.Checked = true; } if (exam.ExamStyle == 1) { rbnStyle1.Checked = true; } else { rbnStyle2.Checked = true; } if (exam.AutoSaveInterval == 1) { chkAllItem.Checked = true; } else { chkAllItem.Checked = false; } txtMET2.Text = exam.MaxExamTimes.ToString(); chUD.Checked = exam.IsUnderControl; chAutoScore.Checked = exam.IsAutoScore; chkCanSeeAnswer.Checked = exam.CanSeeAnswer; chSeeScore.Checked = exam.CanSeeScore; chPublicScore.Checked = exam.IsPublicScore; txtDescription.Text = exam.Description; txtMemo.Text = exam.Memo; ddlModularType.SelectedValue = exam.RandomExamModularTypeID.ToString(); chkIsReduceScore.Checked = exam.IsReduceError; //存档考试 if (exam.ExamStyle == 2) { rbnStyle2.Checked = true; saveTd.Visible = true; ddlDate.SelectedValue = exam.SaveStatus.ToString(); if (exam.SaveStatus == 2) { dateSaveDate.Visible = true; dateSaveDate.DateValue = Convert.ToDateTime(exam.SaveDate).ToString("yyyy-MM-dd"); } else { dateSaveDate.Visible = false; } } else { rbnStyle1.Checked = true; saveTd.Visible = false; } lblCreatePerson.Text = exam.CreatePerson; lblCreateTime.Text = exam.CreateTime.ToString("yyyy-MM-dd HH:mm"); if (ViewState["startmode"].ToString() == "Edit") { RandomExamResultBLL reBll = new RandomExamResultBLL(); IList <RailExam.Model.RandomExamResult> examResults = reBll.GetRandomExamResultByExamID(exam.RandomExamId); if (examResults.Count > 0) { ViewState["mode"] = "ReadOnly"; } } chkHasTrainClass.Checked = exam.HasTrainClass; ViewState["HasTrainClass"] = chkHasTrainClass.Checked.ToString(); SetTrainClassVisible(chkHasTrainClass.Checked); if (chkHasTrainClass.Checked) { RandomExamTrainClassBLL objTrainClassBll = new RandomExamTrainClassBLL(); IList <RandomExamTrainClass> objTrainClassList = objTrainClassBll.GetRandomExamTrainClassByRandomExamID(exam.RandomExamId); DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("RandomExamTrainClassID", typeof(int))); dataTable.Columns.Add(new DataColumn("RandomExamID", typeof(int))); dataTable.Columns.Add(new DataColumn("TrainClassID", typeof(int))); dataTable.Columns.Add(new DataColumn("TrainClassName", typeof(string))); dataTable.Columns.Add(new DataColumn("TrainClassSubjectID", typeof(int))); dataTable.Columns.Add(new DataColumn("TrainClassSubjectName", typeof(string))); string strSql = ""; foreach (RandomExamTrainClass trainClass in objTrainClassList) { DataRow newRow = dataTable.NewRow(); newRow[0] = trainClass.RandomExamTrainClassID; newRow[1] = trainClass.RandomExamID; newRow[2] = trainClass.TrainClassID; OracleAccess db = new OracleAccess(); strSql = "select * from ZJ_Train_Class where Train_Class_ID=" + trainClass.TrainClassID; newRow[3] = db.RunSqlDataSet(strSql).Tables[0].Rows[0]["Train_Class_Name"].ToString(); newRow[4] = trainClass.TrainClassSubjectID; strSql = "select * from ZJ_Train_Class_Subject where Train_Class_Subject_ID=" + trainClass.TrainClassSubjectID; newRow[5] = db.RunSqlDataSet(strSql).Tables[0].Rows[0]["Subject_Name"].ToString(); dataTable.Rows.Add(newRow); if (hfTrainClassID.Value == "") { hfTrainClassID.Value = trainClass.TrainClassID.ToString(); } else { hfTrainClassID.Value = hfTrainClassID.Value + "," + trainClass.TrainClassID.ToString(); } } ViewState["TrainClass"] = hfTrainClassID.Value; Grid1.DataSource = dataTable; Grid1.DataBind(); //当考试为补考的时候,不能修改培训班信息 if (exam.IsReset) { chkHasTrainClass.Enabled = false; Grid1.Enabled = false; btnAddTrainClass.Visible = false; } hfIsReset.Value = exam.IsReset.ToString(); } else { ViewState["TrainClass"] = ""; ViewState["PostID"] = ""; } hfPostID.Value = exam.PostID; ViewState["PostID"] = hfPostID.Value; if (!string.IsNullOrEmpty(exam.PostID)) { PostBLL postBLL = new PostBLL(); string[] strPostID = exam.PostID.Split(','); for (int i = 0; i < strPostID.Length; i++) { if (i == 0) { txtPost.Text = postBLL.GetPost(Convert.ToInt32(strPostID[i])).PostName; } else { txtPost.Text = txtPost.Text + "," + postBLL.GetPost(Convert.ToInt32(strPostID[i])).PostName; } } hfPostName.Value = txtPost.Text; } } if (ViewState["mode"].ToString() == "ReadOnly") { txtExamName.Enabled = false; dateBeginTime.Enabled = false; dateEndTime.Enabled = false; ddlType.Enabled = false; txtExamTime.Enabled = false; rbnExamMode1.Enabled = false; rbnExamMode2.Enabled = false; txtMET2.Enabled = false; chUD.Enabled = false; chAutoScore.Enabled = false; chkCanSeeAnswer.Enabled = false; chSeeScore.Enabled = false; chPublicScore.Enabled = false; txtDescription.Enabled = false; txtMemo.Enabled = false; rbnStartMode1.Enabled = false; rbnStartMode2.Enabled = false; txtPassScore.Enabled = false; chkHasTrainClass.Enabled = false; Grid1.Enabled = false; } }