using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.ProjectData { public partial class UnitWork : PageBase { /// /// 项目id /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ProjectId = this.CurrUser.LoginProjectId; GetButtonPower(); ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 BindGrid(); btnNew.OnClientClick = Window1.GetShowReference("UnitWorkEdit.aspx") + "return false;"; } } /// /// 绑定数据 /// public void BindGrid() { if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) { DataTable tb = ChecklistData(this.CurrUser.LoginProjectId); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } } protected DataTable ChecklistData(string projectId) { string strSql = @"select UnitWorkId,UnitWorkCode,UnitWorkName,Costs,Weights,MainItemAndDesignProfessionalIds,SuperUnitWork,(case IsChild when '1' then 'true' else 'false' end) isChild,(case ProjectType when '1' then '建筑工程' when '2' then '安装工程' else '' end ) ProjectType ,Unit.UnitName AS UnitId,SupervisorUnit.UnitName AS SupervisorUnitId,NDEUnit.UnitName AS NDEUnit from [dbo].[WBS_UnitWork] AS UnitWork Left join Base_Unit AS Unit on UnitWork.UnitId=Unit.UnitId Left join Base_Unit AS SupervisorUnit on UnitWork.SupervisorUnitId=SupervisorUnit.UnitId Left join Base_Unit AS NDEUnit on UnitWork.NDEUnit=NDEUnit.UnitId where ProjectId=@ProjectId "; List listStr = new List { new SqlParameter("@ProjectId", projectId) }; if (!string.IsNullOrEmpty(this.txtUnitWorkCode.Text.Trim())) { strSql += " AND UnitWorkCode like @UnitWorkCode"; listStr.Add(new SqlParameter("@UnitWorkCode", "%" + this.txtUnitWorkCode.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtUnitWorkName.Text.Trim())) { strSql += " AND UnitWorkName like @UnitWorkName"; listStr.Add(new SqlParameter("@UnitWorkName", "%" + this.txtUnitWorkName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); return tb; } protected void btnMenuModify_Click(object sender, EventArgs e) { EditData(); } protected void btnMenuDel_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length > 0) { foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var Unitwork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(rowID); if (Unitwork != null) { BLL.BreakdownProjectService.DeleteAllBreakdownByUnitWorkId(rowID); BLL.DivisionProjectService.DeleteDivisionProjectByUnitWorkId(rowID); BLL.UnitWorkService.DeleteUnitWorkById(rowID); //Model.SGGLDB db = Funs.DB; //var q1 = from x in db.WBS_BreakdownProject where x.UnitWorkId == rowID select x; //db.WBS_BreakdownProject.DeleteAllOnSubmit(q1); //var q2 = from x in db.WBS_DivisionProject where x.UnitWorkId == rowID select x; //db.WBS_DivisionProject.DeleteAllOnSubmit(q2); //db.WBS_UnitWork.DeleteOnSubmit(Unitwork); //db.SubmitChanges(); //BLL.UnitWorkService.GetWeights(Unitwork.ProjectId); } } BindGrid(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } } /// /// 编辑数据方法 /// private void EditData() { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning); return; } if (this.btnMenuModify.Hidden) ////双击事件 编辑权限有:编辑页面,无:查看页面 或者状态是完成时查看页面 { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkView.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "查看 - "))); } else { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkEdit.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "编辑 - "))); } } #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { if (Request.Params["value"] == "0") { return; } var buttonList = BLL.CommonService.GetAllButtonList(this.ProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnMenuModify.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnMenuDel.Hidden = false; } } } #endregion /// /// 获取对应主项及设计专业 /// /// /// protected string ConvertDesignProfessionalName(object MainItemAndDesignProfessionalIds) { string ProfessionalName = string.Empty; if (MainItemAndDesignProfessionalIds != null) { ProfessionalName = UnitWorkService.GetMainItemAndDesignProfessionalName(MainItemAndDesignProfessionalIds.ToString(), CurrUser.LoginProjectId); } return ProfessionalName; } protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { EditData(); } protected void btnMenuView_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkView.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "查看 - "))); } protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 重置 /// /// /// protected void btnRset_Click(object sender, EventArgs e) { txtUnitWorkCode.Text = ""; txtUnitWorkName.Text = ""; BindGrid(); } protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } } }