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();
}
}
}