2023-10-24 14:23:46 +08:00
|
|
|
|
using BLL;
|
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Web;
|
|
|
|
|
|
using System.Web.UI;
|
|
|
|
|
|
using System.Web.UI.WebControls;
|
|
|
|
|
|
|
|
|
|
|
|
namespace FineUIPro.Web.PHTGL.ContractCompile
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class ContractTrackProgressDetectionGrid : PageBase
|
|
|
|
|
|
{
|
|
|
|
|
|
#region Page_Init
|
|
|
|
|
|
|
|
|
|
|
|
// 注意:动态创建的代码需要放置于Page_Init(不是Page_Load),这样每次构造页面时都会执行
|
|
|
|
|
|
protected void Page_Init(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
InitGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
public DataTable GridTable=new DataTable();
|
|
|
|
|
|
private void InitGrid()
|
|
|
|
|
|
{
|
|
|
|
|
|
FineUIPro.BoundField bf;
|
|
|
|
|
|
FineUIPro.RenderField rf;
|
|
|
|
|
|
FineUIPro.TextBox txTextBox;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ContractId = Request.Params["ContractId"];
|
|
|
|
|
|
|
|
|
|
|
|
GridTable.Columns.Add("Id");
|
|
|
|
|
|
ListItem[] list = new ListItem[8];
|
|
|
|
|
|
list[0] = new ListItem("主项号", "MainItemCode");
|
|
|
|
|
|
list[1] = new ListItem("主项名称", "MainItemName");
|
|
|
|
|
|
list[2] = new ListItem("专业工程名称", "MajorName");
|
|
|
|
|
|
list[3] = new ListItem("专业代码", "MajorCode");
|
|
|
|
|
|
list[4] = new ListItem("分部工程", "SubProject");
|
|
|
|
|
|
list[5] = new ListItem("分项工程", "SubItemProject");
|
|
|
|
|
|
list[6] = new ListItem("项目编码", "ProjectCode");
|
|
|
|
|
|
list[7] = new ListItem("项目名称", "ProjectName");
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in list)
|
|
|
|
|
|
{
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = item.Value;
|
|
|
|
|
|
bf.DataField = item.Value;
|
|
|
|
|
|
bf.HeaderText = item.Text;
|
|
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
Grid1.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(item.Value);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(ContractId))
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.PHTGL_ContractTrack queryContractTrack = new Model.PHTGL_ContractTrack();
|
|
|
|
|
|
queryContractTrack.ProjectId = this.CurrUser.LoginProjectId;
|
|
|
|
|
|
queryContractTrack.ContractId = this.ContractId;
|
|
|
|
|
|
var modelContractTracks = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack);
|
|
|
|
|
|
if (modelContractTracks.Count==0) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Model.PHTGL_ContractTrackProgress table = new Model.PHTGL_ContractTrackProgress();
|
|
|
|
|
|
table.ContractTrackId = modelContractTracks[0].Id;
|
|
|
|
|
|
var tb = BLL.PhtglContracttrackprogressService.GetPHTGL_ContractTrackProgressByModle(table);
|
|
|
|
|
|
foreach (var item in tb)
|
|
|
|
|
|
{
|
|
|
|
|
|
//string date = item.Date.Replace("-", "");
|
|
|
|
|
|
string date = item.Date+"#" ;
|
|
|
|
|
|
GroupField p = new GroupField();
|
|
|
|
|
|
p.HeaderText = item.Date;
|
|
|
|
|
|
p.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p1 = new GroupField();
|
|
|
|
|
|
p1.HeaderText = "当月进展情况";
|
|
|
|
|
|
p1.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p1BCWS = new GroupField();
|
|
|
|
|
|
p1BCWS.HeaderText = "BCWS";
|
|
|
|
|
|
p1BCWS.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p1ACWP = new GroupField();
|
|
|
|
|
|
p1ACWP.HeaderText = "ACWP";
|
|
|
|
|
|
p1ACWP.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p2 = new GroupField();
|
|
|
|
|
|
p2.HeaderText = "累计进展情况";
|
|
|
|
|
|
p2.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p2BCWS = new GroupField();
|
|
|
|
|
|
p2BCWS.HeaderText = "BCWS";
|
|
|
|
|
|
p2BCWS.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
GroupField p2ACWP = new GroupField();
|
|
|
|
|
|
p2ACWP.HeaderText = "ACWP";
|
|
|
|
|
|
p2ACWP.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
|
|
#region 当月进展情况
|
|
|
|
|
|
|
|
|
|
|
|
#region BCWS
|
|
|
|
|
|
|
|
|
|
|
|
txTextBox = new FineUIPro.TextBox();
|
|
|
|
|
|
txTextBox.ID = "txt" +date+ "BCWS_Quantity";
|
|
|
|
|
|
rf = new RenderField();
|
|
|
|
|
|
rf.ColumnID = date+"BCWS_Quantity";
|
|
|
|
|
|
rf.DataField = date+"BCWS_Quantity";
|
|
|
|
|
|
rf.HeaderText = "工程量";
|
|
|
|
|
|
rf.TextAlign = FineUIPro.TextAlign.Left;
|
|
|
|
|
|
rf.Editor.Add(txTextBox);
|
|
|
|
|
|
p1BCWS.Columns.Add(rf);
|
|
|
|
|
|
|
|
|
|
|
|
GridTable.Columns.Add(date + "BCWS_Quantity");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "BCWS_OutputValue";
|
|
|
|
|
|
bf.DataField = date + "BCWS_OutputValue";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "产值(元)";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p1BCWS.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "BCWS_OutputValue");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "BCWS_Percentage";
|
|
|
|
|
|
bf.DataField = date + "BCWS_Percentage";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "百分比/%";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p1BCWS.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "BCWS_Percentage");
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region ACWP
|
|
|
|
|
|
|
|
|
|
|
|
txTextBox = new FineUIPro.TextBox();
|
|
|
|
|
|
txTextBox.ID = "txt" + date + "ACWP_Quantity";
|
|
|
|
|
|
rf = new RenderField();
|
|
|
|
|
|
rf.ColumnID = date + "ACWP_Quantity";
|
|
|
|
|
|
rf.DataField = date + "ACWP_Quantity";
|
|
|
|
|
|
rf.HeaderText = "工程量";
|
|
|
|
|
|
rf.TextAlign = FineUIPro.TextAlign.Left;
|
|
|
|
|
|
rf.Editor.Add(txTextBox);
|
|
|
|
|
|
p1ACWP.Columns.Add(rf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "ACWP_Quantity");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "ACWP_OutputValue";
|
|
|
|
|
|
bf.DataField = date + "ACWP_OutputValue";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "产值(元)";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p1ACWP.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "ACWP_OutputValue");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "ACWP_Percentage";
|
|
|
|
|
|
bf.DataField = date + "ACWP_Percentage";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "百分比/%";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p1ACWP.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "ACWP_Percentage");
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 累计进展情况
|
|
|
|
|
|
|
|
|
|
|
|
#region BCWS
|
|
|
|
|
|
|
|
|
|
|
|
txTextBox = new FineUIPro.TextBox();
|
|
|
|
|
|
txTextBox.ID = "txt" + date + "SumBCWS_Quantity";
|
|
|
|
|
|
rf = new RenderField();
|
|
|
|
|
|
rf.ColumnID = date + "SumBCWS_Quantity";
|
|
|
|
|
|
rf.DataField = date + "SumBCWS_Quantity";
|
|
|
|
|
|
rf.HeaderText = "工程量";
|
|
|
|
|
|
rf.TextAlign = FineUIPro.TextAlign.Left;
|
|
|
|
|
|
rf.Editor.Add(txTextBox);
|
|
|
|
|
|
p2BCWS.Columns.Add(rf);
|
|
|
|
|
|
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumBCWS_Quantity");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "SumBCWS_OutputValue";
|
|
|
|
|
|
bf.DataField = date + "SumBCWS_OutputValue";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "产值(元)";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p2BCWS.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumBCWS_OutputValue");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "SumBCWS_Percentage";
|
|
|
|
|
|
bf.DataField = date + "SumBCWS_Percentage";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "百分比/%";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p2BCWS.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumBCWS_Percentage");
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region ACWP
|
|
|
|
|
|
|
|
|
|
|
|
txTextBox = new FineUIPro.TextBox();
|
|
|
|
|
|
txTextBox.ID = "txt" + date + "SumACWP_Quantity";
|
|
|
|
|
|
rf = new RenderField();
|
|
|
|
|
|
rf.ColumnID = date + "SumACWP_Quantity";
|
|
|
|
|
|
rf.DataField = date + "SumACWP_Quantity";
|
|
|
|
|
|
rf.HeaderText = "工程量";
|
|
|
|
|
|
rf.TextAlign = FineUIPro.TextAlign.Left;
|
|
|
|
|
|
rf.Editor.Add(txTextBox);
|
|
|
|
|
|
p2ACWP.Columns.Add(rf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumACWP_Quantity");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "SumACWP_OutputValue";
|
|
|
|
|
|
bf.DataField = date + "SumACWP_OutputValue";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "产值(元)";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p2ACWP.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumACWP_OutputValue");
|
|
|
|
|
|
|
|
|
|
|
|
bf = new FineUIPro.BoundField();
|
|
|
|
|
|
bf.ColumnID = date + "SumACWP_Percentage";
|
|
|
|
|
|
bf.DataField = date + "SumACWP_Percentage";
|
2023-10-25 23:30:52 +08:00
|
|
|
|
bf.HeaderText = "百分比/%";
|
2023-10-24 14:23:46 +08:00
|
|
|
|
bf.HeaderTextAlign = TextAlign.Center;
|
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
|
p2ACWP.Columns.Add(bf);
|
|
|
|
|
|
GridTable.Columns.Add(date + "SumACWP_Percentage");
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
p1.Columns.Add(p1BCWS);
|
|
|
|
|
|
p1.Columns.Add(p1ACWP);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p2.Columns.Add(p2BCWS);
|
|
|
|
|
|
p2.Columns.Add(p2ACWP);
|
|
|
|
|
|
|
|
|
|
|
|
p.Columns.Add(p1);
|
|
|
|
|
|
p.Columns.Add(p2);
|
|
|
|
|
|
|
|
|
|
|
|
Grid1.Columns.Add(p);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
public string ContractId
|
|
|
|
|
|
{
|
|
|
|
|
|
get => (string)ViewState["ContractId"];
|
|
|
|
|
|
set => ViewState["ContractId"] = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!IsPostBack)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.GetButtonPower();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 绑定表格
|
|
|
|
|
|
this.BindGrid();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 绑定数据
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 绑定数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void BindGrid()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string .IsNullOrEmpty(ContractId))
|
|
|
|
|
|
{
|
|
|
|
|
|
DataRow row;
|
|
|
|
|
|
Model.PHTGL_ContractTrack queryContractTrack = new Model.PHTGL_ContractTrack();
|
|
|
|
|
|
queryContractTrack.ProjectId = this.CurrUser.LoginProjectId;
|
|
|
|
|
|
queryContractTrack.ContractId = this.ContractId;
|
|
|
|
|
|
var modelContractTracks = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack);
|
|
|
|
|
|
foreach (var item in modelContractTracks)
|
|
|
|
|
|
{
|
|
|
|
|
|
row= GridTable.NewRow();
|
|
|
|
|
|
row["Id"] = item.Id;
|
|
|
|
|
|
row["MainItemCode"] = item.MainItemCode;
|
|
|
|
|
|
row["MainItemName"] = item.MainItemName;
|
|
|
|
|
|
row["MajorName"] = item.MajorName;
|
|
|
|
|
|
row["MajorCode"] = item.MajorCode;
|
|
|
|
|
|
row["SubProject"] = item.SubProject;
|
|
|
|
|
|
row["SubItemProject"] = item.SubItemProject;
|
|
|
|
|
|
row["ProjectCode"] = item.ProjectCode;
|
|
|
|
|
|
row["ProjectName"] = item.ProjectName;
|
|
|
|
|
|
|
|
|
|
|
|
Model.PHTGL_ContractTrackProgress qContractTrackProgress = new Model.PHTGL_ContractTrackProgress();
|
|
|
|
|
|
qContractTrackProgress.ContractTrackId = item.Id;
|
|
|
|
|
|
var modelContractTrackProgresses = BLL.PhtglContracttrackprogressService.GetPHTGL_ContractTrackProgressByModle(qContractTrackProgress);
|
|
|
|
|
|
foreach (var detail in modelContractTrackProgresses)
|
|
|
|
|
|
{
|
|
|
|
|
|
// var date=detail.Date.Replace("-", "");
|
|
|
|
|
|
var date=detail.Date + "#";
|
|
|
|
|
|
row[date+ "BCWS_Quantity"] = detail.BCWS_Quantity;
|
|
|
|
|
|
row[date+ "BCWS_OutputValue"] = detail.BCWS_OutputValue;
|
|
|
|
|
|
row[date+ "BCWS_Percentage"] = detail.BCWS_Percentage;
|
|
|
|
|
|
row[date+ "ACWP_Quantity"] = detail.ACWP_Quantity;
|
|
|
|
|
|
row[date+ "ACWP_OutputValue"] = detail.ACWP_OutputValue;
|
|
|
|
|
|
row[date+ "ACWP_Percentage"] = detail.ACWP_Percentage;
|
|
|
|
|
|
|
|
|
|
|
|
var SumModel = PhtglContracttrackprogressService.GetSumProgress(detail.ContractTrackProgressId);
|
|
|
|
|
|
row[date + "SumBCWS_Quantity"] = SumModel.BCWS_Quantity;
|
|
|
|
|
|
row[date + "SumBCWS_OutputValue"] = SumModel.BCWS_OutputValue;
|
|
|
|
|
|
row[date + "SumBCWS_Percentage"] = SumModel.BCWS_Percentage;
|
|
|
|
|
|
row[date + "SumACWP_Quantity"] = SumModel.ACWP_Quantity;
|
|
|
|
|
|
row[date + "SumACWP_OutputValue"] = SumModel.ACWP_OutputValue;
|
|
|
|
|
|
row[date + "SumACWP_Percentage"] = SumModel.ACWP_Percentage;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GridTable.Rows.Add(row);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Grid1.DataSource = GridTable;
|
|
|
|
|
|
Grid1.DataBind();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2023-10-27 09:00:21 +08:00
|
|
|
|
protected void Grid1_OnRowDataBound(object sender, GridRowEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(ContractId))
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.PHTGL_ContractTrack queryContractTrack = new Model.PHTGL_ContractTrack();
|
|
|
|
|
|
queryContractTrack.ProjectId = this.CurrUser.LoginProjectId;
|
|
|
|
|
|
queryContractTrack.ContractId = this.ContractId;
|
|
|
|
|
|
var modelContractTracks = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack);
|
|
|
|
|
|
foreach (var item in modelContractTracks)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Model.PHTGL_ContractTrackProgress qContractTrackProgress = new Model.PHTGL_ContractTrackProgress();
|
|
|
|
|
|
qContractTrackProgress.ContractTrackId = item.Id;
|
|
|
|
|
|
var modelContractTrackProgresses = BLL.PhtglContracttrackprogressService.GetPHTGL_ContractTrackProgressByModle(qContractTrackProgress);
|
|
|
|
|
|
foreach (var detail in modelContractTrackProgresses)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var date = detail.Date + "#";
|
|
|
|
|
|
RenderField rfRenderField1 = Grid1.FindColumn(date + "BCWS_Quantity") as RenderField;
|
|
|
|
|
|
BoundField bf1 = Grid1.FindColumn(date + "BCWS_OutputValue") as BoundField;
|
|
|
|
|
|
BoundField bf2 = Grid1.FindColumn(date + "BCWS_Percentage") as BoundField;
|
|
|
|
|
|
|
|
|
|
|
|
e.CellAttributes[rfRenderField1.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
e.CellAttributes[bf1.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
e.CellAttributes[bf2.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
|
|
|
|
|
|
RenderField rfRenderField2 = Grid1.FindColumn(date + "SumBCWS_Quantity") as RenderField;
|
|
|
|
|
|
BoundField bf3 = Grid1.FindColumn(date + "SumBCWS_OutputValue") as BoundField;
|
|
|
|
|
|
BoundField bf4 = Grid1.FindColumn(date + "SumBCWS_Percentage") as BoundField;
|
|
|
|
|
|
|
|
|
|
|
|
e.CellAttributes[rfRenderField2.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
e.CellAttributes[bf3.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
e.CellAttributes[bf4.ColumnIndex]["data-color"] = "color1";
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region GV 数据操作
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 过滤表头
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
//protected void Grid1_FilterChange(object sender, EventArgs e)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// this.BindGrid();
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 分页
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Grid1.PageIndex = e.NewPageIndex;
|
|
|
|
|
|
this.BindGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 排序
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void Grid1_Sort(object sender, GridSortEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Grid1.SortDirection = e.SortDirection;
|
|
|
|
|
|
this.Grid1.SortField = e.SortField;
|
|
|
|
|
|
this.BindGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 分页显示条数下拉框
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
this.BindGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 数据编辑事件
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 编辑按钮
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void btnEdit_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
string ID = Grid1.SelectedRowID;
|
|
|
|
|
|
var model = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackById(ID);
|
|
|
|
|
|
if (model != null) ///已上报时不能删除
|
|
|
|
|
|
{
|
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ContractTrackEdit.aspx?Id={0}", ID, "编辑 - ")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Grid行双击事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.btnEdit_Click(null, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected void btnSave_OnClick(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
JArray EditorArr = Grid1.GetMergedData();
|
|
|
|
|
|
if (EditorArr.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < EditorArr.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
JObject objects = (JObject)EditorArr[i];
|
|
|
|
|
|
|
|
|
|
|
|
var listfiled = objects["values"].ToList();
|
|
|
|
|
|
|
|
|
|
|
|
var Id = objects["id"].ToString();
|
|
|
|
|
|
var model = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackById(Id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (model!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var item in listfiled) //遍历行中的字段
|
|
|
|
|
|
{
|
|
|
|
|
|
var b = item;
|
|
|
|
|
|
var txtname = b.First.Path.Substring(b.First.Path.LastIndexOf('.') + 1);
|
|
|
|
|
|
var txtvalue = b.First.Value<string>();
|
|
|
|
|
|
string date = txtname.Split('#')[0].ToString();
|
|
|
|
|
|
string filed = txtname.Split('#')[1].ToString();
|
|
|
|
|
|
|
|
|
|
|
|
var modelContractTrackProgress = PhtglContracttrackprogressService.GetPHTGL_ContractTrackProgressByTrackIdAndDate(Id, date);
|
|
|
|
|
|
if (modelContractTrackProgress!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (filed)
|
|
|
|
|
|
{
|
|
|
|
|
|
case "ACWP_Quantity":
|
|
|
|
|
|
modelContractTrackProgress.ACWP_Quantity = Funs.GetNewDecimalOrZero(txtvalue) ;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "BCWS_Quantity":
|
|
|
|
|
|
modelContractTrackProgress.BCWS_Quantity = Funs.GetNewDecimalOrZero(txtvalue);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
PhtglContracttrackprogressService.UpdatePHTGL_ContractTrackProgress(modelContractTrackProgress);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CheckProgressd();
|
|
|
|
|
|
BindGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 修改产值/百分比
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CheckProgressd()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(ContractId))
|
|
|
|
|
|
{
|
|
|
|
|
|
Model.PHTGL_ContractTrack queryContractTrack = new Model.PHTGL_ContractTrack();
|
|
|
|
|
|
queryContractTrack.ProjectId = this.CurrUser.LoginProjectId;
|
|
|
|
|
|
queryContractTrack.ContractId = this.ContractId;
|
|
|
|
|
|
var modelContractTracks =
|
|
|
|
|
|
BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack);
|
|
|
|
|
|
foreach (var item in modelContractTracks)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhtglContracttrackprogressService.CheckProgressByContractTrackId(item.Id);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected void btnQuery_OnClick(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
BindGrid();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected void btnGetChart_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(ContractId))
|
|
|
|
|
|
{
|
|
|
|
|
|
var model = ContractService.GetContractById(ContractId);
|
|
|
|
|
|
if (model != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PageContext.RegisterStartupScript(
|
|
|
|
|
|
Window2.GetShowReference(string.Format("ContractTrackProgressChart.aspx?ContractId={0}", model.ContractId, "图表 - ")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ShowNotify("请选择施工分包合同", MessageBoxIcon.Question);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取权限按钮
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取按钮权限
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="button"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private void GetButtonPower()
|
|
|
|
|
|
{
|
|
|
|
|
|
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.PHTGL_ContractTrackProgressDetectionMenuId);
|
|
|
|
|
|
if (buttonList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (buttonList.Contains(BLL.Const.BtnAdd))
|
|
|
|
|
|
{
|
|
|
|
|
|
//this.btnNew.Hidden = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (buttonList.Contains(BLL.Const.BtnModify))
|
|
|
|
|
|
{
|
|
|
|
|
|
// this.btnMenuEdit.Hidden = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (buttonList.Contains(BLL.Const.BtnDelete))
|
|
|
|
|
|
{
|
|
|
|
|
|
// this.btnMenuDelete.Hidden = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 关闭弹出窗
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关闭弹出窗
|
|
|
|
|
|
/// </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)
|
|
|
|
|
|
{
|
|
|
|
|
|
Response.ClearContent();
|
|
|
|
|
|
string filename = Funs.GetNewFileName();
|
2023-10-30 10:40:53 +08:00
|
|
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("进度检测表" + filename, System.Text.Encoding.UTF8) + ".xls");
|
2023-10-24 14:23:46 +08:00
|
|
|
|
Response.ContentType = "application/excel";
|
|
|
|
|
|
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
|
|
|
|
|
this.Grid1.PageSize = 500;
|
|
|
|
|
|
this.BindGrid();
|
|
|
|
|
|
Response.Write(GetGridTableHtml(Grid1));
|
|
|
|
|
|
Response.End();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导出方法
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="grid"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2023-10-30 10:40:53 +08:00
|
|
|
|
//private string GetGridTableHtml(Grid grid)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
// 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("lblNumber") as System.Web.UI.WebControls.Label).Text;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// sb.AppendFormat("<td>{0}</td>", html);
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// sb.Append("</tr>");
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// sb.Append("</table>");
|
|
|
|
|
|
|
|
|
|
|
|
// return sb.ToString();
|
|
|
|
|
|
//}
|
2023-10-24 14:23:46 +08:00
|
|
|
|
private string GetGridTableHtml(Grid grid)
|
|
|
|
|
|
{
|
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
|
|
|
|
|
MultiHeaderTable mht = new MultiHeaderTable();
|
|
|
|
|
|
mht.ResolveMultiHeaderTable(Grid1.Columns);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sb.Append("<meta http-equiv=\"Content-Type\" content=\"application/vnd.ms-excel;charset=utf-8\"/>");
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
|
|
|
|
|
foreach (List<object[]> rows in mht.MultiTable)
|
2023-10-24 14:23:46 +08:00
|
|
|
|
{
|
2023-10-30 10:40:53 +08:00
|
|
|
|
sb.Append("<tr>");
|
|
|
|
|
|
foreach (object[] cell in rows)
|
|
|
|
|
|
{
|
|
|
|
|
|
int rowspan = Convert.ToInt32(cell[0]);
|
|
|
|
|
|
int colspan = Convert.ToInt32(cell[1]);
|
|
|
|
|
|
GridColumn column = cell[2] as GridColumn;
|
|
|
|
|
|
|
|
|
|
|
|
sb.AppendFormat("<th{0}{1}{2}>{3}</th>",
|
|
|
|
|
|
rowspan != 1 ? " rowspan=\"" + rowspan + "\"" : "",
|
|
|
|
|
|
colspan != 1 ? " colspan=\"" + colspan + "\"" : "",
|
|
|
|
|
|
colspan != 1 ? " style=\"text-align:center;\"" : "",
|
|
|
|
|
|
column.HeaderText);
|
|
|
|
|
|
}
|
|
|
|
|
|
sb.Append("</tr>");
|
2023-10-24 14:23:46 +08:00
|
|
|
|
}
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
foreach (GridRow row in grid.Rows)
|
|
|
|
|
|
{
|
|
|
|
|
|
sb.Append("<tr>");
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
|
|
|
|
|
foreach (GridColumn column in mht.Columns)
|
2023-10-24 14:23:46 +08:00
|
|
|
|
{
|
|
|
|
|
|
string html = row.Values[column.ColumnIndex].ToString();
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
if (column.ColumnID == "tfNumber")
|
|
|
|
|
|
{
|
|
|
|
|
|
html = (row.FindControl("lblNumber") as System.Web.UI.WebControls.Label).Text;
|
|
|
|
|
|
}
|
2023-10-30 10:40:53 +08:00
|
|
|
|
else if (column.ColumnID == "tfGender")
|
|
|
|
|
|
{
|
|
|
|
|
|
html = (row.FindControl("labGender") as System.Web.UI.WebControls.Label).Text;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
sb.AppendFormat("<td>{0}</td>", html);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sb.Append("</tr>");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sb.Append("</table>");
|
|
|
|
|
|
|
|
|
|
|
|
return sb.ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-30 10:40:53 +08:00
|
|
|
|
|
2023-10-24 14:23:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|