CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs

790 lines
34 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Check
{
public partial class JointCheckStatistics : PageBase
{
/// <summary>
/// 项目id
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.FineUIPleaseSelect(drpState);
Funs.FineUIPleaseSelect(drpQuestionType);
QualityQuestionTypeService.InitQualityQuestionTypeDownList(drpQuestionType, true);
UnitService.InitUnitDropDownList(drpSponsorUnit, this.CurrUser.LoginProjectId, true);//施工单位
UnitWorkService.InitUnitWorkDownList(drpUnitWork, this.CurrUser.LoginProjectId, true);//单位工程
CNProfessionalService.InitCNProfessionalDownList(drpCNProfessional, true);//专业
this.drpCheckType.DataTextField = "Text";
this.drpCheckType.DataValueField = "Value";
this.drpCheckType.DataSource = BLL.JointCheckService.GetCheckTypeList2();
this.drpCheckType.DataBind();
BindGrid();
}
}
public void BindGrid()
{
this.ProjectId = this.CurrUser.LoginProjectId;
string strSql = @"select * from View_Check_JointCheckDetail where 1=1";
List<SqlParameter> listStr = new List<SqlParameter>();
strSql += " AND ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.ProjectId));
if (drpSponsorUnit.SelectedValue != BLL.Const._Null && drpSponsorUnit.SelectedValue != null)
{
strSql += " AND UnitId = @UnitId";
listStr.Add(new SqlParameter("@UnitId", this.drpSponsorUnit.SelectedValue));
}
if (!string.IsNullOrEmpty(txtStartTime.Text.Trim()))
{
strSql += " AND CheckDate >= @CheckDate";
listStr.Add(new SqlParameter("@CheckDate", txtStartTime.Text.Trim() + " 00:00:00"));
}
if (!string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
strSql += " AND CheckDate <= @CheckDateE";
listStr.Add(new SqlParameter("@CheckDateE", txtEndTime.Text.Trim() + " 23:59:59"));
}
if (drpUnitWork.SelectedValue != BLL.Const._Null && drpUnitWork.SelectedValue != null)
{
strSql += " AND UnitWorkId = @UnitWorkId";
listStr.Add(new SqlParameter("@UnitWorkId", this.drpUnitWork.SelectedValue));
}
if (drpCNProfessional.SelectedValue != BLL.Const._Null && drpCNProfessional.SelectedValue != null)
{
strSql += " AND CNProfessionalCode = @CNProfessionalCode";
listStr.Add(new SqlParameter("@CNProfessionalCode", this.drpCNProfessional.SelectedValue));
}
if (drpCheckType.SelectedValue != BLL.Const._Null && drpCheckType.SelectedValue != null && drpCheckType.SelectedValue != "")
{
strSql += " AND CheckType = @CheckType";
listStr.Add(new SqlParameter("@CheckType", this.drpCheckType.SelectedValue));
}
if (drpState.SelectedValue != Const._Null)
{
if (drpState.SelectedValue == "1") //已闭合
{
strSql += " AND OK='1' ";
}
else //未闭合
{
strSql += " AND OK='0'";
}
}
if (drpQuestionType.SelectedValue != Const._Null)
{
strSql += " AND QuestionType=@QuestionType";
listStr.Add(new SqlParameter("@QuestionType", drpQuestionType.SelectedValue));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 创建一个列表来存储CheckStatisc对象
var checkStatiscList = new List<CheckStatisc>();
if (this.rbType.SelectedValue == "0")
{
// 使用LINQ对DataTable进行分组统计----年份
var query = from row in tb.AsEnumerable()
let checkDate = row.Field<DateTime>("CheckDate")
let state = row.Field<int>("OK")
group row by new { checkDate.Year, state }
into g
select new
{
Year = g.Key.Year,
State = g.Key.state,
Count = g.Count()
};
// 计算每个年份的总记录数
var yearlyTotals = query.GroupBy(q => q.Year).ToDictionary(g => g.Key, g => g.Sum(q => q.Count));
// 创建一个包含年度总数和不同State计数的结果集
var result = query.GroupBy(q => q.Year).Select(g => new
{
Year = g.Key,
YearlyTotal = yearlyTotals[g.Key],
CompleteNumber = g.Where(q => q.State == 1).Sum(q => q.Count),
NCompleteNumber = g.Where(q => q.State == 0).Sum(q => q.Count)
}).ToList();
// 遍历结果集并创建CheckStatisc对象
foreach (var item in result)
{
var checkStatisc = new CheckStatisc
{
TypeName = item.Year.ToString(),
AllNumber = item.YearlyTotal,
CompleteNumber = item.CompleteNumber,
NCompleteNumber = item.NCompleteNumber,
Probability = ((double)item.CompleteNumber / item.YearlyTotal * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
else if (this.rbType.SelectedValue == "1")
{
// 使用LINQ对DataTable进行分组统计----年月
var queryByMonth = from row in tb.AsEnumerable()
let checkDate = row.Field<DateTime>("CheckDate")
let state = row.Field<int>("OK")
group row by new { checkDate.Year, checkDate.Month, state }
into g
select new
{
Year = g.Key.Year,
Month = g.Key.Month,
State = g.Key.state,
Count = g.Count()
};
// 计算每个月的总记录数
var monthlyTotals = queryByMonth.GroupBy(q => new { q.Year, q.Month }).ToDictionary(
g => new { g.Key.Year, g.Key.Month },
g => g.Sum(q => q.Count));
// 创建一个包含月度总数和不同State计数的结果集
var resultByMonth = queryByMonth.GroupBy(q => new { q.Year, q.Month }).Select(g => new
{
Year = g.Key.Year,
Month = g.Key.Month,
MonthlyTotal = monthlyTotals[g.Key],
CompleteNumber = g.Where(q => q.State == 1).Sum(q => q.Count),
NCompleteNumber = g.Where(q => q.State == 0).Sum(q => q.Count)
}).ToList();
// 遍历结果集并创建CheckStatisc对象
foreach (var item in resultByMonth)
{
var checkStatisc = new CheckStatisc
{
TypeName = $"{item.Year}年{item.Month:D2}月",
AllNumber = item.MonthlyTotal,
CompleteNumber = item.CompleteNumber,
NCompleteNumber = item.NCompleteNumber,
Probability = ((double)item.CompleteNumber / item.MonthlyTotal * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
else if (this.rbType.SelectedValue == "2")
{
// 使用LINQ对DataTable进行分组统计----专业名称
var queryByProfessionalName = from row in tb.AsEnumerable()
let professionalName = row.Field<string>("ProfessionalName")
let state = row.Field<int>("OK")
group row by professionalName
into g
select new
{
ProfessionalName = g.Key,
TotalCount = g.Count(),
CompleteCount = g.Count(q => q.Field<int>("OK") == 1),
IncompleteCount = g.Count(q => q.Field<int>("OK") != 0)
};
// 遍历结果集并创建CheckStatisc对象
foreach (var item in queryByProfessionalName)
{
var checkStatisc = new CheckStatisc
{
TypeName = item.ProfessionalName,
AllNumber = item.TotalCount,
CompleteNumber = item.CompleteCount,
NCompleteNumber = item.IncompleteCount,
Probability = ((double)item.CompleteCount / item.TotalCount * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
checkStatiscList = checkStatiscList.OrderBy(cs => cs.TypeName).ToList();
Grid1.RecordCount = checkStatiscList.Count;
Grid1.DataSource = checkStatiscList;
// Grid1.RecordCount = tb.Rows.Count;
// tb = GetFilteredTable(Grid1.FilteredData, tb);
// var table = this.GetPagedDataTable(Grid1, tb);
//
// Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 把状态转换代号为文字形式
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected string ConvertState(object JointCheckDetailId)
{
Model.Check_JointCheckDetail jointCheckDetail = BLL.JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(JointCheckDetailId.ToString());
// Model.View_Check_JointCheckDetail jointCheckDetail = Funs.DB.View_Check_JointCheckDetail.Where(x => x.JointCheckDetailId == JointCheckDetailId).FirstOrDefault();
if (jointCheckDetail != null)
{
if (!string.IsNullOrEmpty(jointCheckDetail.State))
{
string state = jointCheckDetail.State;
if (state == BLL.Const.JointCheck_ReCompile)
{
return "重新整理";
}
else if (state == BLL.Const.JointCheck_Compile)
{
return "编制";
}
else if (state == BLL.Const.JointCheck_Audit1)
{
return "分包专业工程师回复";
}
else if (state == BLL.Const.JointCheck_Audit2)
{
return "分包负责人确认";
}
else if (state == BLL.Const.JointCheck_Audit3)
{
return "总包专业工程师确认";
}
else if (state == BLL.Const.JointCheck_Audit4)
{
return "总包质量经理确认";
}
else if (state == BLL.Const.JointCheck_Complete)
{
return "审批完成";
}
else if (state == BLL.Const.JointCheck_Audit1R)
{
return "分包专工重新回复";
}
else
{
return "";
}
}
else
{
return "";
}
//string state = BLL.JointCheckService.GetJointCheck(jointCheckDetail.JointCheckId).State;
}
else
{
string state = BLL.CheckControlService.GetCheckControl(JointCheckDetailId.ToString()).State;
if (state == BLL.Const.CheckControl_ReCompile)
{
return "重新整理";
}
else if (state == BLL.Const.CheckControl_Compile)
{
return "编制";
}
else if (state == BLL.Const.CheckControl_Audit1)
{
return "总包负责人审批";
}
else if (state == BLL.Const.CheckControl_Audit2)
{
return "分包专业工程师回复";
}
else if (state == BLL.Const.CheckControl_Audit3)
{
return "分包负责人审批";
}
else if (state == BLL.Const.CheckControl_Audit4)
{
return "总包专业工程师确认";
}
else if (state == BLL.Const.CheckControl_Audit5)
{
return "总包负责人审批";
}
else if (state == BLL.Const.CheckControl_Complete)
{
return "审批完成";
}
else if (state == BLL.Const.CheckControl_ReCompile2)
{
return "分包专业工程师重新回复";
}
else
{
return "";
}
}
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
string itemId = Grid1.DataKeys[e.RowIndex][0].ToString();
Model.Check_JointCheck jointCheck1 = JointCheckService.GetJointCheck(itemId);
if (e.CommandName == "ReAttachUrl")
{
if (jointCheck1 != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/JointCheck&type=-1", itemId + "r", "查看 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckControl&type=-1", itemId + "r", "查看 - ")));
}
}
if (e.CommandName == "attchUrl")
{
if (jointCheck1 != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/JointCheck&type=-1", itemId, "查看 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckControl&type=-1", itemId, "查看 - ")));
}
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void btnRset_Click(object sender, EventArgs e)
{
drpSponsorUnit.SelectedIndex = 0;
drpCheckType.SelectedIndex = 0;
drpCNProfessional.SelectedIndex = 0;
drpUnitWork.SelectedIndex = 0;
drpState.SelectedIndex = 0;
drpQuestionType.SelectedIndex = 0;
txtStartTime.Text = "";
txtEndTime.Text = "";
BindGrid();
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.JointCheckStatisticsTemlUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = from x in Funs.DB.View_Check_JointCheckDetail where x.ProjectId == this.CurrUser.LoginProjectId select x;
if (drpSponsorUnit.SelectedValue != BLL.Const._Null && drpSponsorUnit.SelectedValue != null)
{
lists = lists.Where(x => x.UnitId == this.drpSponsorUnit.SelectedValue);
}
if (!string.IsNullOrEmpty(txtStartTime.Text.Trim()))
{
lists = lists.Where(x => x.CheckDate >= Funs.GetNewDateTime(txtStartTime.Text.Trim() + " 00:00:00"));
}
if (!string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
lists = lists.Where(x => x.CheckDate <= Funs.GetNewDateTime(txtEndTime.Text.Trim() + " 23:59:59"));
}
if (drpUnitWork.SelectedValue != BLL.Const._Null && drpUnitWork.SelectedValue != null)
{
lists = lists.Where(x => x.UnitWorkId == this.drpUnitWork.SelectedValue);
}
if (drpCNProfessional.SelectedValue != BLL.Const._Null && drpCNProfessional.SelectedValue != null)
{
lists = lists.Where(x => x.CNProfessionalCode == this.drpCNProfessional.SelectedValue);
}
if (drpCheckType.SelectedValue != BLL.Const._Null && drpCheckType.SelectedValue != null && drpCheckType.SelectedValue != "")
{
lists = lists.Where(x => x.CheckType == this.drpCheckType.SelectedValue);
}
if (drpState.SelectedValue != Const._Null)
{
if (drpState.SelectedValue == "1") //已闭合
{
lists = lists.Where(x => x.OK == '1');
}
else //未闭合
{
lists = lists.Where(x => x.OK == '0');
}
}
if (drpQuestionType.SelectedValue != Const._Null)
{
lists = lists.Where(x => x.QuestionType == this.drpQuestionType.SelectedValue);
}
if (lists != null)
{
string projectName = BLL.ProjectService.GetShortNameByProjectId(this.CurrUser.LoginProjectId);
newUrl = uploadfilepath.Replace("问题统计模板", "问题统计(" + projectName + DateTime.Now.ToString("yyyyMMdd") + "");
if (File.Exists(newUrl))
{
File.Delete(newUrl);
}
File.Copy(uploadfilepath, newUrl);
// 第一步:读取文件流
NPOI.SS.UserModel.IWorkbook workbook;
using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read))
{
//workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
cellStyle.WrapText = true;//自动换行
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 2;
// 将 lists 转换为 DataTable
DataTable tb = LINQToDataTable(lists);
// 创建一个列表来存储CheckStatisc对象
var checkStatiscList = new List<CheckStatisc>();
if (this.rbType.SelectedValue == "0")
{
// 使用LINQ对DataTable进行分组统计----年份
var query = from row1 in tb.AsEnumerable()
let checkDate = row1.Field<DateTime>("CheckDate")
let state = row1.Field<int>("OK")
group row1 by new { checkDate.Year, state }
into g
select new
{
Year = g.Key.Year,
State = g.Key.state,
Count = g.Count()
};
// 计算每个年份的总记录数
var yearlyTotals = query.GroupBy(q => q.Year).ToDictionary(g => g.Key, g => g.Sum(q => q.Count));
// 创建一个包含年度总数和不同State计数的结果集
var result = query.GroupBy(q => q.Year).Select(g => new
{
Year = g.Key,
YearlyTotal = yearlyTotals[g.Key],
CompleteNumber = g.Where(q => q.State == 1).Sum(q => q.Count),
NCompleteNumber = g.Where(q => q.State == 0).Sum(q => q.Count)
}).ToList();
// 遍历结果集并创建CheckStatisc对象
foreach (var item in result)
{
var checkStatisc = new CheckStatisc
{
TypeName = item.Year.ToString(),
AllNumber = item.YearlyTotal,
CompleteNumber = item.CompleteNumber,
NCompleteNumber = item.NCompleteNumber,
Probability = ((double)item.CompleteNumber / item.YearlyTotal * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
else if (this.rbType.SelectedValue == "1")
{
// 使用LINQ对DataTable进行分组统计----年月
var queryByMonth = from row1 in tb.AsEnumerable()
let checkDate = row1.Field<DateTime>("CheckDate")
let state = row1.Field<int>("OK")
group row1 by new { checkDate.Year, checkDate.Month, state }
into g
select new
{
Year = g.Key.Year,
Month = g.Key.Month,
State = g.Key.state,
Count = g.Count()
};
// 计算每个月的总记录数
var monthlyTotals = queryByMonth.GroupBy(q => new { q.Year, q.Month }).ToDictionary(
g => new { g.Key.Year, g.Key.Month },
g => g.Sum(q => q.Count));
// 创建一个包含月度总数和不同State计数的结果集
var resultByMonth = queryByMonth.GroupBy(q => new { q.Year, q.Month }).Select(g => new
{
Year = g.Key.Year,
Month = g.Key.Month,
MonthlyTotal = monthlyTotals[g.Key],
CompleteNumber = g.Where(q => q.State == 1).Sum(q => q.Count),
NCompleteNumber = g.Where(q => q.State == 0).Sum(q => q.Count)
}).ToList();
// 遍历结果集并创建CheckStatisc对象
foreach (var item in resultByMonth)
{
var checkStatisc = new CheckStatisc
{
TypeName = $"{item.Year}年{item.Month:D2}月",
AllNumber = item.MonthlyTotal,
CompleteNumber = item.CompleteNumber,
NCompleteNumber = item.NCompleteNumber,
Probability = ((double)item.CompleteNumber / item.MonthlyTotal * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
else if (this.rbType.SelectedValue == "2")
{
// 使用LINQ对DataTable进行分组统计----专业名称
var queryByProfessionalName = from row1 in tb.AsEnumerable()
let professionalName = row1.Field<string>("ProfessionalName")
let state = row1.Field<int>("OK")
group row1 by professionalName
into g
select new
{
ProfessionalName = g.Key,
TotalCount = g.Count(),
CompleteCount = g.Count(q => q.Field<int>("OK") == 1),
IncompleteCount = g.Count(q => q.Field<int>("OK") != 0)
};
// 遍历结果集并创建CheckStatisc对象
foreach (var item in queryByProfessionalName)
{
var checkStatisc = new CheckStatisc
{
TypeName = item.ProfessionalName,
AllNumber = item.TotalCount,
CompleteNumber = item.CompleteCount,
NCompleteNumber = item.IncompleteCount,
Probability = ((double)item.CompleteCount / item.TotalCount * 100).ToString("F2") + "%"
};
checkStatiscList.Add(checkStatisc);
}
}
checkStatiscList = checkStatiscList.OrderBy(cs => cs.TypeName).ToList();
foreach (var item in checkStatiscList)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.TypeName);//类型名称
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.AllNumber);//总数
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CompleteNumber);//合格数
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.NCompleteNumber);//不合格数
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Probability);//合格率
i++;
}
// foreach (var item in lists)
// {
// // 第二步:创建新数据行
// row = sheet.CreateRow(i);
// // 添加数据
// cell = row.CreateCell(0);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//施工单位
//
// cell = row.CreateCell(1);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.CheckDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.CheckDate) : "");
//
// cell = row.CreateCell(2);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.CheckTypeStr);
//
// cell = row.CreateCell(3);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.UnitWorkName);
//
// cell = row.CreateCell(4);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.ProfessionalName);
//
// cell = row.CreateCell(5);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.QuestionTypeStr);
//
// cell = row.CreateCell(6);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.CheckSite);
//
// cell = row.CreateCell(7);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.QuestionDef);
//
// cell = row.CreateCell(8);
// cell.CellStyle = cellStyle;
// cell.SetCellValue(item.HandleWay);
//
// cell = row.CreateCell(9);
// cell.CellStyle = cellStyle;
// string s = string.Empty;
// if (!string.IsNullOrEmpty(item.JointCheckDetailId))
// {
// s = ConvertState(item.JointCheckDetailId);
// }
// cell.SetCellValue(s);
//
// i++;
// }
// 第三步:写入文件流
using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write))
{
workbook.Write(stream);
workbook.Close();
}
string fileName = Path.GetFileName(newUrl);
FileInfo info = new FileInfo(newUrl);
long fileSize = info.Length;
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(newUrl, 0, fileSize);
Response.Flush();
Response.Close();
File.Delete(newUrl);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#pragma warning disable CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。
// /// <summary>
// /// 导出方法
// /// </summary>
// /// <param name="grid"></param>
// /// <returns></returns>
// private string GetGridTableHtml(Grid grid)
//#pragma warning restore CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。
// {
// StringBuilder sb = new StringBuilder();
// sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
// sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
// sb.Append("<tr>");
// foreach (GridColumn column in grid.Columns)
// {
// if (column.ColumnID != "AttchUrl" && column.ColumnID != "ReAttachUrl")
// {
// sb.AppendFormat("<td>{0}</td>", column.HeaderText);
// }
// }
// sb.Append("</tr>");
// foreach (GridRow row in grid.Rows)
// {
// sb.Append("<tr>");
// foreach (GridColumn column in grid.Columns)
// {
// if (column.ColumnID != "AttchUrl" && column.ColumnID != "ReAttachUrl")
// {
// string html = row.Values[column.ColumnIndex].ToString();
// if (column.ColumnID == "tfPageIndex")
// {
// html = (row.FindControl("lblPageIndex") as AspNet.Label).Text;
// }
// if (column.ColumnID == "lbState")
// {
// html = (row.FindControl("lbState") as AspNet.Label).Text;
// }
// //sb.AppendFormat("<td>{0}</td>", html);
// sb.AppendFormat("<td style='vnd.ms-excel.numberformat:@;width:140px;'>{0}</td>", html);
// }
// }
// sb.Append("</tr>");
// }
// sb.Append("</table>");
// return sb.ToString();
// }
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
public class CheckStatisc
{
public string TypeName { get; set; }//年份
public int AllNumber { get; set; }//总数
public int CompleteNumber { get; set; }//已完成数
public int NCompleteNumber { get; set; }//未完成数
public string Probability { get; set; }//百分比
}
}
}