Example #1
0
 /// <summary>
 /// 将计划表绑定到计划列表GridView控件
 /// </summary>
 /// <param name="dtPlans">数据源</param>
 private void BindgvPlans(DataTable dtPlans)
 {
     try
     {
         DataTable dtActions = (DataTable)ViewState["dtActions"];
         //扩展计划表,增加一个字段"Title",保存操作的名称,也是计划的名称
         DataTable dtTemp = dtPlans.Copy();
         dtTemp.Columns.Add("Title");
         foreach (DataRow drTemp in dtTemp.Rows)
         {
             int     actionId = SystemDataExtension.GetInt16(drTemp, "ActionID");
             DataRow drAction = ActionBLL.GetActionByID(actionId, dtActions);
             drTemp.BeginEdit();
             drTemp["Title"] = drAction["Title"];
             drTemp.EndEdit();
         }
         dtTemp.AcceptChanges();
         //绑定分级计划列表
         DataTable dtLPlans = TaskBLL.GetTasksWithLevel(dtTemp, "Title", "ParentID", false);
         gvPlans.DataSource = dtLPlans;
         gvPlans.DataBind();
     }
     catch (Exception ex)
     {
         lbErr.Text = ex.ToString();
     }
 }
        /// <summary>
        /// 绑定具有数据源的DropDownList
        /// </summary>
        /// <param name="ddl">DropDownList的ID</param>
        /// <param name="dtSource">数据源集合</param>
        /// <param name="initValue">初始值</param>
        /// <param name="colValue">值字段名</param>
        /// <param name="colText">显示字段名</param>
        private void DDLBind(DropDownList ddl, DataTable dtSource, string initValue, string colValue, string colText)
        {
            try
            {
                //先清空DropDownList
                ddl.Items.Clear();
                //再绑定DropDownList
                string tbName = dtSource.TableName;
                ddl.Items.Add(new ListItem(string.Format("--请选择{0}--", tbName), "0"));

                for (int i = 0; i < dtSource.Rows.Count; i++)
                {
                    DataRow dr     = dtSource.Rows[i];
                    string  ivalue = SystemDataExtension.GetInt16(dr, colValue).ToString();
                    string  itext  = SystemDataExtension.GetString(dr, colText);
                    ddl.Items.Add(new ListItem(itext, ivalue));
                    //ddl.Items[i].Attributes.Add("style", "background-color:" + GetColor(ivalue));
                }

                //设置DropDownList初始项
                if (string.IsNullOrEmpty(initValue))
                {
                    initValue = "0";
                }
                ddl.SelectedValue = initValue;
                //ddl.Attributes.Add("style", "background-color:"+GetColor(initValue));
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }
Example #3
0
        /// <summary>
        /// 根据计划ID获取计划的类型:(操作)单操作计划、(计划)多操作计划、(已删除)已删除计划、(计划操作)计划的操作
        /// </summary>
        /// <param name="planId">计划ID</param>
        /// <param name="dtPlans">计划表</param>
        /// <param name="dtActions">操作表</param>
        /// <returns></returns>
        private string GetPlanTypeByPlanID(long planId, DataTable dtPlans, DataTable dtActions)
        {
            string planType = "";

            DataRow[] drsPlan = dtPlans.Select("PlanID=" + planId);
            if (drsPlan.Length <= 0)
            {
                planType = "已删除";
            }
            else
            {
                DataRow drPlan   = drsPlan[0];
                long    actionId = SystemDataExtension.GetInt32(drPlan, "ActionID"); //计划对应的操作ID
                long    parentId = SystemDataExtension.GetInt32(drPlan, "ParentID"); //计划的父级ID,若为0,则为计划,否则为多操作计划关联的某一个操作
                if (parentId == 0)
                {
                    DataRow[] drsActions = dtActions.Select("ActionID=" + actionId);
                    if (drsActions.Length > 0)
                    {
                        DataRow drAction = drsActions[0];
                        int     typeId   = SystemDataExtension.GetInt16(drAction, "ItemTypeID");
                        if (typeId != 0)
                        {
                            //获取元数据集合
                            DataSet dsMetaData = MetaDataDAL.GetGroupMetaData();
                            ViewState["dsMetaData"] = dsMetaData;
                            DataTable dtActionType  = MetaDataBLL.GetMetaDataByGroup("Action", dsMetaData);
                            DataRow[] drsActionType = dtActionType.Select("ItemID=" + typeId);
                            if (drsActionType.Length > 0)
                            {
                                planType = SystemDataExtension.GetString(drsActionType[0], "Title");
                            }
                        }
                    }
                }
                else
                {
                    planType = "计划操作";
                }
            }
            return(planType);
        }
Example #4
0
        /// <summary>
        /// 根据计划类型设置计划的备选数据列表
        /// </summary>
        /// <param name="planType">计划类型</param>
        /// <param name="initValue">选择初始值</param>
        private void BindActions(string planType, string initValue)
        {
            try
            {
                hdfPlanType.Value = planType;

                DataSet   dsMetaData    = (DataSet)ViewState["dsMetaData"];
                DataTable dtActionType  = MetaDataBLL.GetMetaDataByGroup("Action", dsMetaData);
                DataRow[] drsActionType = dtActionType.Select(string.Format("Title='{0}'", planType));
                ddlPlanAction.Items.Clear();
                ddlPlanAction.Items.Add(new ListItem("--请选择计划--", "0"));
                if (drsActionType.Length > 0)
                {
                    int       typeId    = SystemDataExtension.GetInt16(drsActionType[0], "ItemID");
                    DataTable dtActions = (DataTable)ViewState["dtActions"];
                    DataRow[] drActions = dtActions.Select("ItemTypeID=" + typeId);
                    if (drActions.Length > 0)
                    {
                        foreach (DataRow dr in drActions)
                        {
                            ListItem item = new ListItem
                            {
                                Value = SystemDataExtension.GetInt32(dr, "ActionID").ToString(),
                                Text  = SystemDataExtension.GetString(dr, "Title")
                            };
                            ddlPlanAction.Items.Add(item);
                        }
                        ddlPlanAction.SelectedValue = initValue;
                    }
                }
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }
Example #5
0
        /// <summary>
        /// 修改指定ID的计划
        /// </summary>
        /// <param name="planId">计划ID</param>
        /// <param name="dtPlans">计划表</param>
        /// <param name="userId">用户ID</param>
        /// <returns></returns>
        private long EditPlan(string planId, DataTable dtPlans, int userId)
        {
            long newPlanId = 0;

            try
            {
                #region 修改计划
                DataRow dr = dtPlans.Select("PlanID=" + long.Parse(planId))[0];
                dr.BeginEdit();
                //计划开始日期
                if (!string.IsNullOrEmpty(tbStart.Text.Trim()))
                {
                    dr["StartDate"] = Convert.ToDateTime(tbStart.Text.Trim());
                }
                //计划截止日期
                if (!string.IsNullOrEmpty(tbDue.Text.Trim()))
                {
                    dr["DueDate"] = Convert.ToDateTime(tbDue.Text.Trim());
                }
                //时长目标
                if (!string.IsNullOrEmpty(tbDuring.Text.Trim()))
                {
                    int during = int.Parse(tbDuring.Text.Trim());
                    dr["During"] = during;
                }
                //数量目标
                if (!string.IsNullOrEmpty(tbQuantity.Text.Trim()))
                {
                    float quantity = float.Parse(tbQuantity.Text.Trim());
                    dr["Quantity"] = quantity;
                }
                //计划简介
                if (!string.IsNullOrEmpty(tbDesc.Text.Trim()))
                {
                    dr["Description"] = tbDesc.Text.Trim();
                }

                dr["Modified"]   = DateTime.Now;
                dr["ModifiedBy"] = userId;
                dr.EndEdit();
                TaskDAL.UpdatePlans(null, dr);
                dtPlans.AcceptChanges();


                //对多操作的处理
                DataTable dtActions = (DataTable)ViewState["dtActions"];
                string    planType  = GetPlanTypeByPlanID(long.Parse(planId), dtPlans, dtActions);
                if (planType == "计划")
                {
                    List <string> aIds           = new List <string>();
                    DataRow[]     drsPlanActions = dtPlans.Select("ParentID=" + long.Parse(planId));
                    for (int i = 0; i < drsPlanActions.Length; i++)
                    {
                        aIds.Add(SystemDataExtension.GetInt16(drsPlanActions[i], "ActionID").ToString());
                    }
                    for (int i = 0; i < cblPlanActions.Items.Count; i++)
                    {
                        if (cblPlanActions.Items[i].Selected && !aIds.Contains(cblPlanActions.Items[i].Value))//此次选中的是原来没有的,则新增
                        {
                            string  selectedAId = cblPlanActions.Items[i].Value;
                            DataRow drNew       = dtPlans.NewRow();
                            drNew["UserID"]     = userId;
                            drNew["ActionID"]   = int.Parse(selectedAId);
                            drNew["Created"]    = DateTime.Now;
                            drNew["CreatedBy"]  = userId;
                            drNew["Modified"]   = DateTime.Now;
                            drNew["ModifiedBy"] = userId;
                            drNew["ParentID"]   = long.Parse(planId);
                            drNew["FLag"]       = 1;
                            long newActionId = TaskDAL.InsertPlans(null, drNew);
                            dtPlans.Rows.Add(drNew);
                            dtPlans.AcceptChanges();
                        }
                        else if (!cblPlanActions.Items[i].Selected && aIds.Contains(cblPlanActions.Items[i].Value))//此次未选中,但原来已选择,则删除
                        {
                            string selectedAId = cblPlanActions.Items[i].Value;

                            DataRow drOld = dtPlans.Select(string.Format("ActionID={0} and ParentID={1}", int.Parse(selectedAId), long.Parse(planId)))[0];
                            dtPlans.Rows.Remove(drOld);
                            dtPlans.AcceptChanges();
                            drOld.BeginEdit();
                            drOld["Flag"]       = 0;
                            drOld["Modified"]   = DateTime.Now;
                            drOld["ModifiedBy"] = userId;
                            drOld.EndEdit();
                            TaskDAL.UpdatePlans(null, drOld);
                        }
                    }
                }
                ViewState["dtPlans"] = dtPlans;
                newPlanId            = long.Parse(planId);
                #endregion
            }
            catch (Exception ex)
            {
                newPlanId  = 0;
                lbErr.Text = ex.ToString();
            }
            return(newPlanId);
        }
Example #6
0
        /// <summary>
        /// 控件初始化方法
        /// </summary>
        private void fvBind()
        {
            try
            {
                string account = VSDLL.Common.Users.GetLoginAccount;
                if (account != "")
                {
                    DataTable dtLocations = UserDAL.GetLocation().Tables[0];
                    ViewState["dtLocations"] = dtLocations;
                    DataSet ds = UserDAL.GetUserByAccount(account);
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        DataTable dtTmp = ds.Tables[0].Copy();
                        dtTmp.Rows.Add(dtTmp.NewRow());
                        dtTmp.Rows[0]["Account"] = account;
                        ViewState["dtUser"]      = dtTmp;
                        lbAccount.Text           = account;
                        BindDDL(ddlDegree, UserDAL.GetDegree(), 0);
                        BindDDL(ddlProfession, UserDAL.GetProfession(), 0);
                        BindDDL(ddlIndustry, UserDAL.GetIndustry(), 0);
                        DataSet dsLocation = UserBLL.GetLocationsByParentID(dtLocations, 0);
                        BindDDL(ddlSheng, dsLocation, 0);
                    }
                    else
                    {
                        DataRow dr = ds.Tables[0].Rows[0];
                        ViewState["dtUser"]     = ds.Tables[0].Copy();
                        lbAccount.Text          = SystemDataExtension.GetString(dr, "Account");
                        tbName.Text             = SystemDataExtension.GetString(dr, "Name");
                        tbIDCard.Text           = SystemDataExtension.GetString(dr, "IDCard");
                        tbTelephone.Text        = SystemDataExtension.GetString(dr, "Telephone");
                        tbEmail.Text            = SystemDataExtension.GetString(dr, "Email");
                        tbDescription.Text      = SystemDataExtension.GetString(dr, "Description");
                        rblistSex.SelectedValue = SystemDataExtension.GetBool(dr, "Sex")?"1":"0";
                        DateTime?birth = SystemDataExtension.GetNullDateTime(dr, "Birthday");
                        tbBirthday.Text = birth != null?birth.Value.ToShortDateString() : "";

                        int initValue = SystemDataExtension.GetInt16(dr, "DegreeID");
                        BindDDL(ddlDegree, UserDAL.GetDegree(), initValue);

                        initValue = SystemDataExtension.GetInt16(dr, "ProfessionID");
                        BindDDL(ddlProfession, UserDAL.GetProfession(), initValue);

                        initValue = SystemDataExtension.GetInt16(dr, "IndustryID");
                        BindDDL(ddlIndustry, UserDAL.GetIndustry(), initValue);

                        initValue = SystemDataExtension.GetInt16(dr, "LocationID");//县级ID

                        int parentId = 0;
                        if (initValue == 0)
                        {
                            DataSet dsLocation = UserBLL.GetLocationsByParentID(dtLocations, 0);
                            BindDDL(ddlSheng, dsLocation, 0);
                        }
                        else
                        {
                            DataSet dsXian = UserBLL.GetParentLocationsByID(dtLocations, initValue, ref parentId);
                            BindDDL(ddlXian, dsXian, initValue);
                            initValue = parentId;
                            DataSet dsShi = UserBLL.GetParentLocationsByID(dtLocations, initValue, ref parentId);
                            BindDDL(ddlShi, dsShi, initValue);
                            initValue = parentId;
                            DataSet dsSheng = UserBLL.GetParentLocationsByID(dtLocations, initValue, ref parentId);
                            BindDDL(ddlSheng, dsSheng, initValue);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }
        /// <summary>
        /// 任务列表行命令:删除、修改、添加
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvTasks_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "DelTask")
                {
                    long taskId = long.Parse(e.CommandArgument.ToString());
                    DeleteTaskByTaskID(taskId);
                }
                else if (e.CommandName == "EditTask")
                {
                    #region 编辑任务
                    string taskId = e.CommandArgument.ToString();
                    hdfID.Value = taskId;

                    DataTable dt      = (DataTable)ViewState["dtTasks"];
                    DataTable dtTasks = dt.Copy();
                    DataRow   dr      = dtTasks.Select("TaskID=" + long.Parse(taskId))[0];
                    string    tTitle  = SystemDataExtension.GetString(dr, "Title");
                    //标题
                    tbTitle.Text = tTitle;
                    //英文标题
                    tbTitle_EN.Text = SystemDataExtension.GetString(dr, "Title_en");
                    //开始日期
                    tbStart.Text = SystemDataExtension.GetString(dr, "StartDate");
                    //截止日期
                    tbDue.Text = SystemDataExtension.GetString(dr, "DueDate");
                    //预估工作量
                    tbDuring.Text = SystemDataExtension.GetString(dr, "During");
                    //百分比
                    tbPercent.Text = SystemDataExtension.GetString(dr, "PercentComplete");
                    //描述
                    tbDesc.Text = SystemDataExtension.GetString(dr, "Description");
                    //状态
                    int tStatus = SystemDataExtension.GetInt16(dr, "Status");
                    ddlStatus.SelectedValue = tStatus.ToString();
                    long parentId = SystemDataExtension.GetInt32(dr, "PID");
                    hdfPID.Value = parentId.ToString();
                    if (parentId == 0)//当前任务就是一个项目
                    {
                        lbPTitle.Text           = "编辑项目";
                        lbTitle.Text            = "项目名称:";
                        lbTitle_EN.Visible      = true;
                        lbTitle_ENValid.Visible = true;
                        tbTitle_EN.Visible      = true;
                        lbDesc.Text             = "项目描述:";
                        lbParentTitle.Visible   = false;
                        lbParent.Visible        = false;
                        ddlParent.Visible       = false;
                        lbStatus.Text           = "项目状态:";
                        tbDesc.Rows             = 5;
                    }
                    else
                    {
                        lbTitle_EN.Visible      = false;
                        lbTitle_ENValid.Visible = false;
                        tbTitle_EN.Visible      = false;
                        lbTitle.Text            = "任务名称:";
                        DataRow drProject = dr;
                        TaskBLL.GetProjectByTaskID(parentId, dtTasks, ref drProject);
                        lbPTitle.Text     = "编辑任务";
                        lbDesc.Text       = "任务描述:";
                        lbStatus.Text     = "任务状态:";
                        lbParent.Visible  = true;
                        ddlParent.Visible = true;
                        DataRow drParentTask = dtTasks.Select("TaskID=" + parentId)[0];
                        lbParentTitle.Visible = true;
                        lbParentTitle.Text    = string.Format("所属项目:{0};父级任务:{1}", SystemDataExtension.GetString(drProject, "Title"), SystemDataExtension.GetString(drParentTask, "Title"));
                        //父级任务列表:dtTasks除去当前任务dr以及其下级任务,其他任务均可作为父级任务使用
                        dtTasks.Rows.Remove(dr);
                        dtTasks.AcceptChanges();
                        dtTasks.TableName = "父级任务";
                        long      projectId  = SystemDataExtension.GetInt32(drProject, "TaskID");
                        DataTable dtReturn   = dtTasks.Clone();
                        DataRow[] drPrarents = dtTasks.Select("TaskID=" + projectId);
                        if (drPrarents.Length > 0)
                        {
                            dtReturn.Rows.Add(drPrarents[0].ItemArray);
                        }
                        TaskBLL.GetTasksByProjectID(projectId, dtTasks, ref dtReturn);
                        DataTable dtLTasks = TaskBLL.GetTasksWithLevel(dtReturn, "Title", "PID", false);
                        dtLTasks.TableName = "父级任务";
                        DDLBind(ddlParent, dtLTasks, parentId.ToString(), "ID", "Title");
                        ddlParent.Enabled = true;
                        tbDesc.Rows       = 3;
                    }


                    divList.Visible   = false;
                    divModify.Visible = true;
                    #endregion
                }
                else//添加子任务
                {
                    lbTitle_EN.Visible      = false;
                    lbTitle_ENValid.Visible = false;
                    tbTitle_EN.Visible      = false;
                    #region 添加任务
                    string    taskId  = e.CommandArgument.ToString();
                    DataTable dt      = (DataTable)ViewState["dtTasks"];
                    DataTable dtTasks = dt.Copy();
                    hdfID.Value     = "0";
                    lbTitle.Text    = "任务名称:";
                    tbTitle.Text    = "";
                    tbTitle_EN.Text = "";
                    tbStart.Text    = "";
                    tbDue.Text      = "";
                    tbDuring.Text   = "";
                    tbPercent.Text  = "";
                    lbDesc.Text     = "任务描述:";
                    tbDesc.Text     = "";
                    tbDesc.Rows     = 3;
                    lbPTitle.Text   = "添加任务";

                    //父级任务处理,在新增子任务时,确认了父级任务就不可更改了
                    hdfPID.Value = taskId;
                    DataRow drProject = dtTasks.Select("TaskID=" + taskId)[0];
                    TaskBLL.GetProjectByTaskID(long.Parse(taskId), dtTasks, ref drProject);
                    DataRow drParentTask = dtTasks.Select("TaskID=" + taskId)[0];
                    lbParentTitle.Visible = true;
                    lbParentTitle.Text    = string.Format("所属项目:{0};父级任务:{1}", SystemDataExtension.GetString(drProject, "Title"), SystemDataExtension.GetString(drParentTask, "Title"));
                    lbParent.Visible      = false;
                    ddlParent.Visible     = false;

                    //ddlParent.Enabled = true;
                    //dtTasks.TableName = "父级任务";
                    //DataTable dtLTasks = TaskBLL.GetTasksWithLevel(dtTasks,"Title","PID", false);
                    //dtLTasks.TableName = "分级任务";
                    //DDLBind(ddlParent, dtLTasks, taskId, "ID", "Title");
                    //ddlParent.Enabled = false;

                    lbStatus.Text           = "任务状态:";
                    ddlStatus.SelectedValue = "0";
                    divList.Visible         = false;
                    divModify.Visible       = true;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }