348 lines
12 KiB
C#
348 lines
12 KiB
C#
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
|
|
|
|
}
|
|
} |