CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatist...

574 lines
36 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.IO;
using System.Linq;
namespace FineUIPro.Web.CQMS.ProcessControl
{
public partial class InspectionManagementStatistics : PageBase
{
public DateTime StartDate;
public DateTime NextDate;
public DateTime NewDate;
public DateTime EndDate;
public int SunNumber;
private static List<Model.InspectionManagementStatistics> StatisticsList = new List<Model.InspectionManagementStatistics>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (drpZhType.SelectedValue.Equals("1"))
{
BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessional, false);//专业
drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择专业 -", BLL.Const._Null));
}
else if(drpZhType.SelectedValue.Equals("2"))
{
BLL.UnitService.InitUnitDownList(this.drpCNProfessional, this.CurrUser.LoginProjectId, false);//施工分包商
drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择单位名称 -", BLL.Const._Null));
}
BindGvInspectionManagement(this.drpZhType.SelectedValue, this.drpCNProfessional.SelectedValue);
}
}
#region GridView
/// <summary>
/// 绑定
/// </summary>
/// <param name="cNProfessionalId"></param>
public void BindGvInspectionManagement(string ZyType, string cNProfessionalId)
{
if (string.IsNullOrEmpty(this.txtStartTime.Text.Trim()) && string.IsNullOrEmpty(this.txtEndTime.Text.Trim())) //未选择日期,统计项目开始起的每月数据
{
StatisticsList = new List<Model.InspectionManagementStatistics>();
//List<Model.InspectionManagementStatistics> StatisticsList = new List<Model.InspectionManagementStatistics>();
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
StartDate = Convert.ToDateTime(project.StartDate);
for (int i = 0; i < i + 1; i++)
{
Model.InspectionManagementStatistics Statistics = new Model.InspectionManagementStatistics();
if (i == 0)
{
NextDate = Convert.ToDateTime(DateTime.Parse(StartDate.ToString("yyyy-MM-dd")).AddMonths(1).ToShortDateString());
NewDate = Convert.ToDateTime(NextDate.Year + "-" + NextDate.Month + "-25");
Statistics.CheckDate = string.Format("{0:yyyy-MM-dd}", StartDate) + " 至 ";
if (StartDate.Day < 25)
{
if (DateTime.Now < NewDate)
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给时间段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给时间段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else if (ZyType == "2")
{
//统计所给时间段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给时间段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
StatisticsList.Add(Statistics);
break;
}
else
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
NextDate = Convert.ToDateTime(StartDate.Year + "-" + StartDate.Month + "-25");
if (ZyType == "1")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, true);
}
else if (ZyType == "2")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NextDate);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
}
}
else
{
if (DateTime.Now < NewDate)
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else if(ZyType=="2")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
StatisticsList.Add(Statistics);
break;
}
else
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true);
}
else if (ZyType == "2")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NewDate);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
}
}
}
else
{
if (StartDate.Day > 25)
{
Statistics.CheckDate = NewDate.Year + "-" + NewDate.Month + "-" + (NewDate.Day + 1) + " 至 ";
StartDate = Convert.ToDateTime(NewDate.Year + "-" + NewDate.Month + "-" + (NewDate.Day + 1));//获取上一记录的结束日期加一天为本次记录的开始日期
}
else
{
Statistics.CheckDate = NextDate.Year + "-" + NextDate.Month + "-" + (NextDate.Day + 1) + " 至 ";
StartDate = Convert.ToDateTime(NextDate.Year + "-" + NextDate.Month + "-" + (NextDate.Day + 1));//获取上一记录的结束日期加一天为本次记录的开始日期
}
NextDate = Convert.ToDateTime(DateTime.Parse(NextDate.ToString("yyyy-MM-dd")).AddMonths(1).ToShortDateString());
NewDate = Convert.ToDateTime(NextDate.Year + "-" + NextDate.Month + "-25");
if (DateTime.Now < NewDate)
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else if(ZyType=="2")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, DateTime.Now, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
StatisticsList.Add(Statistics);
break;
}
else
{
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true);
}
else if(ZyType=="2")
{ //统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true);
}
Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NewDate);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
}
}
StatisticsList.Add(Statistics);
}
Model.InspectionManagementStatistics StatisticsLast = new Model.InspectionManagementStatistics();
StatisticsLast.CheckDate = "合计";
int sum1 = 0;
int sum2 = 0;
foreach (Model.InspectionManagementStatistics item in StatisticsList)
{
sum1 += item.OneStatisticsSunNumber;
sum2 += item.SunNumber;
}
StatisticsLast.OneStatisticsSunNumber = sum1;
StatisticsLast.SunNumber = sum2;
if (sum2 != 0)//被除数不能为零
{
StatisticsLast.OneStatistics = Math.Round((double)sum1 / (double)sum2 * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
StatisticsLast.OneStatistics = "0%";
}
StatisticsList.Add(StatisticsLast);
this.Grid1.DataSource = StatisticsList;
this.Grid1.DataBind();
}
else //选择日期,统计对应时间段内的数据
{
StatisticsList = new List<Model.InspectionManagementStatistics>();
//List<Model.InspectionManagementStatistics> StatisticsList = new List<Model.InspectionManagementStatistics>();
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
StartDate = Convert.ToDateTime(project.StartDate);
EndDate = DateTime.Now;
if (!string.IsNullOrEmpty(this.txtStartTime.Text.Trim()))
{
StartDate = Convert.ToDateTime(this.txtStartTime.Text.Trim());
}
if (!string.IsNullOrEmpty(this.txtEndTime.Text.Trim()))
{
EndDate = Convert.ToDateTime(this.txtEndTime.Text.Trim());
}
Model.InspectionManagementStatistics Statistics = new Model.InspectionManagementStatistics();
List<Model.ProcessControl_InspectionManagement> managementListSunNumber = new List<Model.ProcessControl_InspectionManagement>();
List<Model.ProcessControl_InspectionManagement> managementListOneNumber = new List<Model.ProcessControl_InspectionManagement>();
if (ZyType == "1")
{
//统计所给时间段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, false);
//统计所给时间段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, true);
}
else if(ZyType=="2")
{
//统计所给时间段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, false);
//统计所给时间段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, true);
}
else
{
//统计所给事件段的全部数量
managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, EndDate, false);
//统计所给事件段的合格数量
managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, EndDate, true);
}
Statistics.CheckDate = string.Format("{0:yyyy-MM-dd}", StartDate) + " 至 " + string.Format("{0:yyyy-MM-dd}", EndDate);
Statistics.SunNumber = managementListSunNumber.Count();
Statistics.OneStatisticsSunNumber = managementListOneNumber.Count();
if (managementListSunNumber.Count() != 0)//被除数不能为零
{
Statistics.OneStatistics = Math.Round((double)managementListOneNumber.Count() / (double)managementListSunNumber.Count() * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
Statistics.OneStatistics = "0%";
}
StatisticsList.Add(Statistics);
this.Grid1.DataSource = StatisticsList;
this.Grid1.DataBind();
}
}
#endregion
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGvInspectionManagement(this.drpZhType.SelectedValue, this.drpCNProfessional.SelectedValue);
//if (this.drpCNProfessional.SelectedValue != BLL.Const._Null)
//{
// BindGvInspectionManagement(this.drpCNProfessional.SelectedValue);
//}
//else
//{
// BindGvInspectionManagement(null);
//}
}
protected void btnOut_Click(object sender, EventArgs e)
{
//Response.ClearContent();
//string filename = Funs.GetNewFileName();
//Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("控制点检查检测合格率统计" + filename, System.Text.Encoding.UTF8) + ".xls");
//Response.ContentType = "application/excel";
//Response.ContentEncoding = Encoding.UTF8;
//this.Grid1.PageSize = Grid1.RecordCount;
////if (this.drpCNProfessional.SelectedValue != BLL.Const._Null)
////{
//// BindGvInspectionManagement(this.drpCNProfessional.SelectedValue);
////}
////else
////{
//// BindGvInspectionManagement(null);
////}
//BindGvInspectionManagement(this.drpZhType.SelectedValue, this.drpCNProfessional.SelectedValue);
//Response.Write(GetGridTableHtml2(Grid1));
//Response.End();
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.InspectionManagementStaticTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
if (StatisticsList != 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;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 2;
foreach (var item in StatisticsList)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(string.Format("{0:yyyy-MM-dd}", item.CheckDate));//日期
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
string oneN = string.Empty;
if (!string.IsNullOrEmpty(item.OneStatisticsSunNumber.ToString()))
{
oneN = item.OneStatisticsSunNumber.ToString();
}
else
{
oneN = "0";
}
cell.SetCellValue(oneN);//一次合格数
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
string sumN = string.Empty;
if (!string.IsNullOrEmpty(item.SunNumber.ToString()))
{
sumN = item.SunNumber.ToString();
}
else
{
sumN = "0";
}
cell.SetCellValue(sumN);//总数
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.OneStatistics);//一次合格率
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);
}
}
/// <summary>
///下拉动态加载数据信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpZhType_SelectedIndexChanged(object sender, EventArgs e)
{
this.drpCNProfessional.Items.Clear();
if (drpZhType.SelectedValue.Equals("1"))
{
BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessional, false);//专业
drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择专业 -", BLL.Const._Null));
}
else if(drpZhType.SelectedValue.Equals("2"))
{
BLL.UnitService.InitUnitDownList(this.drpCNProfessional, this.CurrUser.LoginProjectId, false);//施工分包商
drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择单位 -", BLL.Const._Null));
}
this.drpCNProfessional.SelectedIndex = 0;
}
}
}