using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; namespace VRS.Management.VSAT { public partial class ExamBatchResult : BasePage { DataService.BLL.pro_para bll = new DataService.BLL.pro_para(); DataService.BLL.admin_log log = new DataService.BLL.admin_log(); DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result(); DataService.BLL.pro_fault_exam_paper bll_fault_exam_paper = new DataService.BLL.pro_fault_exam_paper(); protected override void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindMajors(dpMajor, ""); BindGrade(grade, ""); BindExamBatch(dpbatch, ""); DataLoad(); } } protected void btnSelect_Click(object sender, EventArgs e) { DataLoad(); } protected void DataLoad() { //加载客观题 var data = getDataSet(); dataList.DataSource = data; dataList.Rebind(); //加载主观题 var data_zgt = getDataSet_zgt(); dataList_zgt.DataSource = data_zgt; dataList_zgt.Rebind(); //加载成绩统计 var data_Segment = getDataSet_scoreSegment().Tables[0]; load_score_segment(data_Segment); //var data_cjtj = getDataSet_cjtj().Tables[0]; //dataList_cjtj.DataSource = data_cjtj; //dataList_cjtj.Rebind(); /* var data_Segment = getDataSet_scoreSegment().Tables[0]; if (data_Segment.Rows.Count > 0) { var row = data_Segment.Rows[0]; if (!string.IsNullOrEmpty(row["dn60"].ToString())) { span_dn60.InnerHtml = row["dn60"].ToString() + "人"; span_bt60_70.InnerHtml = row["bt60_70"].ToString() + "人"; span_bt70_80.InnerHtml = row["bt70_80"].ToString() + "人"; span_bt80_90.InnerHtml = row["bt80_90"].ToString() + "人"; span_up90.InnerHtml = row["up90"].ToString() + "人"; } else { span_dn60.InnerHtml = "0人"; span_bt60_70.InnerHtml = "0人"; span_bt70_80.InnerHtml = "0人"; span_bt80_90.InnerHtml = "0人"; span_up90.InnerHtml = "0人"; } } */ } /// /// 学生成绩统计分数段 /// /// private void load_score_segment(DataTable table) { decimal dn60 = 0; decimal bt60_70 = 0; decimal bt70_80 = 0; decimal bt80_90 = 0; decimal up90 = 0; decimal total_has_score = 0; if (table.Rows.Count > 0) { var row = table.Rows[0]; if (!string.IsNullOrEmpty(row["dn60"].ToString())) { dn60 = decimal.Parse(row["dn60"].ToString()); bt60_70 = decimal.Parse(row["bt60_70"].ToString()); bt70_80 = decimal.Parse(row["bt70_80"].ToString()); bt80_90 = decimal.Parse(row["bt80_90"].ToString()); up90 = decimal.Parse(row["up90"].ToString()); } } total_has_score = dn60 + bt60_70 + bt70_80 + bt80_90 + up90; /* dn60 = 20; bt60_70 = 30; bt70_80 = 40; bt80_90 = 8; up90 = 2; total_has_score = 100; */ span_dn60.InnerHtml = dn60.ToString() + "人"; span_bt60_70.InnerHtml = bt60_70.ToString() + "人"; span_bt70_80.InnerHtml = bt70_80.ToString() + "人"; span_bt80_90.InnerHtml = bt80_90.ToString() + "人"; span_up90.InnerHtml = up90.ToString() + "人"; if (total_has_score > 0) { ChartUser.Visible = true; PieChart1.Visible = true; var Series_dn60 = ChartUser.PlotArea.Series[0] as ColumnSeries; Series_dn60.SeriesItems[0].Y = dn60; Series_dn60.SeriesItems[1].Y = bt60_70; Series_dn60.SeriesItems[2].Y = bt70_80; Series_dn60.SeriesItems[3].Y = bt80_90; Series_dn60.SeriesItems[4].Y = up90; Series_dn60.SeriesItems[0].BackgroundColor = Color.Red; Series_dn60.SeriesItems[1].BackgroundColor = Color.YellowGreen; Series_dn60.SeriesItems[2].BackgroundColor = Color.SkyBlue; Series_dn60.SeriesItems[3].BackgroundColor = Color.BlueViolet; Series_dn60.SeriesItems[4].BackgroundColor = Color.Blue; /* var Series_bt60_70 = ChartUser.PlotArea.Series[1] as ColumnSeries; Series_bt60_70.SeriesItems[0].Y = bt60_70; var Series_bt70_80 = ChartUser.PlotArea.Series[2] as ColumnSeries; Series_bt70_80.SeriesItems[0].Y = bt70_80; var Series_bt80_90 = ChartUser.PlotArea.Series[3] as ColumnSeries; Series_bt80_90.SeriesItems[0].Y = bt80_90; var Series_up90 = ChartUser.PlotArea.Series[4] as ColumnSeries; Series_up90.SeriesItems[0].Y = up90;*/ decimal v1 = Math.Round(dn60 * 100 / total_has_score, 1); decimal v2 = Math.Round(bt60_70 * 100 / total_has_score, 1); decimal v3 = Math.Round(bt70_80 * 100 / total_has_score, 1); decimal v4 = Math.Round(bt80_90 * 100 / total_has_score, 1); decimal v5 = Math.Round(up90 * 100 / total_has_score, 1); var Series0 = PieChart1.PlotArea.Series[0] as PieSeries; Series0.SeriesItems[0].Y = v1; Series0.SeriesItems[1].Y = v2; Series0.SeriesItems[2].Y = v3; Series0.SeriesItems[3].Y = v4; Series0.SeriesItems[4].Y = v5; } else { ChartUser.Visible = false; PieChart1.Visible = false; } } protected void btnSure_Click(object sender, EventArgs e) { // btnSure_Click start // btnSure_Click end /* if (bll.Update(model)) { log.write_log("修改参数配置成功。"); RadAjaxManager1.ResponseScripts.Add("alert('修改成功!');"); DataLoad(); } else RadAjaxManager1.Alert("修改失败!"); */ } /// /// 获取客观题 /// /// public List getDataSet() { var query = new StringBuilder(" 1 = 1 and subject_id!='00003' "); //排除故障现象考试 if (!string.IsNullOrWhiteSpace(dpMajor.SelectedValue)) { query.AppendFormat(" AND major = '{0}' ", dpMajor.SelectedValue); } if (!string.IsNullOrWhiteSpace(grade.SelectedValue)) { query.AppendFormat(" AND grade = '{0}' ", grade.SelectedValue); } if (!string.IsNullOrWhiteSpace(dpbatch.SelectedValue)) { query.AppendFormat(" AND batch_id = '{0}' ", dpbatch.SelectedValue); } var data = bll_result.GetModelList(query.ToString()); return data.OrderByDescending(s => s.examine_time).ToList(); ; } protected void GridList_PageIndexChanged(object sender, GridPageChangedEventArgs e) { DataLoad(); } protected void GridList_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e) { DataLoad(); } protected void GridList_SortCommand(object sender, GridSortCommandEventArgs e) { DataLoad(); } protected void GrdList_DeleteCommand(object sender, GridCommandEventArgs e) { string Id = (e.Item as GridDataItem).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["Id"].ToString(); bll.Delete(Id); DataLoad(); } protected void AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e) { } public string get_state(string state) { if (state == "1") { return "未打分"; } else if (state == "2") { return " 已打分"; } return "未考试"; } protected void btnDelete_Click(object sender, EventArgs e) { DataLoad(); } #region 学员成绩统计 public DataSet getDataSet_cjtj() { var query = new StringBuilder(" 1 = 1 and subject_id!='00003' "); //排除故障现象考试 //var query = new StringBuilder(" 1 = 1 "); //排除故障现象考试 if (!string.IsNullOrWhiteSpace(dpMajor.SelectedValue)) { query.AppendFormat(" AND major = '{0}' ", dpMajor.SelectedValue); } if (!string.IsNullOrWhiteSpace(grade.SelectedValue)) { query.AppendFormat(" AND grade = '{0}' ", grade.SelectedValue); } if (!string.IsNullOrWhiteSpace(dpbatch.SelectedValue)) { query.AppendFormat(" AND batch_id = '{0}' ", dpbatch.SelectedValue); } var configModel = GetSystemConfig(ConfigurationManager.AppSettings["SystemName"].ToString()); decimal rate = configModel.xl_rate; var data = bll_result.GetStudentStatistics(query.ToString(), rate); return data; } //批次分数段统计 public DataSet getDataSet_scoreSegment() { //var query = new StringBuilder(" 1 = 1 and subject_id!='00003' "); //排除故障现象考试 var query = new StringBuilder(" 1 = 1 "); //排除故障现象考试 if (!string.IsNullOrWhiteSpace(dpMajor.SelectedValue)) { query.AppendFormat(" AND major = '{0}' ", dpMajor.SelectedValue); } if (!string.IsNullOrWhiteSpace(grade.SelectedValue)) { query.AppendFormat(" AND grade = '{0}' ", grade.SelectedValue); } if (!string.IsNullOrWhiteSpace(dpbatch.SelectedValue)) { query.AppendFormat(" AND batch_id = '{0}' ", dpbatch.SelectedValue); } var data = bll_result.GetStudentBatchScoreSegment(query.ToString()); return data; } #endregion #region 主观题 private List getDataSet_zgt() { var a1 = BasePage.GetNewId(); var a2 = BasePage.GetNewId(); var a3 = BasePage.GetNewId(); var a4 = BasePage.GetNewId(); StringBuilder query = new StringBuilder(" 1 = 1 AND state >0 "); if (!string.IsNullOrWhiteSpace(dpbatch.SelectedValue)) { query.AppendFormat(" AND batch_id = '{0}' ", dpbatch.SelectedValue); } if (!string.IsNullOrWhiteSpace(dpMajor.SelectedValue)) { query.AppendFormat(" AND major = '{0}' ", dpMajor.SelectedValue); } if (!string.IsNullOrWhiteSpace(grade.SelectedValue)) { query.AppendFormat(" AND grade = '{0}' ", grade.SelectedValue); } var data = bll_fault_exam_paper.GetModelList(query.ToString()).OrderBy(s => s.state).ThenByDescending(s => s.create_time).ToList(); return data; //dataList.DataSource = data; //dataList.Rebind(); } #endregion /// /// 导出excel /// /// /// protected void btnExport_score_segment_Click(object sender, EventArgs e) { string filePath = Server.MapPath("~/Download/"); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string fileName = string.Format("{0}.xls", "批次分数段统计_" + DateTime.Now.ToString("yyyyMMddHHmmss")); filePath = filePath + fileName; var table = new DataTable(); table.Columns.Add("分数段"); table.Columns.Add("人数"); var row1 = table.NewRow(); row1["分数段"] = "60分以下"; row1["人数"] = span_dn60.InnerHtml; table.Rows.Add(row1); var row2 = table.NewRow(); row2["分数段"] = "60到70分"; row2["人数"] = span_bt60_70.InnerHtml; table.Rows.Add(row2); var row3 = table.NewRow(); row3["分数段"] = "70到80分"; row3["人数"] = span_bt70_80.InnerHtml; table.Rows.Add(row3); var row4 = table.NewRow(); row4["分数段"] = "80到90分"; row4["人数"] = span_bt80_90.InnerHtml; table.Rows.Add(row4); var row5 = table.NewRow(); row5["分数段"] = "90分以上"; row5["人数"] = span_up90.InnerHtml; table.Rows.Add(row5); VRS.Util.Import.DateTableToExcel(table, filePath); FileInfo fileInfo = new FileInfo(filePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } /// /// 客观题-导出excel /// /// /// protected void btnExport_score_kgt_Click(object sender, EventArgs e) { string filePath = Server.MapPath("~/Download/"); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var data = getDataSet(); string fileName = string.Format("{0}.xls", "客观题详情_" + DateTime.Now.ToString("yyyyMMddHHmmss")); if (data.Count > 0) { fileName = string.Format("{0}.xls", data[0].batch_name + "_客观题详情_" + DateTime.Now.ToString("yyyyMMddHHmmss")); } filePath = filePath + fileName; //批次 实践模式 入学年度 专业 姓名 学号 科目名称 成绩 考试时间 var table = new DataTable(); table.Columns.Add("批次"); table.Columns.Add("实践模式"); table.Columns.Add("入学年度"); table.Columns.Add("专业"); table.Columns.Add("姓名"); table.Columns.Add("学号"); table.Columns.Add("科目名称"); table.Columns.Add("成绩"); table.Columns.Add("考试时间"); foreach (var item in data) { var row = table.NewRow(); row["批次"] = item.batch_name; row["实践模式"] = item.sjms; row["入学年度"] = item.grade; row["专业"] = item.major; row["姓名"] = item.real_name; row["学号"] = item.login_name; row["科目名称"] = item.subject_name; row["成绩"] = item.total_result; row["考试时间"] = item.examine_time.HasValue ? item.examine_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; table.Rows.Add(row); } VRS.Util.Import.DateTableToExcel(table, filePath); FileInfo fileInfo = new FileInfo(filePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } /// /// 主观题-导出excel /// /// /// protected void btnExport_score_zgt_Click(object sender, EventArgs e) { string filePath = Server.MapPath("~/Download/"); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var data = getDataSet_zgt(); string fileName = string.Format("{0}.xls", "主观题详情_" + DateTime.Now.ToString("yyyyMMddHHmmss")); if (data.Count > 0) { fileName = string.Format("{0}.xls", data[0].batch_name + "_主观题详情_" + DateTime.Now.ToString("yyyyMMddHHmmss")); } filePath = filePath + fileName; //批次 实践模式 入学年度 专业 姓名 学号 科目名称 成绩 考试时间 //批次 实践模式 入学年度 专业 姓名 学号 状态 成绩 考试时间 var table = new DataTable(); table.Columns.Add("批次"); table.Columns.Add("实践模式"); table.Columns.Add("入学年度"); table.Columns.Add("专业"); table.Columns.Add("姓名"); table.Columns.Add("学号"); table.Columns.Add("状态"); table.Columns.Add("成绩"); table.Columns.Add("考试时间"); foreach (var item in data) { var row = table.NewRow(); row["批次"] = item.batch_name; row["实践模式"] = item.sjms; row["入学年度"] = item.grade; row["专业"] = item.major; row["姓名"] = item.real_name; row["学号"] = item.login_name; row["状态"] = get_state(item.state.ToString()); row["成绩"] = item.state == 2 ? item.score.ToString() : ""; row["考试时间"] = item.examine_time.HasValue ? item.examine_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; table.Rows.Add(row); } VRS.Util.Import.DateTableToExcel(table, filePath); FileInfo fileInfo = new FileInfo(filePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } } }