ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/HJGL/WeldingReport/InspectionBatchItem.aspx.cs

508 lines
20 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 System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using System.IO;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using BLL;
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class InspectionBatchItem : PageBase
{
/// <summary>
/// 批次
/// </summary>
public string BatchId
{
get
{
return (string)ViewState["BatchId"];
}
set
{
ViewState["BatchId"] = value;
}
}
#region
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.BatchId = Request.Params["BatchId"];
this.drpProjectId.DataTextField = "ProjectCode";
this.drpProjectId.DataValueField = "ProjectId";
this.drpProjectId.DataSource = BLL.Base_ProjectService.GetProjectListByUserId(this.CurrUser.UserId, "1");
this.drpProjectId.DataBind();
Funs.FineUIPleaseSelect(this.drpProjectId);
this.drpNdtType.DataTextField = "NDT_Code";
this.drpNdtType.DataValueField = "NDT_ID";
this.drpNdtType.DataSource = BLL.HJGL_TestingService.GetNDTTypeNameList();
this.drpNdtType.DataBind();
Funs.FineUIPleaseSelect(this.drpNdtType);
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
btnSelectColumn.OnClientClick = Window1.GetShowReference("InspectionBatchShowColumn.aspx");
//btnSelectExportColumns.OnClientClick = Window2.GetShowReference("InspectionBatchSelectExportColumn.aspx");
// 绑定表格
BindGrid();
}
else
{
if (GetRequestEventArgument() == "reloadGrid")
{
BindGrid();
}
}
}
/// <summary>
/// 显示的列
/// </summary>
/// <param name="column"></param>
private void GetShowColumn(string column)
{
if (!string.IsNullOrEmpty(column))
{
this.Grid1.Columns[1].Hidden = true;
this.Grid1.Columns[2].Hidden = true;
this.Grid1.Columns[3].Hidden = true;
this.Grid1.Columns[4].Hidden = true;
this.Grid1.Columns[5].Hidden = true;
this.Grid1.Columns[6].Hidden = true;
this.Grid1.Columns[7].Hidden = true;
this.Grid1.Columns[8].Hidden = true;
this.Grid1.Columns[9].Hidden = true;
this.Grid1.Columns[10].Hidden = true;
this.Grid1.Columns[11].Hidden = true;
this.Grid1.Columns[12].Hidden = true;
this.Grid1.Columns[13].Hidden = true;
this.Grid1.Columns[14].Hidden = true;
this.Grid1.Columns[15].Hidden = true;
this.Grid1.Columns[16].Hidden = true;
this.Grid1.Columns[17].Hidden = true;
this.Grid1.Columns[18].Hidden = true;
this.Grid1.Columns[19].Hidden = true;
this.Grid1.Columns[20].Hidden = true;
this.Grid1.Columns[21].Hidden = true;
this.Grid1.Columns[22].Hidden = true;
this.Grid1.Columns[23].Hidden = true;
this.Grid1.Columns[24].Hidden = true;
this.Grid1.Columns[25].Hidden = true;
this.Grid1.Columns[26].Hidden = true;
this.Grid1.Columns[27].Hidden = true;
this.Grid1.Columns[28].Hidden = true;
this.Grid1.Columns[29].Hidden = true;
this.Grid1.Columns[30].Hidden = true;
this.Grid1.Columns[31].Hidden = true;
this.Grid1.Columns[32].Hidden = true;
this.Grid1.Columns[33].Hidden = true;
List<string> columns = column.Split(',').ToList();
foreach (var item in columns)
{
this.Grid1.Columns[Convert.ToInt32(item)].Hidden = false;
}
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = "select v.*,newid() as New_ID from (SELECT distinct * FROM HJGL_View_InspectionBatch WHERE 1=1";
List<SqlParameter> listStr = new List<SqlParameter>();
if (this.drpProjectId.SelectedValue != null && this.drpProjectId.SelectedValue != "null")
{
strSql += " AND ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.drpProjectId.SelectedValue));
}
if (!string.IsNullOrEmpty(this.BatchId))
{
strSql += " AND BatchId =@BatchId";
listStr.Add(new SqlParameter("@BatchId", this.BatchId));
}
if (!string.IsNullOrEmpty(this.txtIsoNo.Text.Trim()))
{
strSql += " AND ISO_IsoNo LIKE @IsoNo";
listStr.Add(new SqlParameter("@IsoNo", "%" + this.txtIsoNo.Text.Trim() + "%"));
}
if (this.drpNdtType.SelectedValue != Const._Null)
{
strSql += " AND CH_NDTMethod = @NdtType";
listStr.Add(new SqlParameter("@NdtType", this.drpNdtType.SelectedValue));
}
strSql += " ) v";
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();
//显示列
Model.Sys_UserShowColumns c = BLL.Sys_UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "3");
if (c != null)
{
this.GetShowColumn(c.Columns);
}
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Text_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
#endregion
//#region 表头过滤
///// <summary>
///// 表头过滤
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//protected void Grid1_FilterChange(object sender, EventArgs e)
//{
// BindGrid();
//}
//#endregion
#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
/// <summary>
/// 关闭弹出窗口刷新Grid
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
//int n = 0;
//foreach (GridRow dg in this.Grid1.Rows)
//{
// if (n > 0)
// {
// dg.CellAttributes[18].Add("style", "vnd.ms-excel.numberformat: @;");//第十一列的字段是[24928161122003E8]需要转换格式.
// }
// n++;
//}
Model.Sys_UserShowColumns c = BLL.Sys_UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "3");
List<string> columns = new List<string>();
if (c != null)
{
string[] items = ("0," + c.Columns).Split(',');
columns = new List<string>(items);
}
else
{
for (int i = 1; i <= Grid1.Columns.Count; i++)
{
columns.Add(i.ToString());
}
}
Response.ClearContent();
string filename = Funs.GetNewFileName();
//string style = @"<style> .text { mso-number-format:\@; } </script> ";
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, columns));
//Response.Write(style);
Response.End();
}
/// <summary>
/// 导出
/// </summary>
/// <param name="grid"></param>
/// <param name="columns"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid, List<string> columns)
{
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
//List<string> columnHeaderTexts = new List<string>(columns);
List<int> columnIndexs = new List<int>();
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
this.Grid1.PageSize = 10000;
BindGrid();
foreach (GridColumn column in grid.Columns)
{
if (columns.Contains(column.ColumnIndex.ToString()))
{
if (column.ColumnIndex == 0)
{
sb.AppendFormat("<td align='center' style='width:118px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 1)
{
sb.AppendFormat("<td align='center' style='width:118px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 2)
{
sb.AppendFormat("<td align='center' style='width:45px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 3)
{
sb.AppendFormat("<td align='center' style='width:41px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 4)
{
sb.AppendFormat("<td align='center' style='width:89px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 5)
{
sb.AppendFormat("<td align='center' style='width:151px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 6)
{
sb.AppendFormat("<td align='center' style='width:44px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 7)
{
sb.AppendFormat("<td align='center' style='width:44px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 8)
{
sb.AppendFormat("<td align='center' style='width:39px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 9)
{
sb.AppendFormat("<td align='center' style='width:62px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 10)
{
sb.AppendFormat("<td align='center' style='width:44px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 11)
{
sb.AppendFormat("<td align='center' style='width:113px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 12)
{
sb.AppendFormat("<td align='center' style='width:87px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 13)
{
sb.AppendFormat("<td align='center' style='width:100px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 14)
{
sb.AppendFormat("<td align='center' style='width:35px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 15)
{
sb.AppendFormat("<td align='center' style='width:46px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 16)
{
sb.AppendFormat("<td align='center' style='width:79px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 17)
{
sb.AppendFormat("<td align='center' style='width:41px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 18)
{
sb.AppendFormat("<td align='center' style='width:82px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 19)
{
sb.AppendFormat("<td align='center' style='width:78px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 20)
{
sb.AppendFormat("<td align='center' style='width:42px;'>{0}</td>", column.HeaderText);
}
else if (column.ColumnIndex == 21)
{
sb.AppendFormat("<td align='center' style='width:41px;'>{0}</td>", column.HeaderText);
}
else
{
sb.AppendFormat("<td align='center'>{0}</td>", column.HeaderText);
}
columnIndexs.Add(column.ColumnIndex);
}
}
sb.Append("</tr>");
int a = 1;
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
int columnIndex = 0;
foreach (object value in row.Values)
{
if (columnIndexs.Contains(columnIndex))
{
string html = value.ToString();
if (columnIndex == 0)
{
html = a.ToString();
}
if (html.StartsWith(Grid.TEMPLATE_PLACEHOLDER_PREFIX))
{
// 模板列
string templateID = html.Substring(Grid.TEMPLATE_PLACEHOLDER_PREFIX.Length);
Control templateCtrl = row.FindControl(templateID);
html = GetRenderedHtmlSource(templateCtrl);
}
//else
//{
// // 处理CheckBox
// if (html.Contains("f-grid-static-checkbox"))
// {
// if (!html.Contains("f-checked"))
// {
// html = "×";
// }
// else
// {
// html = "√";
// }
// }
// // 处理图片
// if (html.Contains("<img"))
// {
// string prefix = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "");
// html = html.Replace("src=\"", "src=\"" + prefix);
// }
//}
sb.AppendFormat("<td align='center'>{0}</td>", html);
}
columnIndex++;
a++;
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
/// <summary>
/// 获取控件渲染后的HTML源代码
/// </summary>
/// <param name="ctrl"></param>
/// <returns></returns>
private string GetRenderedHtmlSource(Control ctrl)
{
if (ctrl != null)
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
ctrl.RenderControl(htw);
return sw.ToString();
}
}
}
return String.Empty;
}
#endregion
#region
/// <summary>
/// 转换热处理类型
/// </summary>
/// <param name="pt"></param>
/// <returns></returns>
protected string ConvertProessTypes(object pt)
{
string name = string.Empty;
if (pt != null)
{
List<string> proessTypes = pt.ToString().Split('|').ToList();
foreach (var item in proessTypes)
{
if (item == "1")
{
name += "预热,";
}
else if (item == "2")
{
name += "消氢,";
}
else if (item == "3")
{
name += "后热,";
}
else if (item == "4")
{
name += "消应力热处理,";
}
else if (item == "5")
{
name += "稳定化处理,";
}
}
if (!string.IsNullOrEmpty(name))
{
name = name.Substring(0, name.LastIndexOf(","));
}
}
return name;
}
#endregion
}
}