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;
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_CD && this.CurrUser.UnitId != Const.hfnbdId)
{
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 *"
+ @" FROM V_JOINTVIEW WHERE 1=1 ";
List listStr = new List();
strSql += " AND ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue))
{
strSql += " AND WorkAreaId =@workareaId";
listStr.Add(new SqlParameter("@workareaId", this.drpWorkArea.SelectedValue));
}
if (this.CurrUser.UnitId!=Const.UnitId_CD&&this.CurrUser.UserId!=Const.hfnbdId)
{
strSql += " AND UnitId = @UnitId";
listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId));
}
if (!string.IsNullOrEmpty(this.txtJointDesc.Text.Trim()))
{
strSql += " AND JOT_JointDesc LIKE @JOT_JointDesc";
listStr.Add(new SqlParameter("@JOT_JointDesc", "%" + this.txtJointDesc.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim()))
{
strSql += " AND ISO_ISONO LIKE @isoNo";
listStr.Add(new SqlParameter("@isoNo", "%" + this.txtIsoNo.Text.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();
}
///
/// 改变索引事件
///
///
///
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
#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 *"
+ @" FROM V_JOINTVIEW WHERE ";
List listStr = new List();
strSql += " ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue))
{
strSql += " AND WorkAreaId =@workareaId";
listStr.Add(new SqlParameter("@workareaId", this.drpWorkArea.SelectedValue));
}
if (this.CurrUser.UnitId != Const.UnitId_CD && this.CurrUser.UserId != Const.hfnbdId)
{
strSql += " AND UnitId = @UnitId";
listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId));
}
if (!string.IsNullOrEmpty(this.txtJointDesc.Text.Trim()))
{
strSql += " AND JOT_JointDesc LIKE @JOT_JointDesc";
listStr.Add(new SqlParameter("@JOT_JointDesc", "%" + this.txtJointDesc.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim()))
{
strSql += " AND 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() : "");
row.CreateCell(5).SetCellValue(tb.Rows[i]["JOT_Dia"] != DBNull.Value ? ((decimal)tb.Rows[i]["JOT_Dia"]).ToString("##.#") : "");
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]["MetalType"] != DBNull.Value ? tb.Rows[i]["MetalType"].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() : "");
row.CreateCell(14).SetCellValue(tb.Rows[i]["JOT_WeldDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["JOT_WeldDate"]).ToString("yyyy-MM-dd") : "");
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() : "");
row.CreateCell(19).SetCellValue(tb.Rows[i]["CHT_CHECKDATE"] != DBNull.Value ? ((DateTime)tb.Rows[i]["CHT_CHECKDATE"]).ToString("yyyy-MM-dd") : "");
row.CreateCell(20).SetCellValue(tb.Rows[i]["JOT_Size"] != DBNull.Value ? tb.Rows[i]["JOT_Size"].ToString() : "");
row.CreateCell(21).SetCellValue(tb.Rows[i]["WMT_MatCode"] != DBNull.Value ? tb.Rows[i]["WMT_MatCode"].ToString() : "");
row.CreateCell(22).SetCellValue(tb.Rows[i]["WMT_Matname"] != DBNull.Value ? tb.Rows[i]["WMT_Matname"].ToString() : "");
row.CreateCell(23).SetCellValue(tb.Rows[i]["HsCode"] != DBNull.Value ? tb.Rows[i]["HsCode"].ToString() : "");
row.CreateCell(24).SetCellValue(tb.Rows[i]["Hsname"] != DBNull.Value ? tb.Rows[i]["Hsname"].ToString() : "");
row.CreateCell(25).SetCellValue(tb.Rows[i]["JOT_JointDesc"] != DBNull.Value ? tb.Rows[i]["JOT_JointDesc"].ToString() : "");
row.CreateCell(26).SetCellValue(tb.Rows[i]["If_dkName"] != DBNull.Value ? tb.Rows[i]["If_dkName"].ToString() : "");
row.CreateCell(27).SetCellValue(tb.Rows[i]["HotHardCode"] != DBNull.Value ? tb.Rows[i]["HotHardCode"].ToString() : "");
row.CreateCell(28).SetCellValue(tb.Rows[i]["HotHardDate"] != DBNull.Value ? ((DateTime)tb.Rows[i]["HotHardDate"]).ToString("yyyy-MM-dd") : "");
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("{0} | ", 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("{0} | ", html);
}
sb.Append("
");
}
var sumary = grid.SummaryData;
if (sumary != null)
{
foreach (GridColumn column in grid.Columns)
{
try
{
if (sumary.ContainsKey(column.ColumnID))
{
sb.AppendFormat("{0} | ", sumary.GetValue(column.ColumnID).ToString());
}
else
{
sb.AppendFormat("{0} | ", "");
}
}
catch (Exception e)
{
sb.AppendFormat("{0} | ", "");
}
}
}
sb.Append("
");
return sb.ToString();
}
#endregion
}
}