using BLL; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.IO; namespace FineUIPro.Web.ContractorQuality { public partial class IncidentInvestigationReport : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 BindGrid(); } } private void BindGrid() { string strSql = string.Empty; strSql = @"select * from View_EMC_PunishmentReport where 1=1 "; List listStr = new List(); if (!string.IsNullOrEmpty(this.txtFoNo.Text.Trim())) { strSql += " AND FO_NO like @FO_NO"; listStr.Add(new SqlParameter("@FO_NO", "%" + this.txtFoNo.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtOriginal_WC.Text.Trim())) { strSql += " AND Original_WC =@Original_WC"; listStr.Add(new SqlParameter("@Original_WC", this.txtOriginal_WC.Text.Trim())); } if (this.drpSeType.SelectedValue != "0") { strSql += " AND SeType =@SeType"; listStr.Add(new SqlParameter("@SeType", this.drpSeType.SelectedText.Trim())); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #region 分页、排序 /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 查询 /// /// 查询 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } #endregion #region 导出 /// /// 导出按钮 /// /// /// protected void btnExport_Click(object sender, EventArgs e) { string rootPath = Server.MapPath("~/") + Const.ExcelUrl; //模板文件 string TempletFileName = rootPath + "质量事件报告模板.xlsx"; //导出文件 string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string ReportFileName = filePath + "out.xlsx"; FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); #region 质量事件报告 XSSFSheet reportModel = (XSSFSheet)hssfworkbook.GetSheet("Sheet1"); XSSFFont cs_content_Font = (XSSFFont)hssfworkbook.CreateFont(); //创建字体 cs_content_Font.FontName = "sans-serif";//字体 cs_content_Font.FontHeightInPoints = 10; //字体大小 IDataFormat dataformat = hssfworkbook.CreateDataFormat(); ICellStyle styleDate = hssfworkbook.CreateCellStyle(); styleDate.DataFormat = dataformat.GetFormat("yyyy/m/d"); var list = (from x in Funs.DB.View_EMC_PunishmentReport orderby x.PunishDate descending select x).ToList(); if (!string.IsNullOrEmpty(this.txtFoNo.Text.Trim())) { list = list.Where(x => x.FO_NO.Contains(this.txtFoNo.Text.Trim())).ToList(); } if (!string.IsNullOrEmpty(this.txtOriginal_WC.Text.Trim())) { list = list.Where(x => x.Original_WC == this.txtOriginal_WC.Text.Trim()).ToList(); } if (this.drpSeType.SelectedValue != "0") { list = list.Where(x => x.SeType == this.drpSeType.SelectedText.Trim()).ToList(); } if (list.Count > 0) { var rowIndex = 1; foreach (var itemOver in list) { if (reportModel.GetRow(rowIndex) == null) reportModel.CreateRow(rowIndex); #region 列赋值 //发现日期 if (reportModel.GetRow(rowIndex).GetCell(0) == null) reportModel.GetRow(rowIndex).CreateCell(0); reportModel.GetRow(rowIndex).GetCell(0).SetCellValue(itemOver.PunishDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.PunishDate) : ""); reportModel.GetRow(rowIndex).GetCell(0).CellStyle.SetFont(cs_content_Font);//将字体绑定到样式 //合同号 if (reportModel.GetRow(rowIndex).GetCell(1) == null) reportModel.GetRow(rowIndex).CreateCell(1); reportModel.GetRow(rowIndex).GetCell(1).SetCellValue(itemOver.FO_NO); //专业类别 if (reportModel.GetRow(rowIndex).GetCell(2) == null) reportModel.GetRow(rowIndex).CreateCell(2); reportModel.GetRow(rowIndex).GetCell(2).SetCellValue(itemOver.Original_WC); //类型 if (reportModel.GetRow(rowIndex).GetCell(3) == null) reportModel.GetRow(rowIndex).CreateCell(3); reportModel.GetRow(rowIndex).GetCell(3).SetCellValue(itemOver.SeType); //承包商名称 if (reportModel.GetRow(rowIndex).GetCell(4) == null) reportModel.GetRow(rowIndex).CreateCell(4); reportModel.GetRow(rowIndex).GetCell(4).SetCellValue(itemOver.Contractor); //位置 if (reportModel.GetRow(rowIndex).GetCell(5) == null) reportModel.GetRow(rowIndex).CreateCell(5); reportModel.GetRow(rowIndex).GetCell(5).SetCellValue(itemOver.Location); //质量事件描述 if (reportModel.GetRow(rowIndex).GetCell(6) == null) reportModel.GetRow(rowIndex).CreateCell(6); reportModel.GetRow(rowIndex).GetCell(6).SetCellValue(itemOver.Description); //违章等级 if (reportModel.GetRow(rowIndex).GetCell(7) == null) reportModel.GetRow(rowIndex).CreateCell(7); reportModel.GetRow(rowIndex).GetCell(7).SetCellValue(itemOver.ViolationDegree); //违章人员 if (reportModel.GetRow(rowIndex).GetCell(8) == null) reportModel.GetRow(rowIndex).CreateCell(8); reportModel.GetRow(rowIndex).GetCell(8).SetCellValue(itemOver.IndividualPerson); //违章扣款(公司) if (reportModel.GetRow(rowIndex).GetCell(9) == null) reportModel.GetRow(rowIndex).CreateCell(9); reportModel.GetRow(rowIndex).GetCell(9).SetCellValue(itemOver.Company.HasValue ? itemOver.Company.ToString() : ""); //违章扣款(个人) if (reportModel.GetRow(rowIndex).GetCell(10) == null) reportModel.GetRow(rowIndex).CreateCell(10); reportModel.GetRow(rowIndex).GetCell(10).SetCellValue(itemOver.Individual.HasValue ? itemOver.Individual.ToString() : ""); //合同员 if (reportModel.GetRow(rowIndex).GetCell(11) == null) reportModel.GetRow(rowIndex).CreateCell(11); reportModel.GetRow(rowIndex).GetCell(11).SetCellValue(itemOver.ContractAdminName); //主协调员 if (reportModel.GetRow(rowIndex).GetCell(12) == null) reportModel.GetRow(rowIndex).CreateCell(12); reportModel.GetRow(rowIndex).GetCell(12).SetCellValue(itemOver.Main_CoordinatorName); //主协调员部门 if (reportModel.GetRow(rowIndex).GetCell(13) == null) reportModel.GetRow(rowIndex).CreateCell(13); reportModel.GetRow(rowIndex).GetCell(13).SetCellValue(itemOver.MCDpartment); //用户部门 if (reportModel.GetRow(rowIndex).GetCell(14) == null) reportModel.GetRow(rowIndex).CreateCell(14); reportModel.GetRow(rowIndex).GetCell(14).SetCellValue(itemOver.UserDepName); //用户部门经理 if (reportModel.GetRow(rowIndex).GetCell(15) == null) reportModel.GetRow(rowIndex).CreateCell(15); reportModel.GetRow(rowIndex).GetCell(15).SetCellValue(itemOver.DepartLeaderName); //申报人 if (reportModel.GetRow(rowIndex).GetCell(16) == null) reportModel.GetRow(rowIndex).CreateCell(16); reportModel.GetRow(rowIndex).GetCell(16).SetCellValue(itemOver.Violation_InspectorName); //申报人部门 if (reportModel.GetRow(rowIndex).GetCell(17) == null) reportModel.GetRow(rowIndex).CreateCell(17); reportModel.GetRow(rowIndex).GetCell(17).SetCellValue(itemOver.Violation_InspectorDepart); //违章关联SES if (reportModel.GetRow(rowIndex).GetCell(18) == null) reportModel.GetRow(rowIndex).CreateCell(18); reportModel.GetRow(rowIndex).GetCell(18).SetCellValue(itemOver.ViolationRelatedSes); //扣款SES if (reportModel.GetRow(rowIndex).GetCell(19) == null) reportModel.GetRow(rowIndex).CreateCell(19); reportModel.GetRow(rowIndex).GetCell(19).SetCellValue(itemOver.SES_No); //扣款完成时间 if (reportModel.GetRow(rowIndex).GetCell(20) == null) reportModel.GetRow(rowIndex).CreateCell(20); reportModel.GetRow(rowIndex).GetCell(20).SetCellValue(itemOver.CompletionDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.CompletionDate) : ""); //当前状态 if (reportModel.GetRow(rowIndex).GetCell(21) == null) reportModel.GetRow(rowIndex).CreateCell(21); reportModel.GetRow(rowIndex).GetCell(21).SetCellValue(itemOver.States); //SSR管理员 if (reportModel.GetRow(rowIndex).GetCell(22) == null) reportModel.GetRow(rowIndex).CreateCell(22); reportModel.GetRow(rowIndex).GetCell(22).SetCellValue(itemOver.SSRAdminName); //SSR审批到达时间 if (reportModel.GetRow(rowIndex).GetCell(23) == null) reportModel.GetRow(rowIndex).CreateCell(23); reportModel.GetRow(rowIndex).GetCell(23).SetCellValue(itemOver.SSRStaratDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.SSRStaratDate) : ""); //SSR审批时间 if (reportModel.GetRow(rowIndex).GetCell(24) == null) reportModel.GetRow(rowIndex).CreateCell(24); reportModel.GetRow(rowIndex).GetCell(24).SetCellValue(itemOver.SSREndDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.SSREndDate) : ""); //SSR滞留时间 if (reportModel.GetRow(rowIndex).GetCell(25) == null) reportModel.GetRow(rowIndex).CreateCell(25); reportModel.GetRow(rowIndex).GetCell(25).SetCellValue(itemOver.SSRStayDays.ToString()); //主协调员 if (reportModel.GetRow(rowIndex).GetCell(26) == null) reportModel.GetRow(rowIndex).CreateCell(26); reportModel.GetRow(rowIndex).GetCell(26).SetCellValue(itemOver.Main_CoordinatorName); //主协调员审批到达时间 if (reportModel.GetRow(rowIndex).GetCell(27) == null) reportModel.GetRow(rowIndex).CreateCell(27); reportModel.GetRow(rowIndex).GetCell(27).SetCellValue(itemOver.MainCoordinatorStartDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.MainCoordinatorStartDate) : ""); //主协调员审批时间 if (reportModel.GetRow(rowIndex).GetCell(28) == null) reportModel.GetRow(rowIndex).CreateCell(28); reportModel.GetRow(rowIndex).GetCell(28).SetCellValue(itemOver.MainCoordinatorEndDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.MainCoordinatorEndDate) : ""); //主协调员滞留时间 if (reportModel.GetRow(rowIndex).GetCell(29) == null) reportModel.GetRow(rowIndex).CreateCell(29); reportModel.GetRow(rowIndex).GetCell(29).SetCellValue(itemOver.MainCoordinatorStayDays.ToString()); //用户部门 if (reportModel.GetRow(rowIndex).GetCell(30) == null) reportModel.GetRow(rowIndex).CreateCell(30); reportModel.GetRow(rowIndex).GetCell(30).SetCellValue(itemOver.UserDepName); //用户部门审批到达时间 if (reportModel.GetRow(rowIndex).GetCell(31) == null) reportModel.GetRow(rowIndex).CreateCell(31); reportModel.GetRow(rowIndex).GetCell(31).SetCellValue(itemOver.UserDepStartDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.UserDepStartDate) : ""); //用户部门审批时间 if (reportModel.GetRow(rowIndex).GetCell(32) == null) reportModel.GetRow(rowIndex).CreateCell(32); reportModel.GetRow(rowIndex).GetCell(32).SetCellValue(itemOver.UserDepEndDate.HasValue ? string.Format("{0:yyyy-MM-dd}", itemOver.UserDepEndDate) : ""); //用户部门滞留时间 if (reportModel.GetRow(rowIndex).GetCell(33) == null) reportModel.GetRow(rowIndex).CreateCell(33); reportModel.GetRow(rowIndex).GetCell(33).SetCellValue(itemOver.UserDepStayDays.ToString()); #endregion rowIndex++; } } #endregion reportModel.ForceFormulaRecalculation = true; using (FileStream filess = File.OpenWrite(ReportFileName)) { hssfworkbook.Write(filess); } FileInfo filet = new FileInfo(ReportFileName); Response.Clear(); Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.UTF8; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 Response.AddHeader("Content-Disposition", "attachment; filename=质量事件报告" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx")); // 添加头信息,指定文件大小,让浏览器能够显示下载进度 Response.AddHeader("Content-Length", filet.Length.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 Response.ContentType = "application/ms-excel"; // 把文件流发送到客户端 Response.WriteFile(filet.FullName); // 停止页面的执行 Response.End(); } /// /// 根据sql获取数据 /// /// /// /// /// public static DataTable GetDataTableNameRunText(string strSql, string tableName = "", params SqlParameter[] parameters) { DataTable dataTable = string.IsNullOrEmpty(tableName) ? new DataTable() : new DataTable(tableName); using (SqlConnection Connection = new SqlConnection(Funs.ConnString)) { try { Connection.Open(); SqlCommand command = new SqlCommand(strSql, Connection); command.CommandType = CommandType.Text; if (parameters != null) { command.Parameters.AddRange(parameters); } SqlDataAdapter adapter = new SqlDataAdapter(command); adapter.Fill(dataTable); } finally { Connection.Close(); } } return dataTable; } #endregion } }