protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string employeeId = Request.QueryString.Get("employeeId"); string examId = Request.QueryString.Get("examId"); RandomExamBLL randomBll = new RandomExamBLL(); lblExam.Text = randomBll.GetExam(Convert.ToInt32(examId)).ExamName; string strSql = "select GetOrgName(GetStationOrgID(org_id)) StationOrgName," + "GetWorkShopName(org_id) WorkShopName,b.Post_Name,a.* from employee a" + " inner join Post b on a.Post_ID=b.Post_ID " + " where Employee_ID=" + employeeId; OracleAccess db = new OracleAccess(); DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; lblName.Text = dr["Employee_Name"].ToString(); lblSex.Text = dr["Sex"].ToString(); lblOrgName.Text = dr["StationOrgName"].ToString(); lblWorkShop.Text = dr["WorkShopName"].ToString(); lblPost.Text = dr["Post_Name"].ToString(); lblIdentityCard.Text = dr["Identity_CardNo"].ToString(); lblPostNo.Text = dr["Work_No"].ToString(); DataSet ds = Pub.GetPhotoDateSet(employeeId); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0] != DBNull.Value) { myImagePhoto.ImageUrl = "/RailExamBao/RandomExamTai/ShowImage.aspx?EmployeeID=" + employeeId; } else { myImagePhoto.ImageUrl = "../../images/empty.jpg"; } } else { myImagePhoto.ImageUrl = "../../images/empty.jpg"; } hfEmployeeID.Value = employeeId; hfExamID.Value = examId; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && !CallBack1.IsCallback) { string strExamId = Request.QueryString.Get("id"); ViewState["BeginTime"] = DateTime.Now.ToString(); ViewState["StudentID"] = Request.QueryString.Get("employeeID"); if (strExamId != null && strExamId != "") { RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strExamId)); #region 考前判断(屏蔽) //if (randomExam.StartMode == 2 && randomExam.OrgId.ToString() != ConfigurationManager.AppSettings["StationID"].ToString() && randomExam.OrgId != 32) //{ // OrganizationBLL OrgBll = new OrganizationBLL(); // string strOrgName = OrgBll.GetOrganization(randomExam.OrgId).ShortName; // Response.Write("<script>alert('该考试为" + strOrgName + "统一时间考试,必须在" + strOrgName + "参加!'); top.window.close();</script>"); // return; //} ////如果当前考试为手动控制,则需判断考试是否开始 //if (randomExam.StartMode == 2 && randomExam.IsStart == 0) //{ // Response.Write("<script>alert('该考试还没有开始,请耐心等待!'); top.window.close();</script>"); // return; //} //if (randomExam.StartMode == 2 && randomExam.IsStart == 2) //{ // Response.Write("<script>alert('该考试已经结束!'); top.window.close();</script>"); // return; //} #endregion HiddenFieldExamTime.Value = DateTime.Now.AddMinutes(randomExam.ExamTime).ToString(); HfExamTime.Value = (randomExam.ExamTime * 60).ToString(); //获取当前考生最新需要做的考试试卷主表记录 RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(ViewState["StudentID"].ToString()), Convert.ToInt32(strExamId)); //设置当前考生本次考试还剩下的考试时间 HfExamTime.Value = ((randomExam.ExamTime * 60) - objResultCurrent.ExamTime).ToString(); FillPage(strExamId); } } }
protected void btnAddEmployee_Click(object sender, EventArgs e) { string strId = Request.QueryString.Get("RandomExamID"); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId)); if (obj.CreatePerson != PrjPub.CurrentLoginUser.EmployeeName && PrjPub.CurrentLoginUser.RoleID != 362 && PrjPub.CurrentLoginUser.RoleID != 1) { SessionSet.PageMessage = "您没有添加考生的权限!添加考生只能由出卷人操作。"; return; } ClientScript.RegisterStartupScript(GetType(), "jsSelectFirstNode", @"showEmployee(" + (obj.HasTrainClass ?1:0) + ")", true); }
public void FillContent() { RandomExamBLL objbll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objbll.GetExam(Convert.ToInt32(ViewState["ExamID"])); int year = obj.BeginTime.Year; string strSql = "select * from Random_Exam_Item_" + year + " where Random_Exam_Item_ID=" + ViewState["RandomExamItemID"]; OracleAccess db = new OracleAccess(); DataSet ds = db.RunSqlDataSet(strSql); if (ds.Tables[0].Rows.Count > 0) { Response.Write(ds.Tables[0].Rows[0]["Content"].ToString()); } }
private void DeleteData(int nExamID) { RandomExamBLL examBLL = new RandomExamBLL(); examBLL.DeleteExam(nExamID); string strPath = Server.MapPath("/RailExamBao/Online/Photo/" + nExamID + "/"); if (Directory.Exists(strPath)) { string[] filenames = Directory.GetFiles(strPath); for (int i = 0; i < filenames.Length; i++) { File.Delete(filenames[i]); } } }
protected void btnAll_Click(object sender, EventArgs e) { btnAll.Enabled = false; btnOK.Enabled = false; hfSelect.Value = GetSql(); OracleAccess db = new OracleAccess(); dtAll = db.RunSqlDataSet(GetSql()).Tables[0]; string[] strExam = new string[dtAll.Rows.Count]; for (int i = 0; i < dtAll.Rows.Count; i++) { strExam[i] = dtAll.Rows[i]["Random_Exam_ID"].ToString(); } RandomExamBLL objBll = new RandomExamBLL(); string strID = string.Empty; string strName = string.Empty; for (int i = 0; i < strExam.Length; i++) { string examName = objBll.GetExam(Convert.ToInt32(strExam[i])).ExamName; if (strName == string.Empty) { strName = examName; } else { strName += "|" + examName; } if (strID == string.Empty) { strID = strExam[i]; } else { strID += "|" + strExam[i]; } } hfid.Value = strID + "$" + strName; ClientScript.RegisterClientScriptBlock(GetType(), "", "window.returnValue = '" + hfid.Value + "';window.close();", true); }
private void GetHashTable() { string strId = Request.QueryString.Get("id"); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objRandomExam = objBll.GetExam(Convert.ToInt32(strId)); BookBLL bookBLL = new BookBLL(); IList <RailExam.Model.Book> bookList = null; string strPostID = objRandomExam.PostID; string[] str = strPostID.Split(','); int orgID = PrjPub.CurrentLoginUser.OrgID; int leader = objRandomExam.IsGroupLeader; int techID = objRandomExam.TechnicianTypeID; PostBLL objPostBll = new PostBLL(); Hashtable htBook = new Hashtable(); for (int i = 0; i < str.Length; i++) { int postID = Convert.ToInt32(str[i]); IList <Post> objPostList = objPostBll.GetPostsByParentID(postID); if (objPostList.Count > 0) { continue; } bookList = bookBLL.GetEmployeeStudyBookInfoByKnowledgeID(-1, orgID, postID, leader, techID, 0); if (bookList.Count > 0) { foreach (RailExam.Model.Book book in bookList) { if (!htBook.ContainsKey(book.bookId)) { htBook.Add(book.bookId, book.bookName); } } } } _htBook = htBook; }
private void BindGrid() { RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objExam = objBll.GetExam(Convert.ToInt32(Request.QueryString.Get("eid"))); if (!objExam.IsComputerExam) { gradesGrid.Levels[0].Columns[8].Visible = false; gradesGrid.Levels[0].Columns[9].Visible = false; gradesGrid.Levels[0].Columns[10].Visible = true; gradesGrid.Levels[0].Columns[12].Visible = false; } else { gradesGrid.Levels[0].Columns[8].Visible = true; gradesGrid.Levels[0].Columns[9].Visible = true; gradesGrid.Levels[0].Columns[10].Visible = false; } }
protected void FillPage(string strExamId) { //获取考试基本信息 RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strExamId)); if (randomExam != null) { lblTitle.Text = randomExam.ExamName; } //获取考试题数和分数 RandomExamSubjectBLL randomExamSubjectBLL = new RandomExamSubjectBLL(); IList <RailExam.Model.RandomExamSubject> RandomExamSubjects = randomExamSubjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strExamId)); int nItemCount = 0; decimal nTotalScore = 0; for (int i = 0; i < RandomExamSubjects.Count; i++) { nItemCount += RandomExamSubjects[i].ItemCount; nTotalScore += RandomExamSubjects[i].ItemCount * RandomExamSubjects[i].UnitScore; } // 用于前台JS判断是否完成全部试题 hfPaperItemsCount.Value = nItemCount.ToString(); lblTitleRight.Text = "总共" + nItemCount + "题,共" + System.String.Format("{0:0.##}", nTotalScore) + "分"; string strSql = "select a.*,b.post_name, GetOrgName(a.org_id) as org_name from Employee a " + " left join post b on a.post_id = b.post_id" + " where a.Employee_ID=" + Request.QueryString.Get("employeeID"); OracleAccess db = new OracleAccess(); DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; lblWorkNo.Text = dr["Work_No"].ToString(); lblIDCard.Text = dr["Identity_CardNo"].ToString(); lblSex.Text = dr["Sex"].ToString(); lblOrgName.Text = dr["org_name"].ToString(); lblPost.Text = dr["post_name"].ToString(); lblName.Text = dr["Employee_Name"].ToString(); }
protected void Callback1_Callback(object sender, CallBackEventArgs e) { try { string strId = ViewState["ExamID"].ToString(); RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); RailExam.Model.RandomExamResultCurrent objResultCurrent = objResultCurrentBll.GetRandomExamResult(Convert.ToInt32(ViewState["RandomExamResultID"].ToString())); if (objResultCurrent.RandomExamId == 0) { hfStart.Value = "2"; } else { objResultCurrent.ExamTime = Convert.ToInt32(ViewState["LastExamTime"].ToString()) + GetSecondBetweenTwoDate(DateTime.Now, DateTime.Parse(ViewState["BeginTime"].ToString())); objResultCurrentBll.UpdateRandomExamResultCurrent(objResultCurrent); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objRandomExam = objBll.GetExam(Convert.ToInt32(strId)); hfStart.Value = objRandomExam.IsStart.ToString(); } if (hfStart.Value == "2") { RandomExamResultBLL objResultBll = new RandomExamResultBLL(); RandomExamResult objResult = objResultBll.GetNewRandomExamResultByExamineeID(Convert.ToInt32(ViewState["EmployeeID"].ToString()), Convert.ToInt32(strId)); hfResultID.Value = objResult.RandomExamResultId.ToString(); } } catch { hfStart.Value = "-1"; } hfResultID.RenderControl(e.Output); hfStart.RenderControl(e.Output); }
protected void btnEnd_Click(object sender, EventArgs e) { string strId = Request.QueryString.Get("RandomExamID"); if (string.IsNullOrEmpty(strId)) { SessionSet.PageMessage = "缺少参数!"; return; } //获取当前考试的生成试卷的状态和次数 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objExam = objBll.GetExam(Convert.ToInt32(strId)); RandomExamComputerServerBLL serverBll = new RandomExamComputerServerBLL(); RandomExamComputerServer server = serverBll.GetRandomExamComputerServer(objExam.RandomExamId, PrjPub.ServerNo); if (server.IsStart == 0) { if (objExam.EndTime >= DateTime.Today) { SessionSet.PageMessage = "当前考试还未开始考试!"; return; } } else if (server.IsStart == 2) { SessionSet.PageMessage = "当前考试已经结束!"; return; } ClientScript.RegisterStartupScript(GetType(), "jsSelectFirstNode", @"EndPaper();", true); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { dateBeginTime.DateValue = DateTime.Today.Year.ToString() + "-" + DateTime.Today.Month.ToString("00") + "-01 09:00:00"; dateEndTime.DateValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } if (!string.IsNullOrEmpty(hfExamId.Value)) { string[] str = hfExamId.Value.Split('|'); RandomExamBLL objBll = new RandomExamBLL(); string strName = string.Empty; for (int i = 0; i < str.Length; i++) { string examName = objBll.GetExam(Convert.ToInt32(str[i])).ExamName; if (strName == string.Empty) { strName = examName; } else { strName += "|" + examName; } } txtSelectExam.Text = strName; } if (Request.Form.Get("RefreshExcel") != null && Request.Form.Get("RefreshExcel") != "") { DownloadExcel(Request.Form.Get("RefreshExcel")); } }
private void DownloadAll(string strType) { RandomExamBLL objBll = new RandomExamBLL(); string strId = Request.QueryString.Get("eid"); RailExam.Model.RandomExam obj = objBll.GetExam(int.Parse(strId)); string filename = ""; filename = Server.MapPath("/RailExamBao/Excel/" + strType + "/"); string ZipName = Server.MapPath("/RailExamBao/Excel/Word.zip"); GzipCompress(filename, ZipName); FileInfo file = new FileInfo(ZipName.ToString()); this.Response.Clear(); this.Response.Buffer = true; this.Response.Charset = "utf-7"; this.Response.ContentEncoding = Encoding.UTF7; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 if (strType.IndexOf("合格") >= 0) { this.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(obj.ExamName + "合格试卷") + ".zip"); } else { this.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(obj.ExamName) + ".zip"); } // 添加头信息,指定文件大小,让浏览器能够显示下载进度 this.Response.AddHeader("Content-Length", file.Length.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 this.Response.ContentType = "application/ms-word"; // 把文件流发送到客户端 this.Response.WriteFile(file.FullName); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (PrjPub.HasEditRight("成绩查询")) { HfUpdateRight.Value = "True"; } else { HfUpdateRight.Value = "False"; } if (PrjPub.HasDeleteRight("新增考试") && PrjPub.IsServerCenter && PrjPub.CurrentLoginUser.IsAdmin && PrjPub.CurrentLoginUser.UseType == 0) { hfDeleteRight.Value = "True"; } else { hfDeleteRight.Value = "False"; } //如果是访问路局则只要是有成绩查询权限的用户均可以访问成绩查询页面 if (PrjPub.IsServerCenter) { hfIsAdmin.Value = "True"; } //如果是访问路局则非本站段的用户不能访问成绩查询页面 else { hfOrgID.Value = ConfigurationManager.AppSettings["StationID"].ToString(); if ((PrjPub.CurrentLoginUser.StationOrgID.ToString() == hfOrgID.Value) || PrjPub.CurrentLoginUser.UseType == 0) { hfIsAdmin.Value = "True"; } else { hfIsAdmin.Value = "False"; } } dateStartDateTime.DateValue = DateTime.Today.Year + "-" + DateTime.Today.Month + "-01"; dateEndDateTime.DateValue = DateTime.Today.ToString("yyyy-MM-dd"); if (!string.IsNullOrEmpty(Request.QueryString.Get("begin"))) { dateStartDateTime.DateValue = Request.QueryString.Get("begin"); } if (!string.IsNullOrEmpty(Request.QueryString.Get("end"))) { dateEndDateTime.DateValue = Request.QueryString.Get("end"); } hfIsServer.Value = PrjPub.IsServerCenter.ToString(); //hfHasTwoServer.Value = PrjPub.HasTwoServer().ToString(); //hfIsMainServer.Value = PrjPub.IsMainServer().ToString(); if (Request.QueryString.Get("Orgid") != "1" && !string.IsNullOrEmpty(Request.QueryString.Get("Orgid"))) { BindGrid(); } } string strDeleteID = Request.Form.Get("DeleteID"); if (!string.IsNullOrEmpty(strDeleteID)) { RandomExamBLL examBLL = new RandomExamBLL(); RailExam.Model.RandomExam obj = examBLL.GetExam(Convert.ToInt32(strDeleteID)); if (obj.HasTrainClass) { SessionSet.PageMessage = "不能删除有培训班的考试!"; BindGrid(); return; } examBLL.DeleteExam(int.Parse(strDeleteID)); BindGrid(); } }
private void UploadPaper() { // 根据 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 strId = Request.QueryString.Get("RandomExamID"); //获取当前考试的生成试卷的状态和次数 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId)); string typeid = Request.QueryString.Get("typeid"); string strSql, strKey = "0"; OracleAccess db = new OracleAccess(); int orgId = Convert.ToInt32(ConfigurationManager.AppSettings["StationID"]); try { RandomExamResultBLL objResultBll = new RandomExamResultBLL(); strSql = "select SYNCHRONIZE_LOG_SEQ.NextVal@link_sf from dual"; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; strKey = dr[0].ToString(); strSql = "insert into SYNCHRONIZE_LOG@link_sf values(" + strKey + "," + orgId + ",6,sysdate,null,1," + PrjPub.ServerNo + ")"; db.ExecuteNonQuery(strSql); strSql = @"select Examinee_ID,Random_Exam_Result_ID from Random_Exam_Result@link_sf where Random_Exam_ID=" + obj.RandomExamId + @" and org_id=" + PrjPub.StationID + @" and examinee_id in (select employee_Id from Random_Exam_Result_Detail a inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID inner join Computer_Server c on b.Computer_Server_ID=c.Computer_Server_ID where to_number(c.Computer_Server_No)=" + PrjPub.ServerNo + @" and a.Random_Exam_ID=" + obj.RandomExamId + ")"; DataSet dsResult = db.RunSqlDataSet(strSql); IList <RandomExamResult> randomExamResults = objResultBll.GetRandomExamResultByExamID(obj.RandomExamId); int count = randomExamResults.Count + dsResult.Tables[0].Rows.Count + 1; System.Threading.Thread.Sleep(10); string jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((1 * 100) / ((double)count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); string strUrl = "ftp://" + PrjPub.ServerIP + "/Photo"; Uri directoryToDownload = new Uri(strUrl); FtpClient ftpSession = FtpClient.GetFtpClient(directoryToDownload.Host); if (ftpSession == null) { Pub.AddFtp(); ftpSession = FtpClient.GetFtpClient(directoryToDownload.Host); } ftpSession.MakeDirectory("/Photo/" + obj.RandomExamId); int progressNum = 2; foreach (DataRow drResult in dsResult.Tables[0].Rows) { ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_00.jpg")); ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_01.jpg")); ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_02.jpg")); ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_03.jpg")); System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((progressNum * 100) / ((double)count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); progressNum++; } //先删除路局的考试成绩和答卷 objResultBll.DeleteRandomExamResultServer(obj.RandomExamId); foreach (RandomExamResult randomExamResult in randomExamResults) { if (randomExamResult.IsTemp == 1) { //从中间提交表到正式表 objResultBll.RemoveResultAnswerTemp(randomExamResult.RandomExamResultId); } //获取路局的主键ID strSql = "select Random_Exam_Result_Seq.Nextval@link_sf from dual"; DataRow drSeq = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; int serverId = Convert.ToInt32(drSeq[0]); //将成绩插入路局 objResultBll.InsertRandomExamResultServer(randomExamResult.RandomExamResultId, serverId, obj.RandomExamId); if (typeid == "2") { //将答卷插入路局 objResultBll.InsertRandomExamResultAnswerServer(obj.RandomExamId, randomExamResult.RandomExamResultId, serverId); } strSql = "select * from Random_Exam_Result_Photo where Random_Exam_ID=" + obj.RandomExamId + " and Random_Exam_Result_ID=" + randomExamResult.RandomExamResultId; DataSet ds = db.RunSqlDataSet(strSql); if (ds.Tables[0].Rows.Count > 0) { DataRow drPhoto = ds.Tables[0].Rows[0]; int employeeId = Convert.ToInt32(drPhoto["Employee_ID"]); Uri ftpUri = new Uri(strUrl + "/" + obj.RandomExamId + "/"); if (drPhoto["FingerPrint"] != DBNull.Value) { SavePhotoToServer(employeeId, (byte[])drPhoto["FingerPrint"], 0, serverId, ftpSession, ftpUri); } if (drPhoto["Photo1"] != DBNull.Value) { SavePhotoToServer(employeeId, (byte[])drPhoto["Photo1"], 1, serverId, ftpSession, ftpUri); } if (drPhoto["Photo2"] != DBNull.Value) { SavePhotoToServer(employeeId, (byte[])drPhoto["Photo2"], 2, serverId, ftpSession, ftpUri); } if (drPhoto["Photo3"] != DBNull.Value) { SavePhotoToServer(employeeId, (byte[])drPhoto["Photo3"], 3, serverId, ftpSession, ftpUri); } } System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((progressNum * 100) / ((double)count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); progressNum++; } if (typeid == "1") { //只上传成绩须更新时间 strSql = "update Random_Exam_Computer_Server@link_sf set " + "Last_Upload_Date=sysdate where random_exam_id=" + obj.RandomExamId + " and Computer_server_no=" + PrjPub.ServerNo; db.ExecuteNonQuery(strSql); } else { //如果考试已经结束上传,将上传标志置为已经上传 if (obj.IsStart == 2) { objBll.UpdateIsUpload(obj.RandomExamId, PrjPub.ServerNo, 1); } else { objBll.UpdateIsUpload(obj.RandomExamId, PrjPub.ServerNo, 0); } } strSql = "update SYNCHRONIZE_LOG@link_sf set SYNCHRONIZE_STATUS_ID=2,End_Time=sysdate where SYNCHRONIZE_LOG_ID=" + strKey; db.ExecuteNonQuery(strSql); } catch (Exception ex) { strSql = "update SYNCHRONIZE_LOG@link_sf set SYNCHRONIZE_STATUS_ID=3,End_Time=sysdate where SYNCHRONIZE_LOG_ID=" + strKey; db.ExecuteNonQuery(strSql); Response.Write("<script>alert('" + ex.Message.Replace("\n", "\r\n") + "');window.close();</script>"); return; } Response.Write("<script>top.returnValue='true';window.close();</script>"); }
private void GetPaper() { // 根据 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; ViewState["BeginTime"] = DateTime.Now.ToString(); string strId = Request.QueryString.Get("RandomExamID"); //获取当前考试的生成试卷的状态和次数 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId)); int year = obj.BeginTime.Year; int ExamCount = obj.MaxExamTimes; RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL(); IList <RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId)); string strChooseID = ""; OracleAccess db = new OracleAccess(); OracleAccess dbCenter = new OracleAccess(System.Configuration.ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString); string strSql; if (ExamArranges.Count > 0) { strSql = "select a.* 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 c.Computer_Server_No='" + PrjPub.ServerNo + "' " + " and Random_Exam_ID=" + strId; DataSet ds = db.RunSqlDataSet(strSql); foreach (DataRow dr in ds.Tables[0].Rows) { if (string.IsNullOrEmpty(strChooseID)) { strChooseID += dr["User_Ids"].ToString(); } else { strChooseID += "," + dr["User_Ids"]; } } } else { strChooseID = ""; } if (strChooseID == "") { Response.Write("<script>top.returnValue='本场考试未在本单位安排考生!';window.close();</script>"); return; } if (db.GetCount("RANDOM_EXAM_ITEM_TEMP_" + year, "TABLE") == 0) { strSql = "create table RANDOM_EXAM_ITEM_TEMP_" + year + " as select * from RANDOM_EXAM_ITEM_" + year + " where 1=2 "; db.ExecuteNonQuery(strSql); } strSql = "insert into RANDOM_EXAM_ITEM_TEMP_" + year + " select * from RANDOM_EXAM_ITEM_" + year + " where Random_Exam_ID=" + strId; db.ExecuteNonQuery(strSql); if (!PrjPub.IsServerCenter) { if (dbCenter.GetCount("RANDOM_EXAM_ITEM_TEMP_" + year, "TABLE") == 0) { strSql = "create table RANDOM_EXAM_ITEM_TEMP_" + year + " as select * from RANDOM_EXAM_ITEM_" + year + " where 1=2 "; dbCenter.ExecuteNonQuery(strSql); } strSql = "insert into RANDOM_EXAM_ITEM_TEMP_" + year + " select * from RANDOM_EXAM_ITEM_" + year + " where Random_Exam_ID=" + strId; dbCenter.ExecuteNonQuery(strSql); } System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((1 * 100) / ((double)2) + "'); </script>"); Response.Write(jsBlock); Response.Flush(); //每次生成试卷之前删除已生成的考试试卷 RandomExamResultCurrentBLL randomExamResultBLL = new RandomExamResultCurrentBLL(); randomExamResultBLL.DelRandomExamResultCurrent(Convert.ToInt32(strId)); System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((2 * 100) / ((double)2) + "'); </script>"); Response.Write(jsBlock); Response.Flush(); System.Threading.Thread.Sleep(200); jsBlock = string.Empty; string[] str = strChooseID.Split(','); RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); //定义全局答卷对象List IList <RandomExamResultAnswerCurrent> randomExamResultAnswersCurrentAll = new List <RandomExamResultAnswerCurrent>(); //定义一个考生一次答卷对象List IList <RandomExamResultAnswerCurrent> randomExamResultAnswers = null; int progressNum = 1; for (int n = 1; n <= ExamCount; n++) { for (int m = 0; m < str.Length; m++) { RandomExamResultCurrent randomExamResult = new RandomExamResultCurrent(); randomExamResult.RandomExamId = int.Parse(strId); randomExamResult.AutoScore = 0; randomExamResult.BeginDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.ExamTime = 0; randomExamResult.EndDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.Score = 0; randomExamResult.OrganizationId = int.Parse(ConfigurationManager.AppSettings["StationID"]); randomExamResult.Memo = ""; randomExamResult.StatusId = 0; randomExamResult.AutoScore = 0; randomExamResult.CorrectRate = 0; randomExamResult.ExamineeId = int.Parse(str[m]); randomExamResult.ExamSeqNo = n; int nRandomExamResultPK = randomExamResultBLL.AddRandomExamResultCurrent(randomExamResult); ViewState["RandomExamResultPK"] = nRandomExamResultPK; strSql = "select a.* from Random_Exam_Arrange_Detail a " + " where ','||User_Ids||',' like '%," + str[m] + ",%' " + " and Random_Exam_ID=" + strId; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; //strSql = "insert into Random_Exam_Result_Detail(Random_Exam_Result_Detail_ID," // + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID) " // + "values(Random_Exam_Result_Detail_SEQ.NextVal," // + nRandomExamResultPK + "," // + randomExamResult.RandomExamId + "," // + randomExamResult.ExamineeId + "," // + "0," + dr["Computer_Room_ID"] + ") "; //db.ExecuteNonQuery(strSql); strSql = "insert into Random_Exam_Result_Detail_Temp(Random_Exam_Result_Detail_ID," + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID,Is_Remove) " + "values(Random_Exam_Result_Detail_SEQ.NextVal," + nRandomExamResultPK + "," + randomExamResult.RandomExamId + "," + randomExamResult.ExamineeId + "," + "0," + dr["Computer_Room_ID"] + ",0) "; db.ExecuteNonQuery(strSql); RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); RandomExamStrategyBLL strategyBLL = new RandomExamStrategyBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId)); if (randomExamSubjects != null) { Hashtable hashTableItemIds = new Hashtable(); Hashtable htSubjectItemIds = new Hashtable(); for (int i = 0; i < randomExamSubjects.Count; i++) { RandomExamSubject paperSubject = randomExamSubjects[i]; int nSubjectId = paperSubject.RandomExamSubjectId; // int nItemCount = paperSubject.ItemCount; IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); for (int j = 0; j < strategys.Count; j++) { int nStrategyId = strategys[j].RandomExamStrategyId; int nItemCount = strategys[j].ItemCount; IList <RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, year); // IList<RandomExamItem> itemList = randomItemBLL.GetItemsBySubjectId(nSubjectId); Random ObjRandom = new Random(); Hashtable hashTable = new Hashtable(); Hashtable hashTableCount = new Hashtable(); int index = 0; while (hashTable.Count < nItemCount) { int k = ObjRandom.Next(itemList.Count); hashTableCount[index] = k; index = index + 1; int itemID = itemList[k].ItemId; int examItemID = itemList[k].RandomExamItemId; if (!hashTableItemIds.ContainsKey(itemID)) { hashTable[examItemID] = examItemID; hashTableItemIds[itemID] = itemID; htSubjectItemIds[examItemID] = examItemID; } //if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount) //{ // SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!"; // return; //} } } } foreach (int key in htSubjectItemIds.Keys) { string strItemId = htSubjectItemIds[key].ToString(); RandomExamItem item = randomItemBLL.GetRandomExamItem(Convert.ToInt32(strItemId), year); string nowSelectAnswer = string.Empty; string nowStandardAnswer = string.Empty; if (item.TypeId != PrjPub.ITEMTYPE_FILLBLANK) { Pub.GetNowAnswer(item, out nowSelectAnswer, out nowStandardAnswer); } RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK; randomExamResultAnswer.RandomExamItemId = int.Parse(strItemId); randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = string.Empty; randomExamResultAnswer.SelectAnswer = nowSelectAnswer; randomExamResultAnswer.StandardAnswer = nowStandardAnswer; randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer); //完型填空子题 IList <RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(item.ItemId, obj.RandomExamId, year); foreach (RandomExamItem randomExamItem in randomExamItems) { Pub.GetNowAnswer(randomExamItem, out nowSelectAnswer, out nowStandardAnswer); randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK; randomExamResultAnswer.RandomExamItemId = randomExamItem.RandomExamItemId; randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = string.Empty; randomExamResultAnswer.SelectAnswer = nowSelectAnswer; randomExamResultAnswer.StandardAnswer = nowStandardAnswer; randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer); } System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在生成试卷,请等待......','" + ((progressNum * 100) / ((double)ExamCount * str.Length * htSubjectItemIds.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); progressNum++; } } else { SessionSet.PageMessage = "未找到记录!"; } } } bool isRefresh = true; try { objBll.UpdateHasPaper(Convert.ToInt32(strId), PrjPub.ServerNo, true); } catch { strSql = @" update Random_Exam_Computer_Server set has_paper=1 where random_exam_id=" + strId + @" and Computer_server_no='" + PrjPub.ServerNo + @"'"; dbCenter.ExecuteNonQuery(strSql); strSql = @"select count(*) from Random_Exam_Computer_Server where has_paper=1 and random_exam_id=" + strId; int count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]); if (count > 0) { strSql = @"update Random_Exam set has_paper=1 where random_exam_id=" + strId; dbCenter.ExecuteNonQuery(strSql); } else { strSql = @"update Random_Exam set has_paper=0 where random_exam_id=" + strId; dbCenter.ExecuteNonQuery(strSql); } } //如果考试是随到随考,考试状态自动变为正在进行 if (obj.StartMode == 1) { try { objBll.UpdateIsStart(Convert.ToInt32(strId), PrjPub.ServerNo, 1); isRefresh = false; } catch { strSql = @" update Random_Exam_Computer_Server set Is_Start=1 where random_exam_id=" + strId + @" and Computer_server_no='" + PrjPub.ServerNo + @"'"; dbCenter.ExecuteNonQuery(strSql); strSql = @"select count(*) from Random_Exam_Computer_Server where random_exam_id=" + strId; int totalcount = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]); strSql = @"select count(*) from Random_Exam_Computer_Server where Is_Start=0 and random_exam_id=" + strId; int count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]); if (totalcount == count) { strSql = @"update Random_Exam set Is_Start=0 where random_exam_id=" + strId; dbCenter.ExecuteNonQuery(strSql); } else { strSql = @"select count(*) from Random_Exam_Computer_Server where Is_Start=1 and random_exam_id=" + strId; count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]); if (count > 0) { strSql = @"update Random_Exam set Is_Start=1 where random_exam_id=" + strId; dbCenter.ExecuteNonQuery(strSql); } else { strSql = @"select count(*) from Random_Exam_Computer_Server where Is_Start=2 and random_exam_id=" + strId; count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]); if (count == totalcount) { strSql = @"update Random_Exam set Is_Start=2 where random_exam_id=" + strId; dbCenter.ExecuteNonQuery(strSql); } } } } } else { isRefresh = false; } if (isRefresh) { objBll.RandomExamRefresh(); } SystemLogBLL objLogBll = new SystemLogBLL(); objLogBll.WriteLog("“" + obj.ExamName + "”生成所有考试试卷"); Response.Write("<script>top.returnValue='true';top.close();</script>"); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string strId = Request.QueryString.Get("id"); if (strId != null && strId != "") { hfExamID.Value = strId; RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL(); IList <RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId)); if (ExamArranges.Count > 0) { ViewState["ChooseId"] = ExamArranges[0].UserIds; ViewState["UpdateMode"] = 1; string strSql = "select Org_ID,Short_Name from Org where level_num=2 order by Order_Index"; OracleAccess db = new OracleAccess(); DataSet ds = db.RunSqlDataSet(strSql); ListItem item = new ListItem(); item.Text = "--请选择--"; item.Value = "0"; ddlOrg.Items.Add(item); bool hasOrg = false; foreach (DataRow dr in ds.Tables[0].Rows) { item = new ListItem(); item.Text = dr["Short_Name"].ToString(); item.Value = dr["org_ID"].ToString(); ddlOrg.Items.Add(item); if (PrjPub.CurrentLoginUser.StationOrgID.ToString() == dr["org_ID"].ToString()) { hasOrg = true; } } if (PrjPub.CurrentLoginUser.RoleID != 1) { if (hasOrg) { ddlOrg.SelectedValue = PrjPub.CurrentLoginUser.StationOrgID.ToString(); ddlOrg.Enabled = false; } else { ddlOrg.SelectedValue = "0"; } } else { ddlOrg.SelectedValue = "0"; } ddlOrg_SelectedIndexChanged(null, null); } else { ViewState["ChooseId"] = ""; ViewState["UpdateMode"] = 0; } RandomExamBLL objBll = new RandomExamBLL(); bool hasTrainClass = objBll.GetExam(Convert.ToInt32(strId)).HasTrainClass; if (hasTrainClass) { ViewState["HasTrainClass"] = "1"; } else { ViewState["HasTrainClass"] = "0"; } } BindChoosedGrid(ViewState["ChooseId"].ToString()); } string strRefreshArrange = Request.Form.Get("RefreshArrange"); if (strRefreshArrange != "" && strRefreshArrange != null) { BindChoosedGrid(ViewState["ChooseId"].ToString()); OracleAccess db = new OracleAccess(); string strSql; if (CheckIsAllArrange()) { strSql = " update Random_Exam set Is_All_Arrange=1 where Random_Exam_ID=" + Request.QueryString.Get("id"); db.ExecuteNonQuery(strSql); } } if (Request.Form.Get("StudentInfo") != null && Request.Form.Get("StudentInfo") != "") { DownloadStudentInfoExcel(); } }
protected void FillPaper() { // QueryString id stands for EXAM_RESULT_ID string strId = Request.QueryString.Get("id"); string orgid = Request.QueryString.Get("orgid"); // Not pass id if (string.IsNullOrEmpty(strId)) { SessionSet.PageMessage = "参数错误!"; return; } RandomExamResultBLL randomExamResultBLL = new RandomExamResultBLL(); RandomExamResult randomExamResult = new RandomExamResult(); if (ViewState["NowOrgID"].ToString() != orgid) { randomExamResult = randomExamResultBLL.GetRandomExamResultByOrgID(int.Parse(strId), int.Parse(orgid)); } else { randomExamResult = randomExamResultBLL.GetRandomExamResultTemp(int.Parse(strId)); } int RandomExamId = randomExamResult.RandomExamId; int randomExamResultId = int.Parse(strId); OracleAccess db = new OracleAccess(); RandomExamBLL objBll = new RandomExamBLL(); int year = objBll.GetExam(RandomExamId).BeginTime.Year; RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); RandomExamResultAnswerBLL randomExamResultAnswerBLL = new RandomExamResultAnswerBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId); IList <RandomExamResultAnswer> examResultAnswers = new List <RandomExamResultAnswer>(); if (ViewState["NowOrgID"].ToString() != orgid) { examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswersByOrgID(int.Parse(strId), int.Parse(orgid)); } else { examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswers(randomExamResultId); } int z = 1; if (randomExamSubjects != null) { for (int i = 0; i < randomExamSubjects.Count; i++) { RandomExamSubject paperSubject = randomExamSubjects[i]; IList <RandomExamItem> PaperItems = new List <RandomExamItem>(); if (ViewState["NowOrgID"].ToString() != orgid) { PaperItems = randomItemBLL.GetItemsByOrgID(paperSubject.RandomExamSubjectId, randomExamResultId, int.Parse(orgid), year); } else { PaperItems = randomItemBLL.GetItems(paperSubject.RandomExamSubjectId, randomExamResultId, year); } Response.Write("<table width='100%'>"); Response.Write(" <tr > <td class='ExamBigTitle' >"); Response.Write(" " + GetNo(i) + ""); Response.Write(". " + paperSubject.SubjectName + ""); Response.Write(" (共" + paperSubject.ItemCount + "题,共" + System.String.Format("{0:0.##}", paperSubject.ItemCount * paperSubject.UnitScore) + "分)</td></tr >"); if (PaperItems != null) { for (int j = 0; j < PaperItems.Count; j++) { RandomExamItem paperItem = PaperItems[j]; int k = j + 1; if (paperItem.TypeId != 5) { z = 1; Response.Write("<tr > <td class='ExamResultItem'> " + k + ". " + paperItem.Content + " (" + System.String.Format("{0:0.##}", paperSubject.UnitScore) + "分)</td></tr >"); } else { string strSql = "select * from Random_Exam_Item_" + year + " where Item_ID='" + paperItem.ItemId + "' and Random_Exam_ID=" + RandomExamId; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; IList <RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(Convert.ToInt32(dr["Parent_Item_ID"]), RandomExamId, year); Response.Write("<tr > <td class='ExamResultItem'> (" + z + "). " + paperItem.Content + " (" + System.String.Format("{0:0.##}", (decimal)paperSubject.UnitScore / (decimal)randomExamItems.Count) + "分)</td></tr >"); z++; } // 组织用户答案 RandomExamResultAnswer theExamResultAnswer = null; string[] strUserAnswers = new string[0]; string strUserAnswer = string.Empty; foreach (RandomExamResultAnswer resultAnswer in examResultAnswers) { if (resultAnswer.RandomExamItemId == paperItem.RandomExamItemId) { theExamResultAnswer = resultAnswer; break; } } // 若子表无记录,结束页面输出 if (theExamResultAnswer == null) { SessionSet.PageMessage = "数据错误!"; } // 否则组织考生答案 if (theExamResultAnswer.Answer != null || theExamResultAnswer.Answer == string.Empty) { strUserAnswers = theExamResultAnswer.Answer.Split(new char[] { '|' }); } for (int n = 0; n < strUserAnswers.Length; n++) { string strN = intToString(int.Parse(strUserAnswers[n]) + 1); if (n == 0) { strUserAnswer += strN; } else { strUserAnswer += "," + strN; } } //多选 if (paperSubject.ItemTypeId == 2) { string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); Response.Write(" <tr ><td class='ExamItemAnswer'> " + strN + "." + strAnswer[n] + "</td></tr >"); } } else if (paperSubject.ItemTypeId == 1 || paperSubject.ItemTypeId == 3 || paperItem.TypeId == 5) { //单选 string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); Response.Write("<tr > <td class='ExamItemAnswer'> " + strN + "." + strAnswer[n] + "</td></tr >"); } } if (paperSubject.ItemTypeId == 1 || paperSubject.ItemTypeId == 2 || paperSubject.ItemTypeId == 3 || paperItem.TypeId == 5) { // 组织正确答案 string[] strRightAnswers = paperItem.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n = 0; n < strRightAnswers.Length; n++) { string strN = intToString(int.Parse(strRightAnswers[n]) + 1); if (n == 0) { strRightAnswer += strN; } else { strRightAnswer += "," + strN; } } string strScore = "0"; if (paperItem.TypeId == 5) { if (strRightAnswer == strUserAnswer) { strScore = System.String.Format("{0:0.##}", paperItem.Score); } } else { if (strRightAnswer == strUserAnswer) { strScore = System.String.Format("{0:0.##}", paperSubject.UnitScore); } } if (strScore == "0") { Response.Write(" <tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-0' name='span-" + paperItem.RandomExamItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-1' name='span-" + paperItem.RandomExamItemId + "'>" + strUserAnswer + "</span> 得分:" + strScore + "</td></tr>"); } else { Response.Write(" <tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-0' name='span-" + paperItem.RandomExamItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-1' name='span-" + paperItem.RandomExamItemId + "'>" + strUserAnswer + "</span> 得分:" + strScore + "</td></tr>"); } } } } Response.Write(" </table> "); } } else { SessionSet.PageMessage = "数据错误!"; return; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (PrjPub.CurrentLoginUser == null) { Response.Redirect("/RailExamBao/Common/Error.aspx?error=Session过期请重新登录本系统!"); return; } ViewState["mode"] = Request.QueryString.Get("mode"); ViewState["startmode"] = Request.QueryString.Get("startmode"); hfMode.Value = ViewState["mode"].ToString(); if (ViewState["mode"].ToString() == "ReadOnly") { btnInput.Enabled = false; } string strId = Request.QueryString.Get("id"); if (!string.IsNullOrEmpty(strId)) { HfRandomExamid.Value = strId; RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam RandomExam = randomExamBLL.GetExam(int.Parse(strId)); if (RandomExam != null) { txtPaperName.Text = RandomExam.ExamName; } ItemTypeBLL objTypeBll = new ItemTypeBLL(); IList <ItemType> objTypeList = objTypeBll.GetItemTypes(); foreach (ItemType objType in objTypeList) { if (RandomExam.IsComputerExam) { if (objType.ItemTypeId > PrjPub.ITEMTYPE_JUDGE) { continue; } } ListItem item = new ListItem(); item.Text = objType.TypeName; item.Value = objType.ItemTypeId.ToString(); lbType.Items.Add(item); } BindGrid(); } } else { string strDeleteID = Request.Form.Get("DeleteID"); if (!string.IsNullOrEmpty(strDeleteID)) { int nID = Int32.Parse(strDeleteID); RandomExamSubjectBLL RandomExamSubjectBLL = new RandomExamSubjectBLL(); RandomExamSubjectBLL.DeleteRandomExamSubject(nID); BindGrid(); } } }
protected void FillPaper() { // QueryString id stands for EXAM_RESULT_ID string strId = Request.QueryString.Get("id"); string orgid = Request.QueryString.Get("orgid"); // Not pass id if (string.IsNullOrEmpty(strId)) { SessionSet.PageMessage = "参数错误!"; return; } RandomExamResultBLL randomExamResultBLL = new RandomExamResultBLL(); RandomExamResult randomExamResult = new RandomExamResult(); randomExamResult = randomExamResultBLL.GetRandomExamResultStation(int.Parse(strId)); int RandomExamId = randomExamResult.RandomExamId; int randomExamResultId = int.Parse(strId); RandomExamBLL objBll = new RandomExamBLL(); int year = objBll.GetExam(RandomExamId).BeginTime.Year; RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId); //RandomExamResultAnswerBLL randomExamResultAnswerBLL = new RandomExamResultAnswerBLL(); //IList<RandomExamResultAnswer> examResultAnswers = new List<RandomExamResultAnswer>(); //if (ViewState["NowOrgID"].ToString() != orgid) //{ // examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswersStation(randomExamResultId); //} //else //{ // examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswers(randomExamResultId); //} IList <RandomExamItem> TotalItems = new List <RandomExamItem>(); //按年取出每张试卷的Random_Exam_Item_Year 表中的记录 if (ViewState["NowOrgID"].ToString() != orgid) { TotalItems = randomItemBLL.GetItemsStation(0, randomExamResultId, year); } else { TotalItems = randomItemBLL.GetItems(0, randomExamResultId, year); } OracleAccess db = new OracleAccess(); //按考试取出每张试卷的完形填空子题 string strSql = "select * from Random_Exam_Item_" + year + " where Type_ID=" + PrjPub.ITEMTYPE_FILLBLANKDETAIL + " and Random_Exam_ID=" + RandomExamId; DataTable dtDetail = db.RunSqlDataSet(strSql).Tables[0]; //按考试取出每张试卷的完形填空主题 //strSql = "select * from Random_Exam_Item_" + year + " where Type_ID="+ PrjPub.ITEMTYPE_FILLBLANK +" and Random_Exam_ID=" + RandomExamId; //DataTable dt= db.RunSqlDataSet(strSql).Tables[0]; int z = 1; int hasyear = 0; if (randomExamSubjects != null) { for (int i = 0; i < randomExamSubjects.Count; i++) { RandomExamSubject paperSubject = randomExamSubjects[i]; IList <RandomExamItem> PaperItems = new List <RandomExamItem>(); PaperItems = GetSubjectItems(TotalItems, paperSubject.RandomExamSubjectId); if (ViewState["NowOrgID"].ToString() != orgid) { //PaperItems = randomItemBLL.GetItemsStation(paperSubject.RandomExamSubjectId, randomExamResultId, year); hasyear = 1; } else { //PaperItems = randomItemBLL.GetItems(paperSubject.RandomExamSubjectId, randomExamResultId, year); hasyear = 0; } Response.Write("<table width='100%'>"); Response.Write(" <tr > <td class='ExamBigTitle' >"); Response.Write(" " + GetNo(i) + ""); Response.Write(". " + paperSubject.SubjectName + ""); Response.Write(" (共" + paperSubject.ItemCount + "题,共" + System.String.Format("{0:0.##}", paperSubject.ItemCount * paperSubject.UnitScore) + "分)</td></tr >"); if (PaperItems != null) { int x = 1; for (int j = 0; j < PaperItems.Count; j++) { RandomExamItem paperItem = PaperItems[j]; int k = j + 1; if (paperItem.TypeId != 5) { if (paperItem.TypeId == 4) { k = x; x++; } z = 1; Response.Write("<tr > <td class='ExamResultItem'><a name='Test" + i + j + "' id='Test" + i + j + "'></a> " + k + ". " + paperItem.Content + " (" + System.String.Format("{0:0.##}", paperSubject.UnitScore) + "分)</td></tr >"); } else { //string strSql = "select * from Random_Exam_Item_" + year + " where Item_ID='" + // paperItem.ItemId + "' and Random_Exam_ID=" + RandomExamId; //DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; //IList<RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(Convert.ToInt32(dr["Parent_Item_ID"]), RandomExamId, year); //查找当前完型子题的主题ID DataRow[] drsDetail = dtDetail.Select("Item_ID=" + paperItem.ItemId); int detailCount = 0; if (drsDetail.Length > 0) { //通过完形填空的主题ID查找完形填空的子题个数,为计算每个子题分数做准备 DataRow[] drs = dtDetail.Select("Parent_Item_ID=" + drsDetail[0]["Parent_Item_ID"]); detailCount = drs.Length; } Response.Write("<tr > <td class='ExamResultItem'><a name='Test" + i + j + "' id='Test" + i + j + "'></a> "//+ z + "). " + paperItem.Content + " (" + System.String.Format("{0:0.##}", (decimal)paperSubject.UnitScore / (decimal)detailCount) + "分)</td></tr >"); z++; } string[] strUserAnswers = new string[0]; string strUserAnswer = string.Empty; // 组织用户答案 //RandomExamResultAnswer theExamResultAnswer = null; //foreach (RandomExamResultAnswer resultAnswer in examResultAnswers) //{ // if (resultAnswer.RandomExamItemId == paperItem.RandomExamItemId) // { // theExamResultAnswer = resultAnswer; // break; // } //} //// 若子表无记录,结束页面输出 //if (theExamResultAnswer == null) //{ // SessionSet.PageMessage = "数据错误!"; //} //// 否则组织考生答案 //if (theExamResultAnswer.Answer != null || theExamResultAnswer.Answer == string.Empty) //{ // strUserAnswers = theExamResultAnswer.Answer.Split(new char[] { '|' }); //} if (paperItem.Answer == null) { SessionSet.PageMessage = "数据错误!"; } if (!string.IsNullOrEmpty(paperItem.Answer)) { strUserAnswers = paperItem.Answer.Split(new char[] { '|' }); } for (int n = 0; n < strUserAnswers.Length; n++) { string strN = intToString(int.Parse(strUserAnswers[n]) + 1); if (n == 0) { strUserAnswer += strN; } else { strUserAnswer += "," + strN; } } //多选 if (paperSubject.ItemTypeId == PrjPub.ITEMTYPE_MULTICHOOSE) { string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + paperItem.RandomExamItemId + "-" + i.ToString() + "-" + j.ToString() + "-" + n.ToString(); string strName = i.ToString() + j.ToString(); Response.Write(" <tr ><td class='ExamItemAnswer'> " + strN + "." + strAnswer[n] + "</td></tr >"); } } else if (paperSubject.ItemTypeId == PrjPub.ITEMTYPE_JUDGE || paperSubject.ItemTypeId == PrjPub.ITEMTYPE_SINGLECHOOSE || paperItem.TypeId == 5) { //单选 string[] strAnswer = paperItem.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); Response.Write("<tr > <td class='ExamItemAnswer'> " + strN + "." + strAnswer[n] + "</td></tr >"); } } if (paperSubject.ItemTypeId == 1 || paperSubject.ItemTypeId == 2 || paperSubject.ItemTypeId == 3 || paperItem.TypeId == 5) { // 组织正确答案 string[] strRightAnswers = paperItem.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n = 0; n < strRightAnswers.Length; n++) { string strN = intToString(int.Parse(strRightAnswers[n]) + 1); if (n == 0) { strRightAnswer += strN; } else { strRightAnswer += "," + strN; } } string strScore = "0"; string couldScore = "0"; if (paperItem.TypeId == 5) { if (strRightAnswer == strUserAnswer) { strScore = System.String.Format("{0:0.##}", paperItem.Score); } couldScore = paperItem.Score.ToString(); } else { if (strRightAnswer == strUserAnswer) { strScore = System.String.Format("{0:0.##}", paperSubject.UnitScore); } couldScore = paperSubject.UnitScore.ToString(); } if (strScore == "0") { if (hfLoginEmployeeID.Value == "0") { string strFirst = @""""; Response.Write(" <tr><td id='span-" + paperItem.RandomExamItemId + "' class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-0' name='span-" + paperItem.RandomExamItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-1' name='span-" + paperItem.RandomExamItemId + "'>" + strUserAnswer + "</span> 得分:" + "<span id='span-" + paperItem.RandomExamItemId + "-2'>" + strScore + "</span>" + " <a id='a-" + paperItem.RandomExamItemId + "' onclick=" + strFirst + "updateScore(" + randomExamResultId + "," + paperItem.RandomExamItemId + "," + couldScore + ",'" + paperItem.StandardAnswer + "'," + hasyear + ")" + strFirst + " href='#Test" + i + j + "' style='cursor: hand;'>更改考生答案</a></td></tr>"); } else { Response.Write(" <tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-0' name='span-" + paperItem.RandomExamItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-1' name='span-" + paperItem.RandomExamItemId + "'>" + strUserAnswer + "</span> 得分:" + "<span id='span-" + paperItem.RandomExamItemId + "-2'>" + strScore + "</span></td></tr>"); } } else { Response.Write(" <tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-0' name='span-" + paperItem.RandomExamItemId + "'>" + strRightAnswer + "</span> 考生答案:" + "<span id='span-" + paperItem.RandomExamItemId + "-1' name='span-" + paperItem.RandomExamItemId + "'>" + strUserAnswer + "</span> 得分:" + strScore + "</td></tr>"); } } } } Response.Write(" </table> "); } } else { SessionSet.PageMessage = "数据错误!"; return; } }
protected void FillHeading(string strId, string orgid) { RandomExamResultBLL randomExamResultBLL = new RandomExamResultBLL(); RandomExamResult randomExamResult = new RandomExamResult(); randomExamResult = randomExamResultBLL.GetRandomExamResultStation(int.Parse(strId)); OracleAccess db = new OracleAccess(); string strSql = "select a.*" + " from Random_Exam_Result_Detail a" + " where a.Random_Exam_Result_ID=" + randomExamResult.RandomExamResultId + " and Employee_ID=" + randomExamResult.ExamineeId + " and Random_Exam_ID=" + randomExamResult.RandomExamId; DataTable dtExam = db.RunSqlDataSet(strSql).Tables[0]; if (dtExam.Rows.Count == 0) { strSql = "select a.*" + " from Random_Exam_Result_Detail_Temp a" + " where a.Random_Exam_Result_ID=" + randomExamResult.RandomExamResultId + " and Employee_ID=" + randomExamResult.ExamineeId + " and Random_Exam_ID=" + randomExamResult.RandomExamId; dtExam = db.RunSqlDataSet(strSql).Tables[0]; } if (dtExam.Rows.Count > 0) { bool isExists = Directory.Exists(Server.MapPath("/RailExamBao/Online/Photo/" + randomExamResult.RandomExamId + "/")); DataRow drExam = dtExam.Rows[0]; lblFignerDate.Text = drExam["FingerPrint_Date"] == DBNull.Value ? string.Empty : Convert.ToDateTime(drExam["FingerPrint_Date"]).ToString("yyyy-MM-dd HH:mm"); lblPhotoDate1.Text = drExam["Photo1_Date"] == DBNull.Value ? string.Empty : Convert.ToDateTime(drExam["Photo1_Date"]).ToString("yyyy-MM-dd HH:mm"); lblPhotoDate2.Text = drExam["Photo2_Date"] == DBNull.Value ? string.Empty : Convert.ToDateTime(drExam["Photo2_Date"]).ToString("yyyy-MM-dd HH:mm"); lblPhotoDate3.Text = drExam["Photo3_Date"] == DBNull.Value ? string.Empty : Convert.ToDateTime(drExam["Photo3_Date"]).ToString("yyyy-MM-dd HH:mm"); string filepath = Server.MapPath("/RailExamBao/Online/Photo/" + randomExamResult.RandomExamId + "/") + randomExamResult.ExamineeId + "_" + randomExamResult.RandomExamResultId + "_"; string path = "../Online/Photo/" + randomExamResult.RandomExamId + "/" + randomExamResult.ExamineeId + "_" + randomExamResult.RandomExamResultId + "_"; if (PrjPub.IsServerCenter && isExists) { if (File.Exists(filepath + "00.jpg")) { fignerImage.ImageUrl = path + "00.jpg"; } else { fignerImage.ImageUrl = "../images/empty.jpg"; } } else { if (drExam["FingerPrint"] != DBNull.Value) { fignerImage.ImageUrl = "ShowResultImage.aspx?resultDetailID=" + drExam["Random_Exam_Result_Detail_ID"] + "&typeID=0"; } else { fignerImage.ImageUrl = "../images/empty.jpg"; } } DataSet ds = Pub.GetPhotoDateSet(randomExamResult.ExamineeId.ToString()); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0] != DBNull.Value) { picImage.ImageUrl = "../RandomExamTai/ShowImage.aspx?EmployeeID=" + randomExamResult.ExamineeId; } else { picImage.ImageUrl = "../images/empty.jpg"; } } else { picImage.ImageUrl = "../images/empty.jpg"; } if (PrjPub.IsServerCenter && isExists) { if (File.Exists(filepath + "01.jpg")) { photoImage1.ImageUrl = path + "01.jpg"; } else { photoImage1.ImageUrl = "../images/empty.jpg"; } } else { if (drExam["Photo1"] != DBNull.Value) { photoImage1.ImageUrl = "ShowResultImage.aspx?resultDetailID=" + drExam["Random_Exam_Result_Detail_ID"] + "&typeID=1"; } else { photoImage1.ImageUrl = "../images/empty.jpg"; } } if (PrjPub.IsServerCenter && isExists) { if (File.Exists(filepath + "02.jpg")) { photoImage2.ImageUrl = path + "02.jpg"; } else { photoImage2.ImageUrl = "../images/empty.jpg"; } } else { if (drExam["Photo2"] != DBNull.Value) { photoImage2.ImageUrl = "ShowResultImage.aspx?resultDetailID=" + drExam["Random_Exam_Result_Detail_ID"] + "&typeID=2"; } else { photoImage2.ImageUrl = "../images/empty.jpg"; } } if (PrjPub.IsServerCenter && isExists) { if (File.Exists(filepath + "03.jpg")) { photoImage3.ImageUrl = path + "03.jpg"; } else { photoImage3.ImageUrl = "../images/empty.jpg"; } } else { if (drExam["Photo3"] != DBNull.Value) { photoImage3.ImageUrl = "ShowResultImage.aspx?resultDetailID=" + drExam["Random_Exam_Result_Detail_ID"] + "&typeID=3"; } else { photoImage3.ImageUrl = "../images/empty.jpg"; } } } else { fignerImage.ImageUrl = "../images/empty.jpg"; DataSet ds = Pub.GetPhotoDateSet(randomExamResult.ExamineeId.ToString()); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0] != DBNull.Value) { picImage.ImageUrl = "../RandomExamTai/ShowImage.aspx?EmployeeID=" + randomExamResult.ExamineeId; } else { picImage.ImageUrl = "../images/empty.jpg"; } } else { picImage.ImageUrl = "../images/empty.jpg"; } photoImage1.ImageUrl = "../images/empty.jpg"; photoImage2.ImageUrl = "../images/empty.jpg"; photoImage3.ImageUrl = "../images/empty.jpg"; } string strOrgName = randomExamResult.OrganizationName; string strStationName = ""; string strOrgName1 = ""; int n = strOrgName.IndexOf("-"); if (n != -1) { strStationName = strOrgName.Substring(0, n); strOrgName1 = strOrgName.Substring(n + 1); } else { strStationName = strOrgName; strOrgName1 = ""; } lblOrg.Text = strStationName; lblWorkShop.Text = strOrgName1; lblPost.Text = randomExamResult.PostName; lblName.Text = randomExamResult.ExamineeName; lblTime.Text = randomExamResult.BeginDateTime.ToString("yyyy-MM-dd HH:mm"); lblScore.Text = System.String.Format("{0:0.##}", randomExamResult.Score); int RandomExamId = randomExamResult.RandomExamId; RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(RandomExamId); if (randomExam != null) { lblTitle.Text = randomExam.ExamName; } RandomExamSubjectBLL randomExamSubjectBLL = new RandomExamSubjectBLL(); IList <RailExam.Model.RandomExamSubject> RandomExamSubjects = randomExamSubjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId); int nItemCount = 0; decimal nTotalScore = 0; for (int i = 0; i < RandomExamSubjects.Count; i++) { nItemCount += RandomExamSubjects[i].ItemCount; nTotalScore += RandomExamSubjects[i].ItemCount * RandomExamSubjects[i].UnitScore; } lblTitleRight.Text = "总共" + nItemCount + "题,共" + System.String.Format("{0:0.##}", nTotalScore) + "分"; }
protected void btnSave_Click(object sender, ImageClickEventArgs e) { string strId = Request.QueryString.Get("id"); string strMode = ViewState["mode"].ToString(); string strStartMode = ViewState["startmode"].ToString(); if (ViewState["mode"].ToString() == "ReadOnly") { if (strStartMode == "Edit") { //Response.Redirect("/RailExamBao/RandomExamOther/RandomExamStudent.aspx?startmode=Edit&mode=Edit&id=" + strId); Response.Redirect("/RailExamBao/RandomExam/SelectEmployeeDetailNew.aspx?startmode=Edit&mode=Edit&id=" + strId); return; } else { Response.Redirect("/RailExamBao/RandomExam/SelectEmployeeDetailNew.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strId); return; } } RandomExamStrategyBLL psbcBll = new RandomExamStrategyBLL(); int Ncount = psbcBll.GetRandomExamStrategysByExamID(int.Parse(strId)).Count; if (Ncount == 0) { SessionSet.PageMessage = "请添加策略!"; return; } RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); RandomExamStrategyBLL strategyBLL = new RandomExamStrategyBLL(); ItemBLL itemBLL = new ItemBLL(); RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId)); int ExamItemCounts = 0; for (int i = 0; i < randomExamSubjects.Count; i++) { int nSubjectId = randomExamSubjects[i].RandomExamSubjectId; decimal nTotalItemCount = randomExamSubjects[i].ItemCount; IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); int nItemCount = 0; for (int j = 0; j < strategys.Count; j++) { nItemCount += strategys[j].ItemCount; } ExamItemCounts += nItemCount; if (nItemCount != nTotalItemCount) { SessionSet.PageMessage = "大题设定的试题数和取题范围设定的总题数不相等,请重新设置!"; return; } } if (ExamItemCounts == 0) { SessionSet.PageMessage = "考试的总题数不能为0,请重新设置!"; return; } //获取考试信息 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId)); int year = obj.BeginTime.Year; //删除可能的取题范围 randomItemBLL.DeleteItems(int.Parse(strId), year); Hashtable htItemID = new Hashtable(); Hashtable htChapter = new Hashtable(); for (int i = 0; i < randomExamSubjects.Count; i++) { IList <RailExam.Model.Item> itemList = new List <RailExam.Model.Item>(); int nSubjectId = randomExamSubjects[i].RandomExamSubjectId; decimal nUnitScore = randomExamSubjects[i].UnitScore; IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); for (int k = 0; k < strategys.Count; k++) { //策略 int nChapterId = strategys[k].RangeId; int nRangeType = strategys[k].RangeType; int typeId = strategys[k].ItemTypeId; int StrategyId = strategys[k].RandomExamStrategyId; int strDiffId = strategys[k].ItemDifficultyID; int strMaxDiffId = strategys[k].MaxItemDifficultyID; string excludesChapterID = strategys[k].ExcludeChapterId; IList <RailExam.Model.Item> itemListTemp = new List <RailExam.Model.Item>(); itemListTemp = itemBLL.GetItemsByStrategyNew(nRangeType, strDiffId, strMaxDiffId, nChapterId, typeId, excludesChapterID); if (itemListTemp.Count < strategys[k].ItemCount) { SessionSet.PageMessage = "大题" + (i + 1).ToString() + "在设定的取题范围内的试题量不够,请重新设置取题范围!"; return; } for (int m = 0; m < itemListTemp.Count; m++) { itemListTemp[m].StrategyId = StrategyId; if (itemListTemp[m].StatusId == 1) { if (htChapter.ContainsKey(itemListTemp[m].ChapterId)) { ArrayList objList = (ArrayList)htChapter[itemListTemp[m].ChapterId]; if (objList.IndexOf(itemListTemp[m].KeyWord) < 0) { itemList.Add(itemListTemp[m]); if (itemListTemp[m].KeyWord != "" && itemListTemp[m].KeyWord != null) { objList.Add(itemListTemp[m].KeyWord); } } } else { ArrayList objList = new ArrayList(); if (itemListTemp[m].KeyWord != "" && itemListTemp[m].KeyWord != null) { objList.Add(itemListTemp[m].KeyWord); } itemList.Add(itemListTemp[m]); htChapter.Add(itemListTemp[m].ChapterId, objList); } } } } if (itemList.Count < randomExamSubjects[i].ItemCount) { SessionSet.PageMessage = "大题" + (i + 1).ToString() + "在设定的取题范围内符合要求的试题量不够,请重新设置取题范围!"; return; } IList <RandomExamItem> randomExamItems = new List <RandomExamItem>(); int n = 0; foreach (RailExam.Model.Item item in itemList) { if (string.IsNullOrEmpty(item.StandardAnswer) && (item.TypeId == PrjPub.ITEMTYPE_SINGLECHOOSE || item.TypeId == PrjPub.ITEMTYPE_MULTICHOOSE || item.TypeId == PrjPub.ITEMTYPE_JUDGE)) { n = n + 1; break; } if (!htItemID.ContainsKey(item.ItemId)) { htItemID.Add(item.ItemId, item.ItemId); } else { continue; } RandomExamItem paperItem = new RandomExamItem(); paperItem.SubjectId = nSubjectId; paperItem.StrategyId = item.StrategyId; paperItem.RandomExamId = int.Parse(strId); paperItem.AnswerCount = item.AnswerCount; paperItem.BookId = item.BookId; paperItem.CategoryId = item.CategoryId; paperItem.ChapterId = item.ChapterId; paperItem.CompleteTime = item.CompleteTime; paperItem.Content = item.Content; paperItem.CreatePerson = item.CreatePerson; paperItem.CreateTime = item.CreateTime; paperItem.Description = item.Description; paperItem.DifficultyId = item.DifficultyId; paperItem.ItemId = item.ItemId; paperItem.Memo = item.Memo; paperItem.OrganizationId = item.OrganizationId; paperItem.OutDateDate = item.OutDateDate; paperItem.Score = nUnitScore; paperItem.SelectAnswer = item.SelectAnswer; paperItem.Source = item.Source; paperItem.StandardAnswer = item.StandardAnswer; paperItem.StatusId = item.StatusId; paperItem.TypeId = item.TypeId; paperItem.UsedCount = item.UsedCount; paperItem.Version = item.Version; randomExamItems.Add(paperItem); } if (n == 1) { SessionSet.PageMessage = "大题" + (i + 1).ToString() + "有无标准答案的试题,请重新设置取题范围!"; return; } if (randomExamItems.Count > 0) { randomItemBLL.AddItem(randomExamItems, year); } } /* * Hashtable hashTableItemIds = new Hashtable(); * for (int i = 0; i < randomExamSubjects.Count; i++) * { * int nSubjectId = randomExamSubjects[i].RandomExamSubjectId; * //int nItemCount = randomExamSubjects[i].ItemCount; * * IList<RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); * for (int j = 0; j < strategys.Count; j++) * { * int nStrategyId = strategys[j].RandomExamStrategyId; * int nItemCount = strategys[j].ItemCount; * * IList<RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, year); * Random ObjRandom = new Random(); * Hashtable hashTable = new Hashtable(); * Hashtable hashTableCount = new Hashtable(); * while (hashTable.Count < nItemCount) * { * int k = ObjRandom.Next(itemList.Count); * hashTableCount[k] = k; * int itemID = itemList[k].ItemId; * if (!hashTableItemIds.ContainsKey(itemID)) * { * hashTable[itemID] = itemID; * hashTableItemIds[itemID] = itemID; * } * * if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount) * { * SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!"; * return; * } * } * } * }*/ Response.Redirect("/RailExamBao/RandomExam/SelectEmployeeDetailNew.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strId); }
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 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; } }
protected void FillHeading(string strId, string orgid) { RandomExamResultBLL randomExamResultBLL = new RandomExamResultBLL(); RandomExamResult randomExamResult = new RandomExamResult(); if (ViewState["NowOrgID"].ToString() != orgid) { randomExamResult = randomExamResultBLL.GetRandomExamResultByOrgID(int.Parse(strId), int.Parse(orgid)); } else { randomExamResult = randomExamResultBLL.GetRandomExamResult(int.Parse(strId)); } string strOrgName = randomExamResult.OrganizationName; string strStationName = ""; string strOrgName1 = ""; int n = strOrgName.IndexOf("-"); if (n != -1) { strStationName = strOrgName.Substring(0, n); strOrgName1 = strOrgName.Substring(n + 1); } else { strStationName = strOrgName; strOrgName1 = ""; } lblOrg.Text = strStationName; lblWorkShop.Text = strOrgName1; lblPost.Text = randomExamResult.PostName; lblName.Text = randomExamResult.ExamineeName; lblTime.Text = randomExamResult.BeginDateTime.ToString("yyyy-MM-dd HH:mm"); lblScore.Text = System.String.Format("{0:0.##}", randomExamResult.Score); int RandomExamId = randomExamResult.RandomExamId; RandomExamBLL randomExamBLL = new RandomExamBLL(); RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(RandomExamId); if (randomExam != null) { lblTitle.Text = randomExam.ExamName; } RandomExamSubjectBLL randomExamSubjectBLL = new RandomExamSubjectBLL(); IList <RailExam.Model.RandomExamSubject> RandomExamSubjects = randomExamSubjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId); int nItemCount = 0; decimal nTotalScore = 0; for (int i = 0; i < RandomExamSubjects.Count; i++) { nItemCount += RandomExamSubjects[i].ItemCount; nTotalScore += RandomExamSubjects[i].ItemCount * RandomExamSubjects[i].UnitScore; } lblTitleRight.Text = "总共" + nItemCount + "题,共" + System.String.Format("{0:0.##}", nTotalScore) + "分"; }
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); } }
protected void btnExcel_Click(object sender, EventArgs e) { RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objRandomExam = objBll.GetExam(Convert.ToInt32(Request.QueryString.Get("id"))); SpreadsheetClass xlsheet = new SpreadsheetClass(); Worksheet ws = (Worksheet)xlsheet.Worksheets[1]; ws.Cells.Font.set_Size(10); ws.Cells.Font.set_Name("宋体"); ws.Cells[1, 1] = objRandomExam.ExamName + " 参加考试学员名单"; Range rang1 = ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 7]); rang1.set_MergeCells(true); rang1.set_HorizontalAlignment(XlHAlign.xlHAlignCenter); rang1.Font.set_Name("宋体"); //write headertext ws.Cells[2, 1] = "序号"; ((Range)ws.Cells[2, 1]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); ws.Cells[2, 2] = "姓名"; ws.get_Range(ws.Cells[2, 2], ws.Cells[2, 2]).set_MergeCells(true); ws.get_Range(ws.Cells[2, 2], ws.Cells[2, 2]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); if (PrjPub.IsWuhan()) { ws.Cells[2, 3] = "员工编码"; } else { ws.Cells[2, 3] = "工资编号"; } ws.get_Range(ws.Cells[2, 3], ws.Cells[2, 3]).set_MergeCells(true); ws.get_Range(ws.Cells[2, 3], ws.Cells[2, 3]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); ws.Cells[2, 4] = "职名"; ws.get_Range(ws.Cells[2, 4], ws.Cells[2, 4]).set_MergeCells(true); ws.get_Range(ws.Cells[2, 4], ws.Cells[2, 4]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); ws.Cells[2, 5] = "组织机构"; ws.get_Range(ws.Cells[2, 5], ws.Cells[2, 7]).set_MergeCells(true); ws.get_Range(ws.Cells[2, 5], ws.Cells[2, 7]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); ws.Cells[2, 8] = "考试地点"; ws.get_Range(ws.Cells[2, 8], ws.Cells[2, 10]).set_MergeCells(true); ws.get_Range(ws.Cells[2, 8], ws.Cells[2, 10]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); for (int j = 0; j < gvChoose.Rows.Count; j++) { ws.Cells[3 + j, 1] = ((Label)gvChoose.Rows[j].FindControl("lblNo")).Text; ws.Cells[3 + j, 2] = ((Label)gvChoose.Rows[j].FindControl("LabelName")).Text; ws.get_Range(ws.Cells[3 + j, 2], ws.Cells[3 + j, 2]).set_MergeCells(true); ws.get_Range(ws.Cells[3 + j, 2], ws.Cells[3 + j, 2]).set_HorizontalAlignment(XlHAlign.xlHAlignLeft); ws.Cells[3 + j, 3] = "'" + ((Label)gvChoose.Rows[j].FindControl("LabelWorkNo")).Text; ws.get_Range(ws.Cells[3 + j, 3], ws.Cells[3 + j, 3]).set_MergeCells(true); ws.get_Range(ws.Cells[3 + j, 3], ws.Cells[3 + j, 3]).set_HorizontalAlignment(XlHAlign.xlHAlignLeft); ws.Cells[3 + j, 4] = ((Label)gvChoose.Rows[j].FindControl("LabelPostName")).Text; ws.get_Range(ws.Cells[3 + j, 4], ws.Cells[3 + j, 4]).set_MergeCells(true); ws.get_Range(ws.Cells[3 + j, 4], ws.Cells[3 + j, 4]).set_HorizontalAlignment(XlHAlign.xlHAlignLeft); ws.Cells[3 + j, 5] = ((Label)gvChoose.Rows[j].FindControl("Labelorgid")).Text; ws.get_Range(ws.Cells[3 + j, 5], ws.Cells[3 + j, 7]).set_MergeCells(true); ws.get_Range(ws.Cells[3 + j, 5], ws.Cells[3 + j, 7]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); ws.Cells[3 + j, 8] = ((Label)gvChoose.Rows[j].FindControl("lblComputeRoom")).Text; ws.get_Range(ws.Cells[3 + j, 8], ws.Cells[3 + j, 10]).set_MergeCells(true); ws.get_Range(ws.Cells[3 + j, 8], ws.Cells[3 + j, 10]).set_HorizontalAlignment(XlHAlign.xlHAlignCenter); } ws.Name = "1-1"; ws.Cells.Columns.AutoFit(); try { ((Worksheet)xlsheet.Worksheets[1]).Activate(); string path = Server.MapPath("../Excel/Excel.xls"); if (File.Exists(path)) { File.Delete(path); } xlsheet.Export(path, SheetExportActionEnum.ssExportActionNone, SheetExportFormat.ssExportAsAppropriate); FileInfo file = new FileInfo(path); this.Response.Clear(); this.Response.Buffer = true; this.Response.Charset = "utf-7"; this.Response.ContentEncoding = Encoding.UTF7; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 this.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(objRandomExam.ExamName + "参加考试学员名单") + ".xls"); // 添加头信息,指定文件大小,让浏览器能够显示下载进度 this.Response.AddHeader("Content-Length", file.Length.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 this.Response.ContentType = "application/ms-excel"; // 把文件流发送到客户端 this.Response.WriteFile(file.FullName); } catch { SessionSet.PageMessage = "系统错误,导出Excel文件失败!"; } }
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 Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //if (PrjPub.IsServerCenter && PrjPub.CurrentLoginUser.SuitRange != 1) //{ // HfUpdateRight.Value = "False"; // HfDeleteRight.Value = "False"; //} //else //{ // HfUpdateRight.Value = PrjPub.HasEditRight("新增考试").ToString(); // HfDeleteRight.Value = PrjPub.HasDeleteRight("新增考试").ToString(); //} hfRailSystemID.Value = PrjPub.GetRailSystemId().ToString(); if (PrjPub.CurrentLoginUser == null) { Response.Redirect("/RailExamBao/Common/Error.aspx?error=Session过期请重新登录本系统!"); return; } if (PrjPub.CurrentLoginUser.IsAdmin && PrjPub.CurrentLoginUser.UseType == 0) { hfIsAdmin.Value = "True"; } else { hfIsAdmin.Value = "False"; } if (PrjPub.HasEditRight("新增考试") && PrjPub.IsServerCenter) { HfUpdateRight.Value = "True"; } else { HfUpdateRight.Value = "False"; } if (PrjPub.HasDeleteRight("新增考试") && PrjPub.IsServerCenter) { HfDeleteRight.Value = "True"; } else { HfDeleteRight.Value = "False"; } ListItem item = new ListItem(); item.Value = Session["StationOrgID"].ToString(); item.Text = "--请选择--"; ddlOrg.Items.Add(item); if (PrjPub.IsServerCenter && PrjPub.CurrentLoginUser.UseType == 0 && PrjPub.CurrentLoginUser.IsAdmin) { ddlOrg.Visible = true; lblOrg.Visible = true; OrganizationBLL objOrgBll = new OrganizationBLL(); IList <Organization> objList = objOrgBll.GetOrganizationsByLevel(2); foreach (Organization organization in objList) { ListItem litem = new ListItem(); litem.Value = organization.OrganizationId.ToString(); litem.Text = organization.ShortName; ddlOrg.Items.Add(litem); } } else { ddlOrg.Visible = false; lblOrg.Visible = false; } hfOrgID.Value = PrjPub.CurrentLoginUser.StationOrgID.ToString(); HfExamCategoryId.Value = Request.QueryString.Get("id"); Grid1.DataBind(); } else { string strDeleteID = Request.Form.Get("DeleteID"); if (!string.IsNullOrEmpty(strDeleteID)) { //RandomExamResultBLL reBll = new RandomExamResultBLL(); //IList<RailExam.Model.RandomExamResult> examResults = reBll.GetRandomExamResultByExamID(int.Parse(strDeleteID)); //if (examResults.Count > 0) //{ // SessionSet.PageMessage = "已有考生参加考试,该考试不能被删除!"; // Grid1.DataBind(); // return; //} DeleteData(int.Parse(strDeleteID)); Grid1.DataBind(); } if (Request.Form.Get("Refresh") == "true") { Grid1.DataBind(); } if (Request.Form.Get("OutPut") != null && Request.Form.Get("OutPut") != string.Empty) { OutputWord(Request.Form.Get("OutPut")); } if (Request.Form.Get("ResetID") != null && Request.Form.Get("ResetID") != string.Empty) { Grid1.DataBind(); } if (Request.Form.Get("arrangeID") != null && Request.Form.Get("arrangeID") != string.Empty) { string strId = Request.Form.Get("arrangeID"); RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam objExam = objBll.GetExam(Convert.ToInt32(strId)); //if(objExam.HasPaper) //{ // SessionSet.PageMessage = "该考试已经生成试卷,不能重新安排微机教室!"; // Grid1.DataBind(); // return; //} if (!PrjPub.IsServerCenter) { Grid1.DataBind(); return; } if (PrjPub.CurrentLoginUser.RoleID != 1) { OracleAccess db = new OracleAccess(); RandomExamArrangeBLL arrangeBll = new RandomExamArrangeBLL(); IList <RandomExamArrange> arrangeList = arrangeBll.GetRandomExamArranges(Convert.ToInt32(strId)); if (arrangeList.Count == 0) { SessionSet.PageMessage = "该考试还未选择考生,不能安排微机教室!"; Grid1.DataBind(); return; } RandomExamArrange arrange = arrangeList[0]; bool hasOrg = false; string[] str = arrange.UserIds.Split(','); EmployeeBLL employeebll = new EmployeeBLL(); OrganizationBLL orgBll = new OrganizationBLL(); for (int i = 0; i < str.Length; i++) { Employee obj = employeebll.GetEmployee(Convert.ToInt32(str[i])); if (orgBll.GetStationOrgID(obj.OrgID) == PrjPub.CurrentLoginUser.StationOrgID) { hasOrg = true; break; } } if (!hasOrg) { SessionSet.PageMessage = "该考试没有本站段考生,无须安排微机教室!"; Grid1.DataBind(); return; } } Grid1.DataBind(); ClientScript.RegisterStartupScript(GetType(), "jsSelectFirstNode", @"showArrange(" + strId + ");", true); } } }
private void GetPaperAfter() { // 根据 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); ViewState["BeginTime"] = DateTime.Now.ToString(); string strId = Request.QueryString.Get("RandomExamID"); //获取当前考试的生成试卷的状态和次数 RandomExamBLL objBll = new RandomExamBLL(); RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId)); int year = obj.BeginTime.Year; int ExamCount = obj.MaxExamTimes; System.Threading.Thread.Sleep(10); string jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((1 * 100) / ((double)1) + "'); </script>"); Response.Write(jsBlock); Response.Flush(); if (!PrjPub.IsServerCenter) { RandomExamArrangeBLL objArrangeBll = new RandomExamArrangeBLL(); objArrangeBll.RefreshRandomExamArrange(); } //RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL(); //IList<RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId)); //string strChooseID = ""; //if (ExamArranges.Count > 0) //{ // strChooseID = ExamArranges[0].UserIds; //} //else //{ // strChooseID = ""; //} //RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL(); //IList<RandomExamResultCurrent> examResults = objResultCurrentBll.GetRandomExamResultInfo(Convert.ToInt32(strId)); //for (int i = 0; i < examResults.Count; i++) //{ // strChooseID = ("," + strChooseID + ",").Replace("," + examResults[i].ExamineeId + ",", ","); //} //strChooseID = strChooseID.TrimStart(',').TrimEnd(','); string strChooseID = Request.QueryString.Get("addIds"); if (strChooseID == string.Empty) { return; } string[] str = strChooseID.Split('|'); System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((2 * 100) / ((double)2) + "'); </script>"); Response.Write(jsBlock); Response.Flush(); OracleAccess db = new OracleAccess(); string strSql; RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL(); //定义全局答卷对象List IList <RandomExamResultAnswerCurrent> randomExamResultAnswersCurrentAll = new List <RandomExamResultAnswerCurrent>(); //定义一个考生一次答卷对象List IList <RandomExamResultAnswerCurrent> randomExamResultAnswers = null; System.Threading.Thread.Sleep(200); jsBlock = string.Empty; int progressNum = 1; for (int n = 1; n <= ExamCount; n++) { for (int m = 0; m < str.Length; m++) { RandomExamResultCurrentBLL randomExamResultBLL = new RandomExamResultCurrentBLL(); RandomExamResultCurrent randomExamResult = new RandomExamResultCurrent(); randomExamResult.RandomExamId = int.Parse(strId); randomExamResult.AutoScore = 0; randomExamResult.BeginDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.ExamTime = 0; randomExamResult.EndDateTime = DateTime.Parse(ViewState["BeginTime"].ToString()); randomExamResult.Score = 0; randomExamResult.OrganizationId = int.Parse(ConfigurationManager.AppSettings["StationID"]); randomExamResult.Memo = ""; randomExamResult.StatusId = 0; randomExamResult.AutoScore = 0; randomExamResult.CorrectRate = 0; randomExamResult.ExamineeId = int.Parse(str[m]); randomExamResult.ExamSeqNo = n; int nRandomExamResultPK = randomExamResultBLL.AddRandomExamResultCurrent(randomExamResult); ViewState["RandomExamResultPK"] = nRandomExamResultPK; strSql = "select a.* from Random_Exam_Arrange_Detail a " + " where ','||User_Ids||',' like '%," + str[m] + ",%' " + " and Random_Exam_ID=" + strId; DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0]; //strSql = "insert into Random_Exam_Result_Detail(Random_Exam_Result_Detail_ID," // + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID) " // + "values(Random_Exam_Result_Detail_SEQ.NextVal," // + nRandomExamResultPK + "," // + randomExamResult.RandomExamId + "," // + randomExamResult.ExamineeId + "," // + "0," + dr["Computer_Room_ID"] + ") "; //db.ExecuteNonQuery(strSql); strSql = "insert into Random_Exam_Result_Detail_Temp(Random_Exam_Result_Detail_ID," + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID,Is_Remove) " + "values(Random_Exam_Result_Detail_SEQ.NextVal," + nRandomExamResultPK + "," + randomExamResult.RandomExamId + "," + randomExamResult.ExamineeId + "," + "0," + dr["Computer_Room_ID"] + ",0) "; db.ExecuteNonQuery(strSql); RandomExamItemBLL randomItemBLL = new RandomExamItemBLL(); RandomExamSubjectBLL subjectBLL = new RandomExamSubjectBLL(); RandomExamStrategyBLL strategyBLL = new RandomExamStrategyBLL(); IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId)); if (randomExamSubjects != null) { Hashtable hashTableItemIds = new Hashtable(); Hashtable htSubjectItemIds = new Hashtable(); for (int i = 0; i < randomExamSubjects.Count; i++) { RandomExamSubject paperSubject = randomExamSubjects[i]; int nSubjectId = paperSubject.RandomExamSubjectId; // int nItemCount = paperSubject.ItemCount; IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId); for (int j = 0; j < strategys.Count; j++) { int nStrategyId = strategys[j].RandomExamStrategyId; int nItemCount = strategys[j].ItemCount; IList <RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, year); // IList<RandomExamItem> itemList = randomItemBLL.GetItemsBySubjectId(nSubjectId); Random ObjRandom = new Random(); Hashtable hashTable = new Hashtable(); Hashtable hashTableCount = new Hashtable(); int index = 0; while (hashTable.Count < nItemCount) { int k = ObjRandom.Next(itemList.Count); hashTableCount[index] = k; index = index + 1; int itemID = itemList[k].ItemId; int examItemID = itemList[k].RandomExamItemId; if (!hashTableItemIds.ContainsKey(itemID)) { hashTable[examItemID] = examItemID; hashTableItemIds[itemID] = itemID; htSubjectItemIds[examItemID] = examItemID; } //if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount) //{ // SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!"; // return; //} } } } randomExamResultAnswers = new List <RandomExamResultAnswerCurrent>(); foreach (int key in htSubjectItemIds.Keys) { string strItemId = htSubjectItemIds[key].ToString(); RandomExamItem item = randomItemBLL.GetRandomExamItem(Convert.ToInt32(strItemId), year); string nowSelectAnswer = string.Empty; string nowStandardAnswer = string.Empty; if (item.TypeId != PrjPub.ITEMTYPE_FILLBLANK) { Pub.GetNowAnswer(item, out nowSelectAnswer, out nowStandardAnswer); } RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK; randomExamResultAnswer.RandomExamItemId = int.Parse(strItemId); randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = string.Empty; randomExamResultAnswer.SelectAnswer = nowSelectAnswer; randomExamResultAnswer.StandardAnswer = nowStandardAnswer; randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer); //完型填空子题 IList <RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(item.ItemId, obj.RandomExamId, year); foreach (RandomExamItem randomExamItem in randomExamItems) { Pub.GetNowAnswer(randomExamItem, out nowSelectAnswer, out nowStandardAnswer); randomExamResultAnswer = new RandomExamResultAnswerCurrent(); randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK; randomExamResultAnswer.RandomExamItemId = randomExamItem.RandomExamItemId; randomExamResultAnswer.JudgeStatusId = 0; randomExamResultAnswer.JudgeRemark = string.Empty; randomExamResultAnswer.ExamTime = 0; randomExamResultAnswer.Answer = string.Empty; randomExamResultAnswer.SelectAnswer = nowSelectAnswer; randomExamResultAnswer.StandardAnswer = nowStandardAnswer; randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer); } System.Threading.Thread.Sleep(10); jsBlock = "<script>SetPorgressBar('正在生成试卷,请等待......','" + ((progressNum * 100) / ((double)ExamCount * str.Length * htSubjectItemIds.Count)).ToString("0.00") + "'); </script>"; Response.Write(jsBlock); Response.Flush(); progressNum++; } } else { SessionSet.PageMessage = "未找到记录!"; } } } //临时添加考生无需更改考试状态,因为考试状态肯定是正在进行和生成试卷 //objBll.UpdateHasPaper(Convert.ToInt32(strId), PrjPub.ServerNo, true); ////如果考试是随到随考,考试状态自动变为正在进行 //if (obj.StartMode == 1) //{ // objBll.UpdateIsStart(Convert.ToInt32(strId), PrjPub.ServerNo, 1); //} SystemLogBLL objLogBll = new SystemLogBLL(); objLogBll.WriteLog("“" + obj.ExamName + "”生成新增考生试卷"); Response.Write("<script>top.returnValue='true';top.close();</script>"); }