Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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, "");
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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, "");
            }
        }
Ejemplo n.º 5
0
        /// <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()) + "&nbsp;&nbsp;" + drv["SortID"].ToString() + "&nbsp;&nbsp;" + 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();
            }
        }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        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();
        }