using System;
using System.Collections.Generic;
using System.Data;
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;
using static Telerik.Web.UI.OrgChartStyles;
namespace VRS.Management.Exam
{
public partial class ResultDetailConfig : BaseListPage
{
DataService.BLL.pro_result_detail bll = new DataService.BLL.pro_result_detail();
DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result();
DataService.BLL.exam_result_match bll_exam_result__match = new DataService.BLL.exam_result_match();
DataService.BLL.exam_result_detail_config bll_exam_result_detail_config = new DataService.BLL.exam_result_detail_config();
DataService.BLL.admin_user bll_admin_User = new DataService.BLL.admin_user();
protected override void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataLoad();
}
}
public DataTable getDataSet()
{
string Id = Request.Params["Id"];
var query = new StringBuilder(" 1 = 1 ");
var match = bll_exam_result__match.GetModel(Id);
if (null!= match && match.subject == "炭黑生产制造")
{
query.AppendFormat(" AND result_id = '{0}' ", Id);
}
else
{
query.AppendFormat(" AND result_id >= '{0}' ", Id);
}
var order = " order by result_id desc";
var data = bll_exam_result_detail_config.QueryResult(query.ToString(), order).Tables[0];
return data ;
}
protected override void DataLoad()
{
string Id = Request.Params["Id"];
var data = bll_exam_result_detail_config.GetModelList(" result_id='" + Id + "' ").OrderBy(s => s.id).ToList();
hidden_result_id.Value = Id;
var real_name = "";
var result = bll_exam_result__match.GetModel(Id);
if (result != null)
{
var user = bll_admin_User.GetModel(result.user_id);
if (user != null)
{
real_name = user.real_name + "-";
}
}
// span_name.InnerHtml = real_name + result.subject + "配置-" + (result.pic_score.HasValue ? result.pic_score.Value : 0) + "分";
if (result.subject == "炭黑生产制造")
{
span_name.InnerHtml = real_name + result.subject + "配置-" + (result.score) + "分";
}
else
{
span_name.InnerHtml = real_name + result.subject + "配置-" + (result.pic_score.HasValue ? result.pic_score.Value : 0) + "分";
}
dataList.DataSource = data;
foreach (var item in data)
{
var temp = string.Empty;
/*
// old 显示方式
if (!string.IsNullOrEmpty(item.field))
{
temp = string.Format("属性:{0},正确值:{1},错误值:{2}", item.field, item.field_yes, item.field_no);
}
else if (!string.IsNullOrEmpty(item.field_no))
{
temp = string.Format("属性:{0},正确值:{1},错误值:{2}", item.field, item.field_yes, item.field_no);
}
*/
if (result.subject == "炭黑生产制造")
{
if (!string.IsNullOrEmpty(item.field))
{
temp = string.Format("用户值:{0},正确值:{1}", item.field, item.field_yes);
if (!string.IsNullOrEmpty(item.field_no))
{
temp = temp+ string.Format(",错误值:{0}", item.field_no);
}
}
}
else
{
if (!string.IsNullOrEmpty(item.field))
{
temp = string.Format("属性:{0},正确值:{1},错误值:{2}", item.field, item.field_yes, item.field_no);
}
else if (!string.IsNullOrEmpty(item.field_no))
{
temp = string.Format("属性:{0},正确值:{1},错误值:{2}", item.field, item.field_yes, item.field_no);
}
}
if (!string.IsNullOrEmpty(item.other))
{
temp = temp + " " + item.other;
}
item.r3 = temp;
}
dataList.Rebind();
}
protected override void GridList_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
DataLoad();
}
protected override void GridList_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
DataLoad();
}
protected override void GridList_SortCommand(object sender, GridSortCommandEventArgs e)
{
DataLoad();
}
protected override 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 override void AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
}
protected void btnSelect_Click(object sender, EventArgs e)
{
DataLoad();
}
protected void btnDelete_Click(object sender, EventArgs e)
{
bll.Delete(IdInput.Value);
DataLoad();
}
protected void dataList_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = e.Item as GridDataItem;
var model = item.DataItem as DataService.Model.pro_result_detail;
if (null != model)
{
if (model.score == 0)
{
e.Item.CssClass = "row_highlight";
}
}
/*
double score = double.Parse(item.GetDataKeyValue("score").ToString());
if (score == 0)
{
e.Item.CssClass = "row_highlight";
}
*/
}
}
///
/// 导出excel
///
///
///
protected void btnExport_Click(object sender, EventArgs e)
{
string Id = Request.Params["Id"];
var data = getDataSet();
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.
table.Columns.Add("模块描述");
table.Columns.Add("分值");
table.Columns.Add("得分");
table.Columns.Add("原因");
//SELECT T1.id,T1.user_id,T1.subject,T1.sjms ,T1.total,T1.score,T1.create_time ,T2.login_name,T2.real_name,T2.school_id,T2.grade,T3.school FROM
//var dic = DicKsMode();
for (int i = 0; i < data.Rows.Count; i++)
{
var row = table.NewRow();
var r = data.Rows[i];
row["模块描述"] = r["topic"].ToString();
row["分值"] = r["total"].ToString();
row["得分"] = r["score"].ToString();
var temp = string.Empty;
if (!string.IsNullOrEmpty(r["field"].ToString()))
{
temp = string.Format("属性:{0},正确值:{1},错误值:{2}", r["field"].ToString(), r["field_yes"].ToString(), r["field_no"].ToString());
}
if (!string.IsNullOrEmpty(r["other"].ToString()))
{
temp = temp + " " + r["other"].ToString();
}
row["原因"] = temp;
table.Rows.Add(row);
}
var result = bll_exam_result__match.GetModel(Id);
var user = bll_admin_User.GetModel(result.user_id);
var title = user.real_name + "-" + result.subject + "配置-" + (result.pic_score.HasValue ? result.pic_score.Value : 0) + "分";
table.Columns[0].Caption = title;
VRS.Util.Import.DateTableToExcel(table, filePath);
FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + user.login_name+"_"+user.real_name+"_"+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();
}
}
}