using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Text; using AspNet = System.Web.UI.WebControls; using System.Linq; using System.IO; using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using System.Threading; using System.Runtime.Serialization; namespace FineUIPro.Web.HJGL.WeldingReport { public partial class JointComprehensive : PageBase { public static int percent { get; set; } public static string url { get; set; } #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { percent = 0; url = ""; Funs.DropDownPageSize(this.ddlPageSize); this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); //单位 // var unit = BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId); // if (unit != null && unit.UnitTypeId == BLL.Const.ProjectUnitType_2) if (this.CurrUser.UnitId != Const.UnitId_TCC && this.CurrUser.UserId != Const.hfnbdId) { //BLL.UnitService.InitSubUnitNameDownList(this.drpUnit, this.CurrUser.LoginProjectId, this.CurrUser.UnitId, true); //this.drpUnit.SelectedValue = this.CurrUser.UnitId; BLL.WorkAreaService.InitWorkAreaProjectUnitDropDownList(this.drpWorkArea, this.CurrUser.LoginProjectId, this.CurrUser.UnitId, true); } else { var supervisonUnit = BLL.WorkAreaService.IsSupervisor(this.CurrUser.UnitId, this.CurrUser.LoginProjectId); if (supervisonUnit) { BLL.WorkAreaService.InitWorkAreaProjectUnitDropDownList(this.drpWorkArea, this.CurrUser.LoginProjectId, this.CurrUser.UnitId, true); } else { BLL.WorkAreaService.InitWorkAreaByProjectId(this.drpWorkArea, this.CurrUser.LoginProjectId, true); } } //BindGrid(); } } #endregion #region 绑定BindGrid /// /// /// private DataTable tb = null; /// /// 绑定数据 /// private void BindGrid() { string strSql = @"SELECT v.*," + @" ci.CHT_FilmDate as CHT_CheckDate," + @" c.CHT_CheckCode CHT_CheckCode,c.CHT_CheckID" + @" FROM V_JOINTVIEW v left join CH_CheckItem ci on ci.JOT_ID=v.JOT_ID left join CH_Check c on ci.CHT_CheckID = c.CHT_CheckID WHERE 1=1 "; List listStr = new List(); strSql += " AND v.ProjectId = @ProjectId"; listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue)) { strSql += " AND v.WorkAreaId =@workareaId"; listStr.Add(new SqlParameter("@workareaId", this.drpWorkArea.SelectedValue)); } if (this.CurrUser.UnitId != Const.UnitId_TCC && this.CurrUser.UserId != Const.hfnbdId) { strSql += " AND v.UnitId = @UnitId"; listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId)); } //if (!string.IsNullOrEmpty(this.drpUnit.SelectedValue) && this.drpUnit.SelectedValue != BLL.Const._Null) //{ // strSql += " AND v.UnitId = @UnitId"; // listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue)); //} if (!string.IsNullOrEmpty(this.txtJointDesc.Text.Trim())) { strSql += " AND v.JOT_JointDesc LIKE @JOT_JointDesc"; listStr.Add(new SqlParameter("@JOT_JointDesc", "%" + this.txtJointDesc.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { strSql += " AND v.ISO_ISONO LIKE @isoNo"; listStr.Add(new SqlParameter("@isoNo", "%" + this.txtIsoNo.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Random random = new Random(); foreach (DataRow row in tb.Rows) { row["JOT_ID"] = row["JOT_ID"].ToString() + row["CH_TrustDate"].ToString() + random.Next(1, 100); } 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) { 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) { this.BindGrid(); } #endregion #endregion #region 统计按钮事件 /// /// 统计 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { BindGrid(); } #endregion #region 导出按钮 protected void btnOut_Click(object sender, EventArgs e) { percent = 0; url = ""; string strSql = @"SELECT v.* ,ci.CHT_FilmDate FROM V_JOINTVIEW v left join CH_CheckItem ci on ci.JOT_ID=v.JOT_ID left join CH_Check c on ci.CHT_CheckID = c.CHT_CheckID WHERE "; List listStr = new List(); strSql += " v.ProjectId = @ProjectId"; listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue)) { strSql += " AND v.WorkAreaId =@workareaId"; listStr.Add(new SqlParameter("@workareaId", this.drpWorkArea.SelectedValue)); } if (this.CurrUser.UnitId != Const.UnitId_TCC && this.CurrUser.UserId != Const.hfnbdId) { strSql += " AND v.UnitId = @UnitId"; listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId)); } if (!string.IsNullOrEmpty(this.txtJointDesc.Text.Trim())) { strSql += " AND v.JOT_JointDesc LIKE @JOT_JointDesc"; listStr.Add(new SqlParameter("@JOT_JointDesc", "%" + this.txtJointDesc.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { strSql += " AND v.ISO_ISONO LIKE @isoNo"; listStr.Add(new SqlParameter("@isoNo", "%" + this.txtIsoNo.Text.Trim() + "%")); } Thread t = new Thread(new ThreadStart(() => { btnOut(strSql, listStr.ToArray()); })); t.Start(); PageContext.RegisterStartupScript("printX()"); } /// 导出按钮 /// /// /// protected void btnOut(string strSql, SqlParameter[] parameter) { //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 = System.Text.Encoding.UTF8; //Response.Write(GetGridTableHtml(Grid1)); //Response.End(); // SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); string rootPath = Server.MapPath("~/") + Const.ExcelUrl; //模板文件 string TempletFileName = Server.MapPath("~/") + "File/Excel/HJGL_DataOut/焊口综合信息.xlsx"; //导出文件 string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string ReportFileName = filePath + "焊口综合信息" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"; FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); ICellStyle styleCenter = hssfworkbook.CreateCellStyle(); styleCenter.VerticalAlignment = VerticalAlignment.Center; styleCenter.Alignment = HorizontalAlignment.Center; styleCenter.BorderLeft = BorderStyle.Thin; styleCenter.BorderTop = BorderStyle.Thin; styleCenter.BorderRight = BorderStyle.Thin; styleCenter.BorderBottom = BorderStyle.Thin; styleCenter.WrapText = true; IFont font = styleCenter.GetFont(hssfworkbook); font.Color = 10;//颜色 font.FontHeightInPoints = 10;//字体高度(与excel中的字号一致) styleCenter.SetFont(font); XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("焊口综合信息"); // recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9)); for (int i = 1; i <= tb.Rows.Count; i++) { try { var row = recordSheet.CreateRow(i); row.CreateCell(0).SetCellValue("" + i); row.CreateCell(1).SetCellValue(tb.Rows[i]["WorkAreaCode"] != DBNull.Value ? tb.Rows[i]["WorkAreaCode"].ToString() : ""); row.CreateCell(2).SetCellValue(tb.Rows[i]["ISO_ISONO"] != DBNull.Value ? tb.Rows[i]["ISO_ISONO"].ToString() : ""); row.CreateCell(3).SetCellValue(tb.Rows[i]["JOT_BelongPipe"] != DBNull.Value ? tb.Rows[i]["JOT_BelongPipe"].ToString() : ""); row.CreateCell(4).SetCellValue(tb.Rows[i]["JOT_JointNo"] != DBNull.Value ? tb.Rows[i]["JOT_JointNo"].ToString() : ""); try { row.CreateCell(5).SetCellValue(tb.Rows[i]["JOT_Dia"] != DBNull.Value ? ((decimal)tb.Rows[i]["JOT_Dia"]).ToString("##.#") : ""); } catch (Exception e) { } row.CreateCell(6).SetCellValue(tb.Rows[i]["JOT_Sch"] != DBNull.Value ? tb.Rows[i]["JOT_Sch"].ToString() : ""); row.CreateCell(7).SetCellValue(tb.Rows[i]["JOT_FactSch"] != DBNull.Value ? tb.Rows[i]["JOT_FactSch"].ToString() : ""); row.CreateCell(8).SetCellValue(tb.Rows[i]["STE_Name1"] != DBNull.Value ? tb.Rows[i]["STE_Name1"].ToString() : ""); row.CreateCell(9).SetCellValue(tb.Rows[i]["JOT_CellWelder"] != DBNull.Value ? tb.Rows[i]["JOT_CellWelder"].ToString() : ""); row.CreateCell(10).SetCellValue(tb.Rows[i]["JOT_FloorWelder"] != DBNull.Value ? tb.Rows[i]["JOT_FloorWelder"].ToString() : ""); row.CreateCell(11).SetCellValue(tb.Rows[i]["WeldingMethodName"] != DBNull.Value ? tb.Rows[i]["WeldingMethodName"].ToString() : ""); row.CreateCell(12).SetCellValue(tb.Rows[i]["DetectionRate"] != DBNull.Value ? tb.Rows[i]["DetectionRate"].ToString() : ""); row.CreateCell(13).SetCellValue(tb.Rows[i]["SER_NAME"] != DBNull.Value ? tb.Rows[i]["SER_NAME"].ToString() : ""); try { row.CreateCell(14).SetCellValue(tb.Rows[i]["JOT_WeldDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["JOT_WeldDate"]).ToString("yyyy-MM-dd") : ""); } catch (Exception e) { } row.CreateCell(15).SetCellValue(tb.Rows[i]["JOT_DailyReportNo"] != DBNull.Value ? tb.Rows[i]["JOT_DailyReportNo"].ToString() : ""); row.CreateCell(16).SetCellValue(tb.Rows[i]["CH_TRUSTCODE1"] != DBNull.Value ? tb.Rows[i]["CH_TRUSTCODE1"].ToString() : ""); row.CreateCell(17).SetCellValue(tb.Rows[i]["ProessName"] != DBNull.Value ? tb.Rows[i]["ProessName"].ToString() : ""); row.CreateCell(18).SetCellValue(tb.Rows[i]["JOT_HotRpt"] != DBNull.Value ? tb.Rows[i]["JOT_HotRpt"].ToString() : ""); try { row.CreateCell(19).SetCellValue(tb.Rows[i]["ProessDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["ProessDate"]).ToString("yyyy-MM-dd") : ""); } catch (Exception e) { } try { row.CreateCell(20).SetCellValue(tb.Rows[i]["CHT_CHECKDATE"] != DBNull.Value ? ((DateTime)tb.Rows[i]["CHT_FilmDate"]).ToString("yyyy-MM-dd") : ""); } catch (Exception e) { } row.CreateCell(21).SetCellValue(tb.Rows[i]["JOT_Size"] != DBNull.Value ? tb.Rows[i]["JOT_Size"].ToString() : ""); row.CreateCell(22).SetCellValue(tb.Rows[i]["WMT_MatCode"] != DBNull.Value ? tb.Rows[i]["WMT_MatCode"].ToString() : ""); row.CreateCell(23).SetCellValue(tb.Rows[i]["WMT_Matname"] != DBNull.Value ? tb.Rows[i]["WMT_Matname"].ToString() : ""); row.CreateCell(24).SetCellValue(tb.Rows[i]["HsCode"] != DBNull.Value ? tb.Rows[i]["HsCode"].ToString() : ""); row.CreateCell(25).SetCellValue(tb.Rows[i]["Hsname"] != DBNull.Value ? tb.Rows[i]["Hsname"].ToString() : ""); row.CreateCell(26).SetCellValue(tb.Rows[i]["JOT_JointDesc"] != DBNull.Value ? tb.Rows[i]["JOT_JointDesc"].ToString() : ""); row.CreateCell(27).SetCellValue(tb.Rows[i]["If_dkName"] != DBNull.Value ? tb.Rows[i]["If_dkName"].ToString() : ""); row.CreateCell(28).SetCellValue(tb.Rows[i]["HotHardCode"] != DBNull.Value ? tb.Rows[i]["HotHardCode"].ToString() : ""); try { row.CreateCell(29).SetCellValue(tb.Rows[i]["HotHardDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["HotHardDate"]).ToString("yyyy-MM-dd") : ""); } catch (Exception e) { } try { row.CreateCell(30).SetCellValue(tb.Rows[i]["CH_TrustDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["CH_TrustDate"]).ToString("yyyy-MM-dd") : ""); } catch (Exception e) { } row.CreateCell(31).SetCellValue(tb.Rows[i]["PTP_TestPackageNo"] != DBNull.Value ? tb.Rows[i]["PTP_TestPackageNo"].ToString() : ""); row.CreateCell(32).SetCellValue(tb.Rows[i]["WeldTypeCode"] != DBNull.Value ? tb.Rows[i]["WeldTypeCode"].ToString() : ""); if ((int)(90 * i / tb.Rows.Count) > percent) { percent = (int)(90 * i / tb.Rows.Count); } } catch (Exception) { } } using (FileStream filess = File.OpenWrite(ReportFileName)) { hssfworkbook.Write(filess); hssfworkbook.Close(); filess.Flush(); filess.Close(); } //PageContext.RegisterStartupScript(Window5.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.HJGL_JointInfoReportId, isoId, varValue, this.CurrUser.LoginProjectId))); percent = 100; url = ReportFileName.Replace(Server.MapPath("~/"), ""); // //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(); } [System.Web.Services.WebMethod] public static int getPercent() { return percent; } [System.Web.Services.WebMethod] public static string getUrl() { return url; } /// /// 导出方法 /// /// /// private string GetGridTableHtml(Grid grid) { StringBuilder sb = new StringBuilder(); grid.PageSize = this.Grid1.RecordCount; BindGrid(); sb.Append(""); sb.Append(""); sb.Append(""); foreach (GridColumn column in grid.Columns) { sb.AppendFormat("", column.HeaderText); } sb.Append(""); foreach (GridRow row in grid.Rows) { sb.Append(""); foreach (GridColumn column in grid.Columns) { string html = row.Values[column.ColumnIndex].ToString(); if (column.ColumnID == "tfNumber") { html = (row.FindControl("labNumber") as AspNet.Label).Text; } sb.AppendFormat("", html); } sb.Append(""); } var sumary = grid.SummaryData; if (sumary != null) { foreach (GridColumn column in grid.Columns) { try { if (sumary.ContainsKey(column.ColumnID)) { sb.AppendFormat("", sumary.GetValue(column.ColumnID).ToString()); } else { sb.AppendFormat("", ""); } } catch (Exception e) { sb.AppendFormat("", ""); } } } sb.Append("
{0}
{0}
{0}{0}{0}
"); return sb.ToString(); } #endregion #region DropDownList下拉 /// /// 单位下拉选择事件 /// /// /// protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e) { //this.drpWorkArea.Items.Clear(); //if (this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) //{ // BLL.WorkAreaService.InitWorkAreaProjectUnitDropDownList(this.drpWorkArea, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, true); // this.drpWorkArea.SelectedIndex = 0; //} } #endregion #region 报表打印 /// /// 报表打印 /// /// /// protected void btnPrint_Click(object sender, EventArgs e) { if (this.drpWorkArea.SelectedValue != BLL.Const._Null && this.drpWorkArea.SelectedValue != "") { BLL.Common.FastReportService.ResetData(); string strSql = @"SELECT v.*," + @" ci.CHT_FilmDate as CHT_CheckDate," + @" c.CHT_CheckCode CHT_CheckCode,c.CHT_CheckID" + @" FROM V_JOINTVIEW v left join CH_CheckItem ci on ci.JOT_ID=v.JOT_ID left join CH_Check c on ci.CHT_CheckID = c.CHT_CheckID WHERE 1=1 "; List listStr = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId), }; if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue)) { strSql += " AND v.WorkAreaId =@workareaId"; listStr.Add(new SqlParameter("@workareaId", this.drpWorkArea.SelectedValue)); } if (this.CurrUser.UnitId != Const.UnitId_TCC && this.CurrUser.UserId != Const.hfnbdId) { strSql += " AND v.UnitId = @UnitId"; listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId)); } if (!string.IsNullOrEmpty(this.txtJointDesc.Text.Trim())) { strSql += " AND v.JOT_JointDesc LIKE @JOT_JointDesc"; listStr.Add(new SqlParameter("@JOT_JointDesc", "%" + this.txtJointDesc.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { strSql += " AND v.ISO_ISONO LIKE @isoNo"; listStr.Add(new SqlParameter("@isoNo", "%" + this.txtIsoNo.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); DataView dv = tb.DefaultView;//获取表视图 dv.Sort = "WorkAreaCode,ISO_ISONO,JOT_JointNo ASC"; tb = dv.ToTable();//转为表 if (printType.SelectedValue == "0") //焊接工作记录 { Dictionary keyValuePairs = new Dictionary(); var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(this.drpWorkArea.SelectedValue); var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId); keyValuePairs.Add("WorkAreaName", workArea.WorkAreaName); keyValuePairs.Add("ProjectName", install.InstallationName); BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); if (tb != null) { DataTable dt = new DataTable(); dt.TableName = "Table1"; dt.Columns.Add("ISO_IsoNo"); dt.Columns.Add("JOT_JointNo"); dt.Columns.Add("WED_Code2"); dt.Columns.Add("JOT_JointDesc"); dt.Columns.Add("STE_Name1"); dt.Columns.Add("JOT_Location"); dt.Columns.Add("WeldingMethodName"); dt.Columns.Add("WeldMat"); dt.Columns.Add("JOT_PrepareTemp"); dt.Columns.Add("JOT_WeldDate"); DataRow[] rows = tb.DefaultView.ToTable().Select(); foreach (var row in rows) { var newRow = dt.NewRow(); newRow["ISO_IsoNo"] = row["ISO_ISONO"].ToString(); newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); newRow["WED_Code2"] = row["JOT_FloorWelder"].ToString(); newRow["JOT_JointDesc"] = row["JOT_JointDesc"].ToString(); newRow["STE_Name1"] = row["STE_Name1"].ToString(); newRow["JOT_Location"] = row["JOT_Location"].ToString(); newRow["WeldingMethodName"] = row["WeldingMethodName"].ToString(); newRow["WeldMat"] = row["WMT_Matname"].ToString(); newRow["JOT_PrepareTemp"] = row["JOT_PrepareTemp"].ToString(); newRow["JOT_WeldDate"] = string.Format("{0:yyyy-MM-dd}", row["JOT_WeldDate"]); dt.Rows.Add(newRow); } BLL.Common.FastReportService.AddFastreportTable(dt); } string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\管道焊接工作记录.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } else if (printType.SelectedValue == "1")// 焊接工艺评定 { Dictionary keyValuePairs = new Dictionary(); var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(this.drpWorkArea.SelectedValue); var install = BLL.Project_InstallationService.GetInstallationByInstallationId(workArea.InstallationId); keyValuePairs.Add("workarea", workArea.WorkAreaName); keyValuePairs.Add("install", install.InstallationName); BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); if (tb != null) { DataTable dt = new DataTable(); dt.TableName = "Table1"; dt.Columns.Add("ISO_IsoNo"); dt.Columns.Add("JOT_JointNo"); dt.Columns.Add("WED_Code"); dt.Columns.Add("WeldingMethodName"); dt.Columns.Add("JOT_Electricity"); dt.Columns.Add("JOT_Voltage"); dt.Columns.Add("JOT_PrepareTemp"); dt.Columns.Add("JOT_CellTemp"); dt.Columns.Add("JOT_LastTemp"); dt.Columns.Add("JOT_WeldDate"); DataRow[] rows = tb.DefaultView.ToTable().Select(); foreach (var row in rows) { var newRow = dt.NewRow(); newRow["ISO_IsoNo"] = row["ISO_ISONO"].ToString(); newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); newRow["WED_Code"] = row["JOT_FloorWelder"].ToString(); newRow["WeldingMethodName"] = row["WeldingMethodName"].ToString(); newRow["JOT_Electricity"] = row["JOT_Electricity"].ToString(); newRow["JOT_Voltage"] = row["JOT_Voltage"].ToString(); newRow["JOT_PrepareTemp"] = row["JOT_PrepareTemp"].ToString(); newRow["JOT_CellTemp"] = row["JOT_CellTemp"].ToString(); newRow["JOT_LastTemp"] = row["JOT_LastTemp"].ToString(); newRow["JOT_WeldDate"] = string.Format("{0:yyyy-MM-dd}", row["JOT_WeldDate"]); dt.Rows.Add(newRow); } BLL.Common.FastReportService.AddFastreportTable(dt); } string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\管道焊接工艺检查记录.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } else if (printType.SelectedValue == "2")// 焊接工艺评定 { if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { var q = (from x in Funs.DB.PW_IsoInfo where x.ProjectId == this.CurrUser.LoginProjectId && x.ISO_IsoNo.Contains(this.txtIsoNo.Text.Trim()) select x).FirstOrDefault(); if (q != null) { Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add("ISO_IsoNo", q.ISO_IsoNo); keyValuePairs.Add("ProjecctName", BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId));//工程名称 keyValuePairs.Add("WorkAreaName", BLL.WorkAreaService.GetWorkAreaNameByWorkAreaId(this.drpWorkArea.SelectedValue));//单位工程名称 keyValuePairs.Add("ISO_Specification", q.ISO_Specification); var material = Base_MaterialService.GetMaterialByMaterialId(q.MaterialId); keyValuePairs.Add("MaterialCode", material.MaterialCode);//设备材质 if (tb.Rows.Count > 0) { keyValuePairs.Add("WeldingMethodName", tb.Rows[0]["WeldingMethodName"].ToString());//焊接方法 keyValuePairs.Add("WeldSilk", tb.Rows[0]["hsname"].ToString());//焊接材料 } BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); if (tb != null) { DataTable dt = new DataTable(); dt.TableName = "Table1"; dt.Columns.Add("JOT_JointNo"); dt.Columns.Add("WED_Code"); dt.Columns.Add("JOT_JointDesc"); dt.Columns.Add("JOT_PrepareTemp"); dt.Columns.Add("JOT_Electricity"); dt.Columns.Add("JOT_Voltage"); dt.Columns.Add("JOT_WeldDate"); DataRow[] rows = tb.DefaultView.ToTable().Select(); foreach (var row in rows) { var newRow = dt.NewRow(); newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); newRow["WED_Code"] = row["JOT_FloorWelder"].ToString(); newRow["JOT_JointDesc"] = row["JOT_JointDesc"].ToString(); newRow["JOT_PrepareTemp"] = row["JOT_PrepareTemp"].ToString(); newRow["JOT_Electricity"] = row["JOT_Electricity"].ToString(); newRow["JOT_Voltage"] = row["JOT_Voltage"].ToString(); newRow["JOT_WeldDate"] = string.Format("{0:yyyy-MM-dd}", row["JOT_WeldDate"]); dt.Rows.Add(newRow); } BLL.Common.FastReportService.AddFastreportTable(dt); } string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\设备焊接工作记录.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } } else { Alert.ShowInTop("请输入管线号!", MessageBoxIcon.Warning); return; } } else if (printType.SelectedValue == "3") { string varValue = string.Empty; var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId); var workarea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(this.drpWorkArea.SelectedValue); var installationName = BLL.Project_InstallationService.GetInstallationByInstallationId(workarea.InstallationId).InstallationName; var unitName = BLL.UnitService.GetUnitNameByUnitId(workarea.UnitId); string rootPath = Server.MapPath("~/") + Const.ExcelUrl; //模板文件 string TempletFileName = Server.MapPath("~/") + "File/Excel/HJGL_DataOut/管道焊接接头报检检查记录.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); ICellStyle styleCenter = hssfworkbook.CreateCellStyle(); styleCenter.VerticalAlignment = VerticalAlignment.Center; styleCenter.Alignment = HorizontalAlignment.Center; styleCenter.BorderLeft = BorderStyle.Thin; styleCenter.BorderTop = BorderStyle.Thin; styleCenter.BorderRight = BorderStyle.Thin; styleCenter.BorderBottom = BorderStyle.Thin; styleCenter.WrapText = true; IFont font = styleCenter.GetFont(hssfworkbook); // font.Color = 10;//颜色 font.FontHeightInPoints = 10;//字体高度(与excel中的字号一致) styleCenter.SetFont(font); XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("管道焊接接头报检检查记录"); //var workArea = BLL.WorkAreaService.getWorkAreaByWorkAreaId(this.drpWorkArea.SelectedValue); recordSheet.GetRow(0).CreateCell(14).SetCellValue(installationName); recordSheet.GetRow(0).GetCell(14).CellStyle = styleCenter; recordSheet.GetRow(2).CreateCell(14).SetCellValue(workarea.WorkAreaName); recordSheet.GetRow(2).GetCell(14).CellStyle = styleCenter; recordSheet.GetRow(2).CreateCell(1).SetCellValue(unitName); recordSheet.GetRow(2).GetCell(1).CellStyle = styleCenter; recordSheet.GetRow(3).GetCell(8).CellStyle = styleCenter; recordSheet.GetRow(2).GetCell(7).CellStyle = styleCenter; int i = 0; List items = Funs.DB.V_JOINTVIEW.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.WorkAreaId == this.drpWorkArea.SelectedValue && x.ISO_ISONO.Contains(this.txtIsoNo.Text.Trim())).OrderBy(x => x.JOT_JointNo).ToList(); var ndtt = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(items[0].DetectionTypeId); if (ndtt != null) { recordSheet.GetRow(3).CreateCell(8).SetCellValue(ndtt.DetectionTypeCode); } recordSheet.GetRow(3).CreateCell(14).SetCellValue(items.Count + "个"); recordSheet.GetRow(3).GetCell(14).CellStyle = styleCenter; if (items.Count > 11) { recordSheet.ShiftRows(17, 19, items.Count - 11); for (int j = 0; j < items.Count - 11; j++) { recordSheet.CopyRow(16 + j, 17 + j); } recordSheet.GetRow(items.Count + 7).Height = recordSheet.GetRow(items.Count + 5).Height; recordSheet.GetRow(items.Count + 6).Height = recordSheet.GetRow(items.Count + 5).Height; } foreach (var t in items) { var dDetectionRate = Funs.DB.Base_DetectionRate.FirstOrDefault(x => x.DetectionRateId == t.DetectionRateId); if (dDetectionRate != null) { recordSheet.GetRow(3).CreateCell(18).SetCellValue(dDetectionRate.DetectionRateValue + "%"); recordSheet.GetRow(3).GetCell(18).CellStyle = styleCenter; } recordSheet.GetRow(i + 6).CreateCell(0).SetCellValue((i + 1) + ""); recordSheet.GetRow(i + 6).GetCell(0).CellStyle = styleCenter; recordSheet.GetRow(i + 6).CreateCell(1).SetCellValue(t.ISO_ISONO); recordSheet.GetRow(i + 6).GetCell(1).CellStyle = styleCenter; recordSheet.GetRow(i + 6).CreateCell(3).SetCellValue(t.JOT_JointNo); recordSheet.GetRow(i + 6).GetCell(3).CellStyle = styleCenter; string welderCode = t.JOT_CellWelder; if (!string.IsNullOrEmpty(t.JOT_FloorWelder)) { if (!string.IsNullOrEmpty(welderCode)) { if (welderCode != t.JOT_FloorWelder) { welderCode += "," + t.JOT_FloorWelder; } } else { welderCode = t.JOT_FloorWelder; } } recordSheet.GetRow(i + 6).CreateCell(4).SetCellValue(welderCode); recordSheet.GetRow(i + 6).GetCell(4).CellStyle = styleCenter; #region 查找委托中的检测类型并赋给检测类型变量 recordSheet.GetRow(i + 6).CreateCell(6).SetCellValue(t.JOT_JointDesc); recordSheet.GetRow(i + 6).GetCell(6).CellStyle = styleCenter; recordSheet.GetRow(i + 6).CreateCell(7).SetCellValue(t.STE_Name1); recordSheet.GetRow(i + 6).GetCell(7).CellStyle = styleCenter; recordSheet.GetRow(i + 6).CreateCell(10).SetCellValue(t.JOT_Location); recordSheet.GetRow(i + 6).GetCell(10).CellStyle = styleCenter; recordSheet.GetRow(i + 6).CreateCell(11).SetCellValue(t.WeldingMethodName); recordSheet.GetRow(i + 6).GetCell(11).CellStyle = styleCenter; string weldMat = ""; if (!string.IsNullOrEmpty(t.JOT_WeldSilk)) { var consumables = Funs.DB.Base_Consumables.FirstOrDefault(x => x.ConsumablesId == t.JOT_WeldSilk); if (consumables != null) { weldMat = consumables.ConsumablesName; } } if (!string.IsNullOrEmpty(t.WMT_Matname)) { var consumables = Funs.DB.Base_Consumables.FirstOrDefault(x => x.ConsumablesId == t.JOT_WeldMat); if (consumables != null) { if (!string.IsNullOrEmpty(weldMat)) { weldMat += "," + consumables.ConsumablesName; } else { weldMat = consumables.ConsumablesName; } } } recordSheet.GetRow(i + 6).CreateCell(12).SetCellValue(weldMat); recordSheet.GetRow(i + 6).GetCell(12).CellStyle = styleCenter; if (t.JOT_PrepareTemp.HasValue) { recordSheet.GetRow(i + 6).CreateCell(14).SetCellValue(t.JOT_PrepareTemp.Value.ToString("##.#")); recordSheet.GetRow(i + 6).GetCell(14).CellStyle = styleCenter; } recordSheet.GetRow(i + 6).CreateCell(16).SetCellValue("合格"); recordSheet.GetRow(i + 6).GetCell(16).CellStyle = styleCenter; #endregion i++; } 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(); } else if (printType.SelectedValue == "4") { if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim())) { Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add("ProjecctName", BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId));//工程名称 keyValuePairs.Add("WorkAreaName", BLL.WorkAreaService.GetWorkAreaNameByWorkAreaId(this.drpWorkArea.SelectedValue));//单位工程名称 BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); String strSql1 = @" select iso.ISO_IsoNo,jot.JOT_JointNo,PointCount,RequiredT,ActualT,RequestTime,ActualTime,ProessDate,RecordChartNo ,m.MaterialCode,JOT_JointDesc from PW_JointInfo jot left join PW_IsoInfo iso on jot.ISO_ID=iso.ISO_ID left join HJGL_HotProess_Report hot on jot.JOT_ID = hot.WeldJointId left join Base_Material m on jot.MaterialId=m.MaterialId WHERE hot.WeldJointId is not null and jot.ProjectId= @projectId AND iso.ISO_IsoNo like @isoNo "; List listStr1 = new List { new SqlParameter("@projectId", this.CurrUser.LoginProjectId), new SqlParameter("@isoNo", "%"+this.txtIsoNo.Text.Trim()+"%"), }; SqlParameter[] parameter2 = listStr1.ToArray(); DataTable tb2 = SQLHelper.GetDataTableRunText(strSql1, parameter2); DataView dv2 = tb2.DefaultView;//获取表视图 //dv2.Sort = " iso.ISO_IsoNo,jot.JOT_JointNo ASC"; tb2 = dv2.ToTable();//转为表 if (tb2 != null) { DataTable dt = new DataTable(); dt.TableName = "Table1"; dt.Columns.Add("ISO_IsoNo"); dt.Columns.Add("JOT_JointNo"); dt.Columns.Add("PointCount"); dt.Columns.Add("RequiredT"); dt.Columns.Add("ActualT"); dt.Columns.Add("RequestTime"); dt.Columns.Add("ActualTime"); dt.Columns.Add("MaterialCode"); dt.Columns.Add("JOT_JointDesc"); dt.Columns.Add("ProessDate"); dt.Columns.Add("RecordChartNo"); DataRow[] rows = tb2.DefaultView.ToTable().Select(); foreach (var row in rows) { var newRow = dt.NewRow(); newRow["ISO_IsoNo"] = row["ISO_IsoNo"].ToString(); newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); newRow["PointCount"] = row["PointCount"].ToString(); newRow["RequiredT"] = row["RequiredT"].ToString(); newRow["ActualT"] = row["ActualT"].ToString(); newRow["RequestTime"] = string.Format("{0:yyyy-MM-dd}", row["RequestTime"].ToString()); newRow["ActualTime"] = string.Format("{0:yyyy-MM-dd}", row["ActualTime"].ToString()); newRow["MaterialCode"] = row["MaterialCode"].ToString(); newRow["JOT_JointDesc"] = row["JOT_JointDesc"].ToString(); newRow["ProessDate"] = string.Format("{0:yyyy-MM-dd}", row["ProessDate"]); newRow["RecordChartNo"] = row["RecordChartNo"].ToString(); dt.Rows.Add(newRow); } BLL.Common.FastReportService.AddFastreportTable(dt); } string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\管道焊接接头热处理报告.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } } else { Alert.ShowInTop("请输入管线号!", MessageBoxIcon.Warning); return; } } else { Alert.ShowInTop("请选择施工区域!", MessageBoxIcon.Warning); return; } } #endregion } }