private string GetSortID(string strWBSCode) { string strSortID = ""; // 取得本级SortID然后+5 DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ParentCode, strWBSCode)); WSB.AddOrder("SortID", false); string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); QA.SetTopNumber(1); DataSet dsTask = QA.ExecSqlForDataSet(sql); QA.Dispose(); if (dsTask.Tables.Count > 0 && dsTask.Tables[0].Rows.Count > 0) { long intTmp = BLL.ConvertRule.ToLong(dsTask.Tables[0].Rows[0]["SortID"]) + 1; strSortID = "0" + intTmp.ToString(); } else { EntityData entitySort = WBSDAO.GetV_TaskByCode(strWBSCode); strSortID = entitySort.GetString("SortID") + "01"; } return(strSortID); }
private void LoadData() { try { ViewState["ProjectCode"] = Request["ProjectCode"].ToString(); this.lstImportantLevel.SelectedIndex = (Request["lstImportantLevel"] + "" == "")?0:(int.Parse(Request["lstImportantLevel"] + "") + 1); DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); ArrayList arA = new ArrayList(); arA.Add("070107"); arA.Add(base.user.UserCode); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.AccessRange, arA)); if ((string)ViewState["ProjectCode"] != "") { WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, (string)ViewState["ProjectCode"])); } WSB.AddOrder(" PlannedStartDate ", false); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.Status, "2")); if (this.txtTaskName.Value.Length > 0) { WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.TaskName, this.txtTaskName.Value)); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.CodeLike, this.txtTaskName.Value)); } if (this.txtMaster.Value.Length > 0) { WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.Master, this.txtMaster.Value)); } if (this.lstImportantLevel.Value.Length > 0) { WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ImportantLevel, this.lstImportantLevel.Value)); } if (this.dtbStartFromDate.Value != "" || this.dtbStartToDate.Value != "") { ArrayList arB = new ArrayList(); arB.Add(this.dtbStartFromDate.Value); arB.Add(this.dtbStartToDate.Value); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.PlannedStartDate, arB)); } if (this.dtbEndFromDate.Value != "" || this.dtbEndToDate.Value != "") { ArrayList arB = new ArrayList(); arB.Add(this.dtbEndFromDate.Value); arB.Add(this.dtbEndToDate.Value); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.PlannedStartDate, arB)); } string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); DataSet dsTask = QA.ExecSqlForDataSet(sql); DataTable dbTable = DisposeTask(dsTask.Tables[0]); QA.Dispose(); DataView dvTask = new DataView(dbTable, "", "", System.Data.DataViewRowState.CurrentRows); this.trNoTask.Visible = (dvTask.Count > 0)?false:true; this.dgTaskList.DataSource = dvTask; this.dgTaskList.DataBind(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
protected void btnSave_ServerClick(object sender, System.EventArgs e) { if (this.txtTempletName.Text.Trim().Length < 0) { Response.Write(Rms.Web.JavaScript.Alert(true, "模板名称不能为空 !")); return; } string templetType = "WBS"; try { string curCode = DAL.EntityDAO.SystemManageDAO.GetNewSysCode("Templet"); EntityData entity = new EntityData("Standard_WBSTemplet"); entity.SetCurrentTable("Templet"); DataRow drTemplet = entity.GetNewRecord(); drTemplet["TITLE"] = this.txtTempletName.Text; drTemplet["TempletCode"] = curCode; drTemplet["XcDate"] = this.xc_date.Value; drTemplet["TempletType"] = templetType; entity.AddNewRecord(drTemplet); entity.SetCurrentTable("WBSTemplet"); DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, (string)ViewState["ProjectCode"])); string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); EntityData entityProject = QA.FillEntityData("Task", sql + " and Flag = 1"); EntityData entityTask = QA.FillEntityData("Task", sql + " and Flag = 0 "); string ProjectWBSCode = ""; if (entityProject.HasRecord()) { ProjectWBSCode = entityProject.GetString("WBSCode"); } entityProject.Dispose(); QA.Dispose(); DataRow drWBSTemplet = null; DataRow drTask = null; int iCount = entityTask.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { // 记录原先TASK表中的所有内容 entityTask.SetCurrentRow(i); drTask = entityTask.CurrentRow; string tmpletItemCode = DAL.EntityDAO.SystemManageDAO.GetNewSysCode("WBSTempletItemCode"); string wbsCode = entityTask.GetString("WBSCode"); drWBSTemplet = entity.GetNewRecord(); drWBSTemplet["WBSTempletItemCode"] = tmpletItemCode; drWBSTemplet["TempletCode"] = curCode; drWBSTemplet["WBSCode"] = drTask["WBSCode"]; drWBSTemplet["TaskCode"] = drTask["TaskCode"]; drWBSTemplet["TaskName"] = drTask["TaskName"]; drWBSTemplet["OutLineNumber"] = drTask["OutLineNumber"]; drWBSTemplet["SortID"] = drTask["SortID"]; drWBSTemplet["ParentCode"] = drTask["ParentCode"].ToString().Replace(ProjectWBSCode, "");; drWBSTemplet["Deep"] = drTask["Deep"]; drWBSTemplet["FullCode"] = drTask["FullCode"].ToString().Replace(ProjectWBSCode + "-", ""); drWBSTemplet["PlannedStartDate"] = drTask["PlannedStartDate"]; drWBSTemplet["PlannedFinishDate"] = drTask["PlannedFinishDate"]; drWBSTemplet["ActualStartDate"] = drTask["ActualStartDate"]; drWBSTemplet["ActualFinishDate"] = drTask["ActualFinishDate"]; drWBSTemplet["EarlyFinishDate"] = drTask["EarlyFinishDate"]; drWBSTemplet["EarlyStartDate"] = drTask["EarlyStartDate"]; drWBSTemplet["LastFinishDate"] = drTask["LastFinishDate"]; drWBSTemplet["LastStartDate"] = drTask["LastStartDate"]; drWBSTemplet["Duration"] = drTask["Duration"]; drWBSTemplet["Remark"] = drTask["Remark"]; drWBSTemplet["ImportantLevel"] = drTask["ImportantLevel"]; drWBSTemplet["Flag"] = drTask["Flag"]; drWBSTemplet["ImageFileName"] = drTask["ImageFileName"]; entity.AddNewRecord(drWBSTemplet); } //entityWBS.Dispose(); entityTask.Dispose(); WBSDAO.SubmitAllStandard_WBSTemplet(entity); entity.Dispose(); Response.Write(JavaScript.ScriptStart); // Response.Write(JavaScript.Alert(false,"导出成功 !")); Response.Write("window.close();"); Response.Write(JavaScript.ScriptEnd); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); Response.Write(Rms.Web.JavaScript.Alert(true, "导出出错:" + ex.Message)); } }
private void LoadData() { try { DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); // WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.UserAccess,this.strUserCode)); // WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode,this.strProjectCode)); ArrayList arA = new ArrayList(); arA.Add("070107"); arA.Add(this.strUserCode); arA.Add(base.user.BuildStationCodes()); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.AccessRange, arA)); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, base.ProjectCode)); WSB.AddOrder(" PlannedStartDate ", false); string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); DataSet dsTask = QA.ExecSqlForDataSet(sql); DataTable dbTable = DisposeTask(dsTask.Tables[0]); QA.Dispose(); string strCondition = ""; if (this.strStatus.Length > 0 && this.strStatus != "5" && this.strStatus != "6") { strCondition += "Status='" + this.strStatus + "'"; } if (this.strTaskName.Length > 0) { strCondition += (strCondition == ""?"":" and "); strCondition += " ((TaskName LIKE '%" + Server.UrlDecode(this.strTaskName).ToString() + "%') OR "; strCondition += "(WBSCode like '%" + this.strTaskName + "%')) "; } if (this.strMaster.Length > 0) { strCondition += (strCondition == ""?"":" and "); strCondition += " Master LIKE '%" + Server.UrlDecode(this.strMaster).ToString() + "%'"; } if (this.strImportantLevel.Length > 0) { strCondition += (strCondition == ""?"":" and "); strCondition += "ImportantLevel='" + this.strImportantLevel + "'"; } if (this.strStartDate != "") { strCondition += (strCondition == ""?"":" and "); strCondition += "CONVERT(PlannedStartDate,'System.DateTime')>='" + this.strStartDate + "'"; } if (this.strEndDate != "") { strCondition += (strCondition == ""?"":" and "); strCondition += "CONVERT(PlannedStartDate,'System.DateTime')<'" + this.strEndDate + "'"; } if (this.strExceed != "") { strCondition += (strCondition == ""?"":" and "); strCondition += "Exceed='" + this.strExceed + "'"; } if (this.strStatus == "6") { strCondition += (strCondition == ""?"":" and "); strCondition += "ImportantLevel='" + this.strImportantLevel + "'"; } DataView dvTask = new DataView(dbTable, strCondition, "", System.Data.DataViewRowState.CurrentRows); this.trNoTask.Visible = (dvTask.Count > 0)?false:true; this.dgTaskList.DataSource = dvTask; this.dgTaskList.DataBind(); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); } }
/// <summary> /// 载入数据 /// </summary> private void LoadData() { string strCondition = ""; if (this.strType == "ThisWeek") { int intWeek = (int)DateTime.Now.DayOfWeek; DateTime dTimeStart = DateTime.Now.Date.AddDays(-intWeek); DateTime dTimeEnd = DateTime.Now.Date.AddDays(7 - intWeek); // 当前时间在时间段内部 strCondition = "PlannedStartDate<'" + dTimeStart + "' and PlannedFinishDate>'" + dTimeEnd; // 交叉时间段的记录 strCondition += "' or (PlannedStartDate<'" + dTimeEnd + "' and PlannedStartDate>'" + dTimeStart; strCondition += "') or (PlannedFinishDate<'" + dTimeStart + "' and PlannedFinishDate>'" + dTimeEnd + "')"; //this.ThisWeek.Attributes.CssStyle["class"] = "submit"; this.lblTime.Text = dTimeStart.ToString("yyyy-MM-dd") + "~" + dTimeEnd.ToString("yyyy-MM-dd"); } else if (this.strType == "ThisMonth") { int intDay = DateTime.Now.Day; DateTime dtMonthStart = DateTime.Now.Date.AddDays(-intDay); TimeSpan sMonthDays = DateTime.Now.AddMonths(1) - DateTime.Now; int intMonthDays = sMonthDays.Days; DateTime dtMonthEnd = DateTime.Now.Date.AddDays(intMonthDays - intDay); // 当前时间在时间段内部 strCondition = "(PlannedStartDate<'" + dtMonthStart + "' and PlannedFinishDate>'" + dtMonthEnd; // 交叉时间段的记录 strCondition += "') or (PlannedStartDate<'" + dtMonthEnd + "' and PlannedStartDate>'" + dtMonthStart; strCondition += "') or (PlannedFinishDate<'" + dtMonthStart + "' and PlannedFinishDate>'" + dtMonthEnd + "')"; this.lblTime.Text = dtMonthStart.ToString("yyyy-MM-dd") + "~" + dtMonthEnd.ToString("yyyy-MM-dd"); } else if (this.strType == "NextWeek") { int intWeek = (int)DateTime.Now.DayOfWeek; DateTime dTimeStart = DateTime.Now.Date.AddDays(-intWeek + 7); DateTime dTimeEnd = DateTime.Now.Date.AddDays(7 - intWeek + 7); // 当前时间在时间段内部 strCondition = "(PlannedStartDate<'" + dTimeStart + "' and PlannedFinishDate>'" + dTimeEnd; // 交叉时间段的记录 strCondition += "') or (PlannedStartDate<'" + dTimeEnd + "' and PlannedStartDate>'" + dTimeStart; strCondition += "') or (PlannedFinishDate<'" + dTimeStart + "' and PlannedFinishDate>'" + dTimeEnd + "')"; this.lblTime.Text = dTimeStart.ToString("yyyy-MM-dd") + "~" + dTimeEnd.ToString("yyyy-MM-dd"); } else if (this.strType == "NextMonth") { // 下月的天数 TimeSpan sMonthDays = DateTime.Now.AddMonths(2) - DateTime.Now.AddMonths(1); int intMonthDays = sMonthDays.Days; int intDay = DateTime.Now.Day; DateTime dtMonthStart = DateTime.Now.Date.AddMonths(1).AddDays(-intDay); DateTime dtMonthEnd = DateTime.Now.Date.AddMonths(1).AddDays(intMonthDays - intDay); // 当前时间在时间段内部 strCondition = "(PlannedStartDate<'" + dtMonthStart + "' and PlannedFinishDate>'" + dtMonthEnd; // 交叉时间段的记录 strCondition += "') or (PlannedStartDate<'" + dtMonthEnd + "' and PlannedStartDate>'" + dtMonthStart; strCondition += "') or (PlannedFinishDate<'" + dtMonthStart + "' and PlannedFinishDate>'" + dtMonthEnd + "')"; this.lblTime.Text = dtMonthStart.ToString("yyyy-MM-dd") + "~" + dtMonthEnd.ToString("yyyy-MM-dd"); } else if (this.strType == "All") { strCondition = "1=1"; this.lblTime.Text = ""; } DAL.QueryStrategy.WBSStrategyBuilder myTaskStrategyBuilder = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); ArrayList arA = new ArrayList(); arA.Add("070107"); arA.Add(base.user.UserCode); arA.Add("0, 2"); //我的工作只显示参与人、录入人 myTaskStrategyBuilder.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.AccessRange, arA)); // myTaskStrategyBuilder.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.UserAccess,this.strUser)); myTaskStrategyBuilder.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, this.strProjectCode)); //不显示已取消的工作 2006.8.28 myTaskStrategyBuilder.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.StatusNot, "3")); string m_QuerySQL = myTaskStrategyBuilder.BuildMainQueryString(); if (strCondition.Length > 0) { m_QuerySQL += " and (" + strCondition + ") order by PlannedStartDate desc"; } // Rms.LogHelper.LogHelper.Debug(m_QuerySQL); QueryAgent qa = new QueryAgent(); try { DataSet dsMyTask = qa.ExecSqlForDataSet(m_QuerySQL); DataView dv = dsMyTask.Tables[0].DefaultView; dv.Table.Columns.Add("Master"); dv.Table.Columns.Add("StatusName", System.Type.GetType("System.String")); foreach (DataRowView drv in dv) { drv["Master"] = this.GetMaster(drv["WBSCode"].ToString()); drv["StatusName"] = this.GetStatusImg(drv["Status"].ToString()) + " " + drv["SortID"].ToString() + " " + BLL.StringRule.TruncText(drv["TaskName"].ToString(), 15); } this.dgTask.DataSource = dv; this.dgTask.DataBind(); this.trNoTask.Visible = (dgTask.Items.Count > 0)?false:true; } finally { qa.Dispose(); } }
protected void btnSave_ServerClick(object sender, System.EventArgs e) { try { // bool isNew = false; string TempletName = ""; if (this.rdoType0.Checked) { // isNew = true; if (this.txtTempletName.Text.Trim().Length == 0) { Response.Write(Rms.Web.JavaScript.Alert(true, "模板名称不能为空 !")); return; } TempletName = this.txtTempletName.Text; //模板名称不能重复 EntityData entityT = DAL.EntityDAO.CBSDAO.GetTempletByType("WBSTask"); if (entityT.HasRecord()) { if (entityT.CurrentTable.Select("Title='" + TempletName + "'").Length > 0) { Response.Write(Rms.Web.JavaScript.Alert(true, string.Format("模板名称“{0}”已存在,请重新输入", TempletName))); return; } } entityT.Dispose(); } else { // isNew = false; if (this.sltTemplet.Value.Trim().Length < 0) { Response.Write(Rms.Web.JavaScript.Alert(true, "请选择模板 !")); return; } TempletName = this.sltTemplet.Items[this.sltTemplet.SelectedIndex].Text; //删除原模板 string TempletCode = this.sltTemplet.Value; EntityData entityOld = DAL.EntityDAO.WBSDAO.GetStandard_WBSTempletByCode(TempletCode); DAL.EntityDAO.WBSDAO.DeleteStandard_WBSTemplet(entityOld); entityOld.Dispose(); } string templetType = "WBSTask"; //工作项信息 string RootWBSCode = this.txtWBSCode.Value; EntityData entity = DAL.EntityDAO.WBSDAO.GetTaskByCode(RootWBSCode); entity.Dispose(); if (!entity.HasRecord()) { Response.Write(Rms.Web.JavaScript.Alert(true, "工作项不存在")); return; } int RootDeep = entity.GetInt("deep"); string RootFullCode = entity.GetString("FullCode"); string RootParentFullCode = entity.GetString("FullCode").Replace("-" + RootWBSCode, ""); string curCode = DAL.EntityDAO.SystemManageDAO.GetNewSysCode("Templet"); entity = new EntityData("Standard_WBSTemplet"); entity.SetCurrentTable("Templet"); DataRow drTemplet = entity.GetNewRecord(); drTemplet["TITLE"] = TempletName; drTemplet["TempletCode"] = curCode; drTemplet["XcDate"] = this.xc_date.Value; drTemplet["TempletType"] = templetType; entity.AddNewRecord(drTemplet); entity.SetCurrentTable("WBSTemplet"); DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, txtProjectCode.Value)); // WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.WBSCode,txtWBSCode.Value)); string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); EntityData entityTask = QA.FillEntityData("Task", sql + " and (WBSCode = '" + RootWBSCode + "' or FullCode like '" + RootFullCode + "-%')"); QA.Dispose(); DataRow drWBSTemplet = null; DataRow drTask = null; int iCount = entityTask.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { // 记录原先TASK表中的所有内容 entityTask.SetCurrentRow(i); drTask = entityTask.CurrentRow; string tmpletItemCode = DAL.EntityDAO.SystemManageDAO.GetNewSysCode("WBSTempletItemCode"); string wbsCode = entityTask.GetString("WBSCode"); drWBSTemplet = entity.GetNewRecord(); drWBSTemplet["WBSTempletItemCode"] = tmpletItemCode; drWBSTemplet["TempletCode"] = curCode; drWBSTemplet["WBSCode"] = drTask["WBSCode"]; drWBSTemplet["TaskCode"] = drTask["TaskCode"]; drWBSTemplet["TaskName"] = drTask["TaskName"]; drWBSTemplet["OutLineNumber"] = drTask["OutLineNumber"]; drWBSTemplet["SortID"] = drTask["SortID"]; if (entityTask.GetString("WBSCode") == RootWBSCode) { drWBSTemplet["ParentCode"] = ""; } else { drWBSTemplet["ParentCode"] = drTask["ParentCode"]; } drWBSTemplet["FullCode"] = drTask["FullCode"].ToString().Replace(RootParentFullCode + "-", ""); drWBSTemplet["Deep"] = BLL.ConvertRule.ToInt(drTask["Deep"]) - RootDeep + 1; drWBSTemplet["PlannedStartDate"] = drTask["PlannedStartDate"]; drWBSTemplet["PlannedFinishDate"] = drTask["PlannedFinishDate"]; drWBSTemplet["ActualStartDate"] = drTask["ActualStartDate"]; drWBSTemplet["ActualFinishDate"] = drTask["ActualFinishDate"]; drWBSTemplet["EarlyFinishDate"] = drTask["EarlyFinishDate"]; drWBSTemplet["EarlyStartDate"] = drTask["EarlyStartDate"]; drWBSTemplet["LastFinishDate"] = drTask["LastFinishDate"]; drWBSTemplet["LastStartDate"] = drTask["LastStartDate"]; drWBSTemplet["Duration"] = drTask["Duration"]; drWBSTemplet["Remark"] = drTask["Remark"]; drWBSTemplet["ImportantLevel"] = drTask["ImportantLevel"]; drWBSTemplet["Flag"] = drTask["Flag"]; drWBSTemplet["ImageFileName"] = drTask["ImageFileName"]; entity.AddNewRecord(drWBSTemplet); } //entityWBS.Dispose(); entityTask.Dispose(); WBSDAO.SubmitAllStandard_WBSTemplet(entity); entity.Dispose(); Response.Write(JavaScript.ScriptStart); // Response.Write(JavaScript.Alert(false,"导出成功 !")); Response.Write("window.close();"); Response.Write(JavaScript.ScriptEnd); } catch (Exception ex) { ApplicationLog.WriteLog(this.ToString(), ex, ""); Response.Write(Rms.Web.JavaScript.Alert(true, "导出出错:" + ex.Message)); } }
private void InData(string templetCode) { ViewState["ProjectCode"] = Request["ProjectCode"].ToString(); string projectCode = (string)ViewState["ProjectCode"]; //EntityData del=WBSDAO.GetTaskByProject((string)ViewState["ProjectCode"]); //获取当前工作项结构,并删除之 DAL.QueryStrategy.WBSStrategyBuilder WSB = new RmsPM.DAL.QueryStrategy.WBSStrategyBuilder(); WSB.AddStrategy(new Strategy(DAL.QueryStrategy.WBSStrategyName.ProjectCode, (string)ViewState["ProjectCode"])); string sql = WSB.BuildMainQueryString(); QueryAgent QA = new QueryAgent(); EntityData entityProject = QA.FillEntityData("Task", sql + " and Flag = 1"); EntityData del = QA.FillEntityData("Task", sql + " and Flag = 0 "); string ProjectWBSCode = ""; if (entityProject.HasRecord()) { ProjectWBSCode = entityProject.GetString("WBSCode"); } entityProject.Dispose(); QA.Dispose(); if (del.HasRecord()) { int iCount = del.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { DeleteStandard_WBS(del.CurrentTable.Rows[i]["WBSCode"].ToString()); } } del.Dispose(); EntityData entity = WBSDAO.GetStandard_WBSTempletByCode(templetCode); if (entity.HasRecord()) { entity.SetCurrentTable("WBSTemplet"); entity.CurrentTable.Columns.Add("NewWBSCode"); entity.CurrentTable.Columns.Add("NewFullCode"); /* * // 取任务项中最早的计划开始时间作为项目的开始时间, * // 用来计算与新项目的开始时间的相对值 * DateTime dateBaseStart; * DataRow[] rowDate = entity.CurrentTable.Select("PlannedStartDate is not null","PlannedStartDate"); * if (rowDate.Length > 0) * { * dateBaseStart = (DateTime)rowDate[0]["PlannedStartDate"]; * } * * DateTime dateNewStartDate = DateTime.Parse( this.dtbProjectStartDate.Value); * TimeSpan bts = dateNewStartDate - dateBaseStart ; * int iSPDate = bts.Days; // 新老项目的时间错误天数 */ // 按照Deep顺序生成新的WBSCode和FullCode DataRow[] drs = entity.CurrentTable.Select("", "Deep"); int iCount = entity.CurrentTable.Rows.Count; for (int i = 0; i < iCount; i++) { string newWBSCode = DAL.EntityDAO.SystemManageDAO.GetNewSysCode("WBS"); drs[i]["NewWBSCode"] = newWBSCode; string parentCode = ""; if (!drs[i].IsNull("ParentCode")) { parentCode = (string)drs[i]["ParentCode"]; } string newParentFullCode = ""; string newFullCode = ""; string newParentCode = ""; if (parentCode != "") { DataRow[] pDrs = entity.CurrentTable.Select("WBSCode='" + parentCode + "'"); if (pDrs.Length > 0) { newParentFullCode = (string)pDrs[0]["NewFullCode"]; newParentCode = (string )pDrs[0]["NewWBSCode"]; } } else { newParentCode = ProjectWBSCode; newParentFullCode = ProjectWBSCode; } if (newParentFullCode == "") { newFullCode = newWBSCode; } else { newFullCode = newParentFullCode + "-" + newWBSCode; } drs[i]["NewFullCode"] = newFullCode; drs[i]["ParentCode"] = newParentCode; } // 取得根节点人权限 string strUser = ""; string strStation = ""; EntityData entityUser = WBSDAO.GetTaskPersonByWBSCode(ProjectWBSCode); if (entityUser.HasRecord()) { DataTable dtUserNew = entityUser.CurrentTable.Copy(); for (int i = 0; i < dtUserNew.Rows.Count; i++) { if (dtUserNew.Rows[i]["RoleType"].ToString() == "0") // 类型为人 { if (dtUserNew.Rows[i]["Type"].ToString() == "2") // 负责人 { strUser += (strUser == "")?"":","; strUser += dtUserNew.Rows[i]["UserCode"].ToString(); } } if (dtUserNew.Rows[i]["RoleType"].ToString() == "1") // 类型为岗位 { if (dtUserNew.Rows[i]["Type"].ToString() == "2") // 负责人 { strStation += (strStation == "")?"":","; strStation += dtUserNew.Rows[i]["UserCode"].ToString(); } } } } entityUser.Dispose(); EntityData task = new EntityData("Task"); //DataRow newWBSRow = null; DataRow newTaskRow = null; for (int i = 0; i < iCount; i++) { newTaskRow = task.GetNewRecord(); newTaskRow["WBSCode"] = drs[i]["NewWBSCode"]; newTaskRow["FullCode"] = drs[i]["NewFullCode"]; newTaskRow["ProjectCode"] = projectCode; newTaskRow["TaskName"] = drs[i]["TaskName"]; newTaskRow["OutLineNumber"] = drs[i]["OutLineNumber"]; newTaskRow["SortID"] = drs[i]["SortID"]; newTaskRow["ParentCode"] = drs[i]["ParentCode"]; newTaskRow["Deep"] = drs[i]["Deep"]; newTaskRow["TaskCode"] = ""; //DAL.EntityDAO.SystemManageDAO.GetNewSysCode("Task"); newTaskRow["WBSCode"] = drs[i]["NewWBSCode"]; newTaskRow["ProjectCode"] = projectCode; newTaskRow["PlannedStartDate"] = drs[i]["PlannedStartDate"]; newTaskRow["PlannedFinishDate"] = drs[i]["PlannedFinishDate"]; /* * if ( drs[i].IsNull("PlannedStartDate")) * newTaskRow["PlannedStartDate"]= System.DBNull.Value; * else * newTaskRow["PlannedStartDate"]= ((DateTime)drs[i]["PlannedStartDate"]).AddDays( iSPDate) ; * * if ( drs[i].IsNull("PlannedFinishDate")) * newTaskRow["PlannedFinishDate"]= System.DBNull.Value; * else * newTaskRow["PlannedFinishDate"]= ((DateTime) drs[i]["PlannedFinishDate"]).AddDays(iSPDate); * * if ( drs[i].IsNull("ActualStartDate")) * newTaskRow["ActualStartDate"]= System.DBNull.Value; * else * newTaskRow["ActualStartDate"]= ((DateTime)drs[i]["ActualStartDate"]).AddDays( iSPDate) ; * * if ( drs[i].IsNull("ActualFinishDate")) * newTaskRow["ActualFinishDate"]= System.DBNull.Value; * else * newTaskRow["ActualFinishDate"]= ((DateTime) drs[i]["ActualFinishDate"]).AddDays(iSPDate); * * if ( drs[i].IsNull("EarlyFinishDate") ) * newTaskRow["EarlyFinishDate"]= System.DBNull.Value; * else * newTaskRow["EarlyFinishDate"]= ((DateTime)drs[i]["EarlyFinishDate"]).AddDays(iSPDate); * * if ( drs[i].IsNull("EarlyStartDate")) * newTaskRow["EarlyStartDate"] = System.DBNull.Value; * else * newTaskRow["EarlyStartDate"]= ((DateTime)drs[i]["EarlyStartDate"]).AddDays(iSPDate); * * if ( drs[i].IsNull("LastFinishDate")) * newTaskRow["LastFinishDate"]= System.DBNull.Value; * else * newTaskRow["LastFinishDate"]= ((DateTime)drs[i]["LastFinishDate"]).AddDays(iSPDate); * * if ( drs[i].IsNull("LastStartDate")) * newTaskRow["LastStartDate"]= System.DBNull.Value; * else * newTaskRow["LastStartDate"]= ((DateTime)drs[i]["LastStartDate"]).AddDays(iSPDate); */ newTaskRow["Duration"] = drs[i]["Duration"]; newTaskRow["Remark"] = drs[i]["Remark"]; newTaskRow["Status"] = 0; newTaskRow["Flag"] = 0; newTaskRow["ImportantLevel"] = drs[i]["ImportantLevel"]; newTaskRow["CompletePercent"] = 0; newTaskRow["ImageFileName"] = drs[i]["ImageFileName"]; task.AddNewRecord(newTaskRow); // 添加资源权限 // 保存资源 //this.SaveRS(drs[i]["NewWBSCode"].ToString(),strUser,strStation,"070101,070102,070103,070104,070105,070106,070107,070108,070109,070110");// 初始拥有工作的全部权限 } DAL.EntityDAO.WBSDAO.InsertTask(task); task.Dispose(); } entity.Dispose(); }