using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; namespace FineUIPro.Web.TestRun.DriverPrepare { public partial class Duty : PageBase { #region 加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetButtonPower(); BindGrid(); btnNew.OnClientClick = Window1.GetShowReference("DutyEdit.aspx") + "return false;"; } } #endregion #region 数据绑定 //加载列表 public void BindGrid() { var duty = (from x in Funs.DB.DriverPrepare_Duty where x.ProjectId == this.CurrUser.LoginProjectId select x).FirstOrDefault(); if (duty != null) { string strSql = @"select * from DriverPrepare_DutyItem chec" + @" where chec.DutyId=@DutyId"; List listStr = new List(); listStr.Add(new SqlParameter("@DutyId", duty.DutyId)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; //tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } else { Grid1.DataSource = null; Grid1.DataBind(); } } #endregion #region 搜索 //搜索按钮事件 protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } #endregion #region 关闭弹出窗口 /// /// 关闭弹出窗口 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion #region 编辑 protected void btnMenuModify_Click(object sender, EventArgs e) { EditData(); } /// /// Grid行双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { EditData(); } /// /// 编辑 /// private void EditData() { var duty = (from x in Funs.DB.DriverPrepare_Duty where x.ProjectId == this.CurrUser.LoginProjectId select x).FirstOrDefault(); if (duty == null) { Alert.ShowInTop("项目记录尚未生成,请先新增记录!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("DutyEdit.aspx?id={0}", duty.DutyId, "编辑 - "))); } #endregion #region 删除 protected void btnMenuDel_Click(object sender, EventArgs e) { var duty = (from x in Funs.DB.DriverPrepare_Duty where x.ProjectId == this.CurrUser.LoginProjectId select x).FirstOrDefault(); if (duty == null) { Alert.ShowInTop("项目无记录,无需删除!", MessageBoxIcon.Warning); return; } BLL.DriverPrepareDutyItemService.DeleteDutyItemByDutyId(duty.DutyId); BLL.DriverPrepareDutyService.DeleteDriverPrepareDuty(duty.DutyId); BindGrid(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } #endregion #region Grid行点击事件 /// /// Grid行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string id = Grid1.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "AttachUrl") { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/DriverPrepare/Duty&menuId={1}", id, BLL.Const.DutyMenuId))); } } #endregion #region 权限设置 /// /// 权限设置 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.DutyMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnModify.Hidden = false; this.Grid1.EnableRowDoubleClickEvent = true; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnDel.Hidden = false; } } } #endregion #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { string rootPath = Server.MapPath("~/"); string initTemplatePath = string.Empty; string uploadfilepath = string.Empty; string newUrl = string.Empty; string filePath = string.Empty; initTemplatePath = Const.DutyTemplateUrl; uploadfilepath = rootPath + initTemplatePath; var duty = (from x in Funs.DB.DriverPrepare_Duty where x.ProjectId == this.CurrUser.LoginProjectId select x).FirstOrDefault(); if (duty != null) { string projectName = BLL.ProjectService.GetProjectNameByProjectId(duty.ProjectId); newUrl = uploadfilepath.Replace(".xlsx", "(" + projectName + ")" + ".xlsx"); 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); } // 创建单元格样式 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.Left; cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; var font0 = workbook.CreateFont(); font0.FontHeightInPoints = 11; font0.IsBold = false; cellStyle0.SetFont(font0); // 第二步:创建新数据行 NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); NPOI.SS.UserModel.IRow row = sheet.GetRow(1); NPOI.SS.UserModel.ICell cell; cell = row.GetCell(3); cell.CellStyle = cellStyle0; cell.SetCellValue("项目名称:" + projectName); var items = BLL.DriverPrepareDutyItemService.GetLists(duty.DutyId); int i = 4; foreach (var item in items) { // 第二步:创建新数据行 row = sheet.GetRow(i); // 添加数据 cell = row.GetCell(3); cell.CellStyle = cellStyle; if (item.Item1 == true) { cell.SetCellValue("√"); } cell = row.GetCell(4); cell.CellStyle = cellStyle; if (item.Item2 == true) { cell.SetCellValue("√"); } cell = row.GetCell(5); cell.CellStyle = cellStyle; if (item.Item3 == true) { cell.SetCellValue("√"); } cell = row.GetCell(6); cell.CellStyle = cellStyle; if (item.Item4 == true) { cell.SetCellValue("√"); } cell = row.GetCell(7); cell.CellStyle = cellStyle; if (item.Item5 == true) { cell.SetCellValue("√"); } cell = row.GetCell(8); cell.CellStyle = cellStyle; if (item.Item6 == true) { cell.SetCellValue("√"); } cell = row.GetCell(9); cell.CellStyle = cellStyle; if (item.Item7 == true) { cell.SetCellValue("√"); } cell = row.GetCell(10); cell.CellStyle = cellStyle; if (item.Item8 == true) { cell.SetCellValue("√"); } cell = row.GetCell(11); cell.CellStyle = cellStyle; if (item.Item9 == true) { cell.SetCellValue("√"); } cell = row.GetCell(12); cell.CellStyle = cellStyle; if (item.Item10 == true) { cell.SetCellValue("√"); } cell = row.GetCell(13); cell.CellStyle = cellStyle; if (item.Item11 == true) { cell.SetCellValue("√"); } cell = row.GetCell(14); cell.CellStyle = cellStyle; if (item.Item12 == true) { cell.SetCellValue("√"); } cell = row.GetCell(15); cell.CellStyle = cellStyle; if (item.Item13 == true) { cell.SetCellValue("√"); } cell = row.GetCell(16); cell.CellStyle = cellStyle; if (item.Item14 == true) { cell.SetCellValue("√"); } cell = row.GetCell(17); cell.CellStyle = cellStyle; cell.SetCellValue(item.Remark); 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); } } #endregion } }