725 lines
29 KiB
C#
725 lines
29 KiB
C#
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[4] = new ListItem("项目编码", "ProjectCode");
|
||
list[5] = new ListItem("项目名称", "ProjectName");
|
||
list[6] = new ListItem("项目特征描述", "ProjectDescription");
|
||
list[7] = new ListItem("计量单位", "UnitOfMeasurement");
|
||
|
||
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;
|
||
bf.Locked = true;
|
||
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";
|
||
bf.HeaderText = "产值(元)";
|
||
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";
|
||
bf.HeaderText = "百分比/%";
|
||
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";
|
||
bf.HeaderText = "产值(元)";
|
||
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";
|
||
bf.HeaderText = "百分比/%";
|
||
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";
|
||
bf.HeaderText = "产值(元)";
|
||
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";
|
||
bf.HeaderText = "百分比/%";
|
||
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";
|
||
bf.HeaderText = "产值(元)";
|
||
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";
|
||
bf.HeaderText = "百分比/%";
|
||
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();
|
||
|
||
PHTGL_QuantityService.IniGetMajorItems3DownList(drpMajorItems, true);
|
||
|
||
// 绑定表格
|
||
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;
|
||
queryContractTrack.MainItemName = this.txtMainItemName.Text.Trim();
|
||
if (drpMajorItems.SelectedValue != Const._Null)
|
||
{
|
||
queryContractTrack.MajorName = drpMajorItems.SelectedValue;
|
||
}
|
||
|
||
var modelContractTracks =
|
||
BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack);
|
||
|
||
var count = BLL.PhtglContractTrackService.GetPHTGL_ContractTrackByModle(queryContractTrack).Count();
|
||
modelContractTracks= modelContractTracks.Skip(Grid1.PageSize * Grid1.PageIndex).Take(Grid1.PageSize).ToList();
|
||
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;
|
||
row["ProjectDescription"] = item.ProjectDescription;
|
||
row["UnitOfMeasurement"] = item.UnitOfMeasurement;
|
||
|
||
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.RecordCount = count;
|
||
Grid1.DataSource = GridTable;
|
||
Grid1.DataBind();
|
||
}
|
||
|
||
|
||
}
|
||
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.GetFirstPHTGL_ContractTrackByModle(queryContractTrack);
|
||
if (modelContractTracks ==null) return;
|
||
Model.PHTGL_ContractTrackProgress qContractTrackProgress = new Model.PHTGL_ContractTrackProgress();
|
||
qContractTrackProgress.ContractTrackId = modelContractTracks.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";
|
||
|
||
}
|
||
//foreach (var item in modelContractTracks)
|
||
//{
|
||
|
||
|
||
|
||
//}
|
||
|
||
}
|
||
}
|
||
|
||
#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();
|
||
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;
|
||
this.Grid1.PageSize = 500;
|
||
this.BindGrid();
|
||
Response.Write(GetGridTableHtml(Grid1));
|
||
Response.End();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出方法
|
||
/// </summary>
|
||
/// <param name="grid"></param>
|
||
/// <returns></returns>
|
||
//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();
|
||
//}
|
||
private string GetGridTableHtml(Grid grid)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
|
||
MultiHeaderTable mht = new MultiHeaderTable();
|
||
mht.ResolveMultiHeaderTable(Grid1.Columns);
|
||
|
||
|
||
sb.Append("<meta http-equiv=\"Content-Type\" content=\"application/vnd.ms-excel;charset=utf-8\"/>");
|
||
|
||
|
||
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
|
||
|
||
foreach (List<object[]> rows in mht.MultiTable)
|
||
{
|
||
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>");
|
||
}
|
||
|
||
|
||
foreach (GridRow row in grid.Rows)
|
||
{
|
||
sb.Append("<tr>");
|
||
|
||
foreach (GridColumn column in mht.Columns)
|
||
{
|
||
string html = row.Values[column.ColumnIndex].ToString();
|
||
|
||
if (column.ColumnID == "tfNumber")
|
||
{
|
||
html = (row.FindControl("lblNumber") as System.Web.UI.WebControls.Label).Text;
|
||
}
|
||
else if (column.ColumnID == "tfGender")
|
||
{
|
||
html = (row.FindControl("labGender") as System.Web.UI.WebControls.Label).Text;
|
||
}
|
||
|
||
|
||
sb.AppendFormat("<td>{0}</td>", html);
|
||
}
|
||
|
||
sb.Append("</tr>");
|
||
}
|
||
|
||
sb.Append("</table>");
|
||
|
||
return sb.ToString();
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
}
|
||
} |