SGGL_HBAZ/SGGL/FineUIPro.Web/HJGL/WeldingReport/ArriveDetail.aspx.cs

348 lines
12 KiB
C#
Raw Normal View History

2025-02-12 09:27:47 +08:00
using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using AspNet = System.Web.UI.WebControls;
using FineUIPro.Web.Controls;
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class ArriveDetail : PageBase
{
private string ISO_ID
{
get
{
return (string)ViewState["ISO_ID"];
}
set
{
ViewState["ISO_ID"] = value;
}
}
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ISO_ID = Request.Params["ISO_ID"];
Funs.DropDownPageSize(this.ddlPageSize);
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
//BindGrid();
}
}
#endregion
#region BindGrid
/// <summary>
///
/// </summary>
private DataTable tb = null;
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string sql = @"select PMSID id,* from (
SELECT Pipeline
,IdentCode
,ShortDescription
,Quantity
,Quantity -PPQuantity NeedQuantity
,Unit
,Material
,NominalDiameter
,Remark
,Col_1
,Col_2
,Col_3
,PPQuantity
,ProjectId
,WorkAreaId
,ISO_IsoNo
,ISO_ID
,PMMID
,PMSID
,MaterialID
,Sort
,(select WorkAreaCode from ProjectData_WorkArea where WorkAreaId=CL_PMaterialS.WorkAreaId) as WorkAreaCode
,(select sum(ppquantity)/sum(quantity) from CL_PMaterialS b where b.ProjectId=CL_PMaterialS.ProjectId and b.ISO_ID=CL_PMaterialS.ISO_ID) as dhl
FROM CL_PMaterialS ) a
where dhl<1 and Quantity>PPQuantity and a.ProjectId='" + this.CurrUser.LoginProjectId + "' ";
if (!string.IsNullOrEmpty(this.ISO_ID))
{
sql += " and a.ISO_ID='" + this.ISO_ID + "' ";
}
sql += " order by a.ISO_ID";
//List<SqlParameter> listStr = new List<SqlParameter>
//{
// new SqlParameter("@projectId", this.CurrUser.LoginProjectId)
//};
//SqlParameter[] parameter = listStr.ToArray();
tb = SQLHelper.GetDataTableRunText(sql, null);
if (tb != null)
{
DataTable dt = tb.Copy();
string isoid = "";
double ppquantity = 0;
double quantity = 0;
DataRow newrow = null;
int jotnum = 0;
for (int i = tb.Rows.Count - 1; i >=0; i--)
{
if (isoid != dt.Rows[i]["ISO_ID"].ToString())
{
if (newrow != null)
{
newrow["PPQuantity"] = ppquantity.ToString("0.0000");
newrow["Quantity"] = quantity.ToString("0.0000");
newrow["NeedQuantity"] = (quantity - ppquantity).ToString("0.0000");
newrow["id"] = Guid.NewGuid().ToString();
dt.Rows.InsertAt(newrow, i + jotnum+1);
}
newrow = dt.NewRow();
isoid = dt.Rows[i]["ISO_ID"].ToString();
if (!string.IsNullOrEmpty(tb.Rows[i]["PPQuantity"].ToString()))
{
ppquantity = double.Parse(tb.Rows[i]["PPQuantity"].ToString());
}
if (!string.IsNullOrEmpty(tb.Rows[i]["Quantity"].ToString()))
{
quantity = double.Parse(tb.Rows[i]["Quantity"].ToString());
}
jotnum = 1;
}
else
{
jotnum++;
if (!string.IsNullOrEmpty(tb.Rows[i]["PPQuantity"].ToString()))
{
ppquantity += double.Parse(tb.Rows[i]["PPQuantity"].ToString());
}
if (!string.IsNullOrEmpty(tb.Rows[i]["Quantity"].ToString()))
{
quantity += double.Parse(tb.Rows[i]["Quantity"].ToString());
}
}
}
if (newrow != null)
{
newrow["PPQuantity"] = ppquantity.ToString("0.0000");
newrow["Quantity"] = quantity.ToString("0.0000");
newrow["NeedQuantity"] = (quantity - ppquantity).ToString("0.0000");
newrow["id"] = Guid.NewGuid().ToString();
dt.Rows.InsertAt(newrow, jotnum );
}
FilteredTable filteredTable = new FilteredTable();
filteredTable.FilterDataRowItem = FilterDataRowItemImplement;
tb = filteredTable.GetFilteredTable(Grid1.FilteredData, dt);
this.Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
private bool FilterDataRowItemImplement(object sourceObj, string fillteredOperator, JToken fillteredObj, string column)
{
bool valid = false;
// if (column == "Name")
{
string sourceValue = sourceObj.ToString();
string fillteredValue = fillteredObj.Value<string>();
if (fillteredOperator == "equal")
{
if (sourceValue == fillteredValue)
{
valid = true;
}
}
else if (fillteredOperator == "contain")
{
if (sourceValue.Contains(fillteredValue))
{
valid = true;
}
}
else if (fillteredOperator == "start")
{
if (sourceValue.StartsWith(fillteredValue))
{
valid = true;
}
}
else if (fillteredOperator == "end")
{
if (sourceValue.EndsWith(fillteredValue))
{
valid = true;
}
}
}
return valid;
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
this.BindGrid();
}
#endregion
#region Grid行绑定事件
/// <summary>
/// Grid行绑定事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
if (e.Values[2] == null || string.IsNullOrEmpty(e.Values[2].ToString()))
{
e.RowCssClass = "color1";
}
}
#endregion
#region
/// <summary>
/// 统计
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnAnalyse_Click(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
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();
}
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid)
{
StringBuilder sb = new StringBuilder();
grid.PageSize = this.Grid1.RecordCount;
BindGrid();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
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("<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>", html);
}
sb.Append("</tr>");
}
var sumary = grid.SummaryData;
if (sumary != null)
{
foreach (GridColumn column in grid.Columns)
{
try
{
if (sumary.ContainsKey(column.ColumnID))
{
sb.AppendFormat("<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>", sumary.GetValue(column.ColumnID).ToString());
}
else
{
sb.AppendFormat("<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>", "");
}
}
catch (Exception e)
{
sb.AppendFormat("<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>", "");
}
}
}
sb.Append("</table>");
return sb.ToString();
}
#endregion
}
}