protected void btnSave_Click(object sender, ImageClickEventArgs e) { DataTable dataTable = BindGrid(); if (txtMET2.Text == "") { txtMET2.Text = "1"; } if (!rbnSubject1.Checked && !rbnSubject2.Checked) { 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(); RandomExamTrainClassHaBLL objTrainClassBll = new RandomExamTrainClassHaBLL(); string[] strPost = hfPostID.Value.Split(','); string strErrorMessage = ""; if (strMode == "Insert") { if (chkHasTrainClass.Checked) { foreach (DataRow dr in dataTable.Rows) { for (int i = 0; i < strPost.Length; i++) { IList <RandomExamTrainClassHa> objList = objTrainClassBll.GetRandomExamTrainClassCount(dr["TrainClassID"].ToString(), rbnSubject1.Checked?1:2, Convert.ToInt32(strPost[i])); if (objList.Count > 0) { strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + (rbnSubject1.Checked ? "安全" : "理论") + "”已新增当前所选职名的试卷!"; } } } } if (strErrorMessage != "") { SessionSet.PageMessage = strErrorMessage; return; } if (DateTime.Parse(dateBeginTime.DateValue.ToString()) < DateTime.Today) { SessionSet.PageMessage = "开始时间不能小于当前日期!"; 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 = chSeeAnswer.Checked; exam.CanSeeScore = chSeeScore.Checked; exam.IsPublicScore = chPublicScore.Checked; exam.IsUnderControl = chUD.Checked; exam.MaxExamTimes = int.Parse(txtMET2.Text); if (rbnSubject1.Checked) { exam.MinExamTimes = 1; } else if (rbnSubject2.Checked) { exam.MinExamTimes = 2; } 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.TechnicianTypeID = Convert.ToInt32(ddlTech.SelectedValue); exam.IsGroupLeader = Convert.ToInt32(ddlIsGroup.SelectedValue); exam.AutoSaveInterval = 0; exam.OrgId = PrjPub.CurrentLoginUser.StationOrgID; exam.HasTrainClass = chkHasTrainClass.Checked; int id = examBLL.AddExam(exam); strID = id.ToString(); //当考试来源为培训班时,需自动添加考生。 if (chkHasTrainClass.Checked) { foreach (DataRow dr in dataTable.Rows) { RandomExamTrainClassHa obj = new RandomExamTrainClassHa(); obj.RandomExamID = Convert.ToInt32(strID); obj.ArchivesID = dr["TrainClassID"].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); } else { Response.Redirect("RandomExamSubjectInfo.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else if (strMode == "Edit") { strID = Request.QueryString.Get("id"); if (chkHasTrainClass.Checked && (ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["Subject"].ToString() != (rbnSubject1.Checked ? 1 : 2).ToString())) { foreach (DataRow dr in dataTable.Rows) { for (int i = 0; i < strPost.Length; i++) { IList <RandomExamTrainClassHa> objList = objTrainClassBll.GetRandomExamTrainClassCount(dr["TrainClassID"].ToString(), rbnSubject1.Checked ? 1 : 2, Convert.ToInt32(strPost[i])); if (objList.Count > 0) { if (objList[0].RandomExamID.ToString() != strID) { strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + (rbnSubject1.Checked ? "安全" : "理论") + "”已新增当前所选职名的试卷!"; } } } } } if (strErrorMessage != "") { SessionSet.PageMessage = strErrorMessage; return; } if (DateTime.Parse(dateBeginTime.DateValue.ToString()) < DateTime.Today && ViewState["BeginTime"].ToString() != dateBeginTime.DateValue.ToString()) { SessionSet.PageMessage = "开始时间不能小于当前日期!"; return; } 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 = chSeeAnswer.Checked; exam.CanSeeScore = chSeeScore.Checked; exam.IsPublicScore = chPublicScore.Checked; exam.IsUnderControl = chUD.Checked; exam.MaxExamTimes = int.Parse(txtMET2.Text); if (rbnSubject1.Checked) { exam.MinExamTimes = 1; } else if (rbnSubject2.Checked) { exam.MinExamTimes = 2; } exam.ExamTypeId = 1; exam.Description = txtDescription.Text; exam.AutoSaveInterval = 0; exam.PostID = hfPostID.Value; exam.TechnicianTypeID = Convert.ToInt32(ddlTech.SelectedValue); exam.IsGroupLeader = Convert.ToInt32(ddlIsGroup.SelectedValue); 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; examBLL.UpdateExam(exam); examBLL.UpdateVersion(Convert.ToInt32(strID)); if (chkHasTrainClass.Checked) { if (ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["PostID"].ToString() != hfPostID.Value) { foreach (DataRow dr in dataTable.Rows) { RandomExamTrainClassHa obj = new RandomExamTrainClassHa(); obj.RandomExamID = Convert.ToInt32(strID); obj.ArchivesID = dr["TrainClassID"].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); } else { Response.Redirect("RandomExamSubjectInfo.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { Response.Redirect("RandomExamSubjectInfo.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } } else { strID = Request.QueryString.Get("id"); Response.Redirect("RandomExamSubjectInfo.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID); } }
protected void FillPage(int nExamID) { RandomExamBLL examBLL = new RandomExamBLL(); RailExam.Model.RandomExam exam = examBLL.GetExam(nExamID); if (exam != null) { ViewState["OrgID"] = exam.OrgId.ToString(); if (ViewState["startmode"].ToString() == "Edit") { if (exam.HasPaper) { Response.Write("<script>alert('该考试已生成试卷,不能被编辑!');window.close();</script>"); } } txtCategoryName.Text = exam.CategoryName; hfCategoryId.Value = exam.CategoryId.ToString(); ddlType.SelectedValue = exam.ExamTypeId.ToString(); txtExamName.Text = exam.ExamName; txtExamTime.Text = exam.ExamTime.ToString(); ViewState["BeginTime"] = exam.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"); 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; } else { rbnExamMode2.Checked = true; } if (exam.StartMode == 1) { rbnStartMode1.Checked = true; } else { rbnStartMode2.Checked = true; } if (exam.MinExamTimes == 1) { rbnSubject1.Checked = true; } else if (exam.MinExamTimes == 2) { rbnSubject2.Checked = true; } ViewState["Subject"] = exam.MinExamTimes; txtMET2.Text = exam.MaxExamTimes.ToString(); chUD.Checked = exam.IsUnderControl; chAutoScore.Checked = exam.IsAutoScore; chSeeAnswer.Checked = exam.CanSeeAnswer; chSeeScore.Checked = exam.CanSeeScore; chPublicScore.Checked = exam.IsPublicScore; txtDescription.Text = exam.Description; txtMemo.Text = exam.Memo; ddlIsGroup.SelectedValue = exam.IsGroupLeader.ToString(); ddlTech.SelectedValue = exam.TechnicianTypeID.ToString(); hfPostID.Value = exam.PostID; ViewState["PostID"] = hfPostID.Value; 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; 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; hfHasTrainClass.Value = chkHasTrainClass.Checked.ToString(); ViewState["HasTrainClass"] = chkHasTrainClass.Checked.ToString(); SetTrainClassVisible(chkHasTrainClass.Checked); if (exam.ExamStyle == 1) { rbnStyle1.Checked = true; } else { rbnStyle2.Checked = true; } if (chkHasTrainClass.Checked) { OracleAccess db = new OracleAccess(); RandomExamTrainClassHaBLL objTrainClassBll = new RandomExamTrainClassHaBLL(); IList <RandomExamTrainClassHa> 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(string))); dataTable.Columns.Add(new DataColumn("TrainClassName", typeof(string))); string strSql = ""; foreach (RandomExamTrainClassHa trainClass in objTrainClassList) { DataRow newRow = dataTable.NewRow(); newRow[0] = trainClass.RandomExamTrainClassID; newRow[1] = trainClass.RandomExamID; newRow[2] = trainClass.ArchivesID; strSql = "select * from Train_Info where Archives_Num='" + trainClass.ArchivesID + "' and Unit_Code='" + exam.OrgId + "'"; newRow[3] = db.RunSqlDataSet(strSql).Tables[0].Rows[0]["Class_Name"].ToString(); dataTable.Rows.Add(newRow); if (hfTrainClassID.Value == "") { hfTrainClassID.Value = trainClass.ArchivesID; } else { hfTrainClassID.Value = hfTrainClassID.Value + "," + trainClass.ArchivesID; } } 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"] = ""; } } if (ViewState["mode"].ToString() == "ReadOnly") { chkHasTrainClass.Enabled = false; 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; chSeeAnswer.Enabled = false; chSeeScore.Enabled = false; chPublicScore.Enabled = false; txtDescription.Enabled = false; txtMemo.Enabled = false; rbnStartMode1.Enabled = false; rbnStartMode2.Enabled = false; rbnStyle1.Enabled = false; rbnStyle2.Enabled = false; txtPost.Enabled = false; ddlIsGroup.Enabled = false; ddlTech.Enabled = false; txtCategoryName.Enabled = false; txtPassScore.Enabled = false; } }