using BLL; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FineUIPro.Web.JDGL.WBS { public partial class WBSOut : PageBase { #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BLL.ProjectService.InitAllProjectDropDownList(this.drpProject, true); this.drpProject.SelectedValue = this.CurrUser.LoginProjectId; this.BindGrid(); } } #endregion #region 项目下拉选择事件 /// /// 项目下拉选择事件 /// /// /// protected void drpProject_SelectedIndexChanged(object sender, EventArgs e) { if (this.drpProject.SelectedValue != BLL.Const._Null) { BindGrid(); } } #endregion #region 绑定数据 /// /// 绑定数据 /// private void BindGrid() { List items = new List(); var installations = from x in Funs.DB.Project_Installation where x.ProjectId == this.drpProject.SelectedValue && x.SuperInstallationId == "0" orderby x.InstallationCode select x; var cnProfessionsTotal = from x in Funs.DB.WBS_CnProfession where x.ProjectId == this.drpProject.SelectedValue select x; var unitProjectsTotal = from x in Funs.DB.Wbs_UnitProject where x.ProjectId == this.drpProject.SelectedValue select x; var wbsSetsTotal = from x in Funs.DB.Wbs_WbsSet where x.ProjectId == this.drpProject.SelectedValue && x.NoShow == null select x; foreach (var installation in installations) { Model.WBSSetItem item = new Model.WBSSetItem(); item.Id = installation.InstallationId; item.Name = installation.InstallationName; items.Add(item); var installation1s = from x in Funs.DB.Project_Installation where x.SuperInstallationId == installation.InstallationId orderby x.InstallationCode select x; if (installation1s.Count() > 0) //主项 { foreach (var installation1 in installation1s) { Model.WBSSetItem item1 = new Model.WBSSetItem(); item1.Id = installation1.InstallationId; item1.Name = installation1.InstallationName; items.Add(item1); var installation2s = from x in Funs.DB.Project_Installation where x.SuperInstallationId == installation1.InstallationId orderby x.InstallationCode select x; foreach (var installation2 in installation2s) { Model.WBSSetItem item2 = new Model.WBSSetItem(); item2.Id = installation2.InstallationId; item2.Name = installation2.InstallationName; items.Add(item2); var cnProfessions = from x in cnProfessionsTotal where x.InstallationId == installation2.InstallationId orderby x.OldId select x; foreach (var cnProfession in cnProfessions) { Model.WBSSetItem item3 = new Model.WBSSetItem(); item3.Id = cnProfession.CnProfessionId; item3.Name = cnProfession.CnProfessionName; items.Add(item3); var unitProjects = from x in unitProjectsTotal where x.CnProfessionId == cnProfession.CnProfessionId && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.UnitProjectCode select x; foreach (var unitProject in unitProjects) { Model.WBSSetItem item4 = new Model.WBSSetItem(); item4.Id = unitProject.UnitProjectId; item4.Name = unitProject.UnitProjectName; items.Add(item4); var childUnitProjects = from x in unitProjectsTotal where x.SuperUnitProjectId == unitProject.UnitProjectId && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.UnitProjectCode select x; if (childUnitProjects.Count() > 0) //存在子单位工程 { foreach (var childUnitProject in childUnitProjects) { Model.WBSSetItem item5 = new Model.WBSSetItem(); item5.Id = childUnitProject.UnitProjectId; item5.Name = childUnitProject.UnitProjectName; items.Add(item5); var wbsSet1s = from x in wbsSetsTotal where x.UnitProjectId == childUnitProject.UnitProjectId && x.SuperWbsSetId == null && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet1 in wbsSet1s) { Model.WBSSetItem item6 = new Model.WBSSetItem(); item6.Id = wbsSet1.WbsSetId; item6.Name = wbsSet1.WbsSetName; items.Add(item6); var wbsSet2s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet1.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet2 in wbsSet2s) { Model.WBSSetItem item7 = new Model.WBSSetItem(); item7.Id = wbsSet2.WbsSetId; item7.Name = wbsSet2.WbsSetName; items.Add(item7); var wbsSet3s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet2.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet3 in wbsSet3s) { Model.WBSSetItem item8 = new Model.WBSSetItem(); item8.Id = wbsSet3.WbsSetId; item8.Name = wbsSet3.WbsSetName; items.Add(item8); var wbsSet4s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet3.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet4 in wbsSet4s) { Model.WBSSetItem item9 = new Model.WBSSetItem(); item9.Id = wbsSet4.WbsSetId; item9.Name = wbsSet4.WbsSetName; items.Add(item9); } } } } } } else //不存在子单位工程 { var wbsSet1s = from x in wbsSetsTotal where x.UnitProjectId == unitProject.UnitProjectId && x.SuperWbsSetId == null && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet1 in wbsSet1s) { Model.WBSSetItem item6 = new Model.WBSSetItem(); item6.Id = wbsSet1.WbsSetId; item6.Name = wbsSet1.WbsSetName; items.Add(item6); var wbsSet2s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet1.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet2 in wbsSet2s) { Model.WBSSetItem item7 = new Model.WBSSetItem(); item7.Id = wbsSet2.WbsSetId; item7.Name = wbsSet2.WbsSetName; items.Add(item7); var wbsSet3s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet2.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet3 in wbsSet3s) { Model.WBSSetItem item8 = new Model.WBSSetItem(); item8.Id = wbsSet3.WbsSetId; item8.Name = wbsSet3.WbsSetName; items.Add(item8); var wbsSet4s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet3.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet4 in wbsSet4s) { Model.WBSSetItem item9 = new Model.WBSSetItem(); item9.Id = wbsSet4.WbsSetId; item9.Name = wbsSet4.WbsSetName; items.Add(item9); } } } } } } } } } } else //总图 { var unitProjects = from x in unitProjectsTotal where x.InstallationId == installation.InstallationId && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.UnitProjectCode select x; foreach (var unitProject in unitProjects) { Model.WBSSetItem item4 = new Model.WBSSetItem(); item4.Id = unitProject.UnitProjectId; item4.Name = unitProject.UnitProjectName; items.Add(item4); var childUnitProjects = from x in unitProjectsTotal where x.SuperUnitProjectId == unitProject.UnitProjectId && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.UnitProjectCode select x; if (childUnitProjects.Count() > 0) //存在子单位工程 { foreach (var childUnitProject in childUnitProjects) { Model.WBSSetItem item5 = new Model.WBSSetItem(); item5.Id = childUnitProject.UnitProjectId; item5.Name = childUnitProject.UnitProjectName; items.Add(item5); var wbsSet1s = from x in wbsSetsTotal where x.UnitProjectId == childUnitProject.UnitProjectId && x.SuperWbsSetId == null && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet1 in wbsSet1s) { Model.WBSSetItem item6 = new Model.WBSSetItem(); item6.Id = wbsSet1.WbsSetId; item6.Name = wbsSet1.WbsSetName; items.Add(item6); var wbsSet2s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet1.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet2 in wbsSet2s) { Model.WBSSetItem item7 = new Model.WBSSetItem(); item7.Id = wbsSet2.WbsSetId; item7.Name = wbsSet2.WbsSetName; items.Add(item7); var wbsSet3s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet2.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet3 in wbsSet3s) { Model.WBSSetItem item8 = new Model.WBSSetItem(); item8.Id = wbsSet3.WbsSetId; item8.Name = wbsSet3.WbsSetName; items.Add(item8); var wbsSet4s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet3.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet4 in wbsSet4s) { Model.WBSSetItem item9 = new Model.WBSSetItem(); item9.Id = wbsSet4.WbsSetId; item9.Name = wbsSet4.WbsSetName; items.Add(item9); } } } } } } else //不存在子单位工程 { var wbsSet1s = from x in wbsSetsTotal where x.UnitProjectId == unitProject.UnitProjectId && x.SuperWbsSetId == null && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet1 in wbsSet1s) { Model.WBSSetItem item6 = new Model.WBSSetItem(); item6.Id = wbsSet1.WbsSetId; item6.Name = wbsSet1.WbsSetName; items.Add(item6); var wbsSet2s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet1.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet2 in wbsSet2s) { Model.WBSSetItem item7 = new Model.WBSSetItem(); item7.Id = wbsSet2.WbsSetId; item7.Name = wbsSet2.WbsSetName; items.Add(item7); var wbsSet3s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet2.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet3 in wbsSet3s) { Model.WBSSetItem item8 = new Model.WBSSetItem(); item8.Id = wbsSet3.WbsSetId; item8.Name = wbsSet3.WbsSetName; items.Add(item8); var wbsSet4s = from x in wbsSetsTotal where x.SuperWbsSetId == wbsSet3.WbsSetId && x.IsApprove == true orderby x.WbsSetCode select x; foreach (var wbsSet4 in wbsSet4s) { Model.WBSSetItem item9 = new Model.WBSSetItem(); item9.Id = wbsSet4.WbsSetId; item9.Name = wbsSet4.WbsSetName; items.Add(item9); } } } } } } } } Grid1.DataSource = items; Grid1.DataBind(); } #endregion #region 分页排序 /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// /// /// /// protected void Grid1_FilterChange(object sender, EventArgs e) { BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("WBS信息" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; this.Grid1.PageSize = 100000; this.BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } /// /// 导出方法 /// /// /// private string GetGridTableHtml(Grid grid) { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); foreach (GridColumn column in grid.Columns) { if (column.HeaderText != "序号") { sb.AppendFormat("", column.HeaderText); } } sb.Append(""); foreach (GridRow row in grid.Rows) { sb.Append(""); foreach (GridColumn column in grid.Columns) { string html = row.Values[column.ColumnIndex].ToString(); if (column.ColumnID != "tfNumber") { sb.AppendFormat("", html); } } sb.Append(""); } sb.Append("
{0}
{0}
"); return sb.ToString(); } #endregion } }