/// <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 #2
0
 public static void ComBindDT(DataTable dtSource, ref DataTable dtResult, string queryCol, string computeCol)
 {
     if (dtSource != null)
     {
         foreach (DataRow dr in dtSource.Rows)
         {
             string    queryValue = SystemDataExtension.GetString(dr, queryCol);
             string    rowFilter  = string.Format("{0} = '{1}'", queryCol, queryValue);
             DataRow[] drs        = dtResult.Select(rowFilter);
             if (drs.Length > 0)
             {
                 DataRow drResult = drs[0];
                 drResult.BeginEdit();
                 drResult[computeCol] = SystemDataExtension.GetInt32(dr, computeCol) + SystemDataExtension.GetInt32(drResult, computeCol);
                 drResult.EndEdit();
                 drResult.AcceptChanges();
             }
             else
             {
                 DataRow drResult = dtResult.Rows.Add();
                 drResult.BeginEdit();
                 drResult[queryCol]   = SystemDataExtension.GetString(dr, queryCol);
                 drResult[computeCol] = SystemDataExtension.GetInt32(dr, computeCol);
                 drResult.EndEdit();
                 drResult.AcceptChanges();
             }
         }
         dtResult.AcceptChanges();
     }
 }
Example #3
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>
 /// 绑定所有项目(即ParentID=0的顶级任务)
 /// </summary>
 /// <param name="dtProjects">任务列表</param>
 private void BindProjects(DataTable dtProjects)
 {
     try
     {
         int rowsCount = dtProjects.Rows.Count;
         if (rowsCount > 0 & rowsCount <= 5)//项目数不超过5,用多选框展示
         {
             ddlProjects.Visible = false;
             rblProjects.Visible = true;
             rblProjects.Items.Clear();
             rblProjects.Items.Add(new ListItem("所有项目", "0"));
             foreach (DataRow dr in dtProjects.Rows)
             {
                 ListItem item = new ListItem()
                 {
                     Text  = SystemDataExtension.GetString(dr, "Title"),
                     Value = SystemDataExtension.GetString(dr, "TaskID")
                 };
                 item.Attributes.Add("title", SystemDataExtension.GetString(dr, "Description"));
                 rblProjects.Items.Add(item);
             }
         }
         else//项目数超过5,用下拉列表展示
         {
             ddlProjects.Visible = true;
             rblProjects.Visible = false;
             ddlProjects.Items.Clear();
             ListItem item0 = new ListItem
             {
                 Text  = "所有项目",
                 Value = "0"
             };
             item0.Attributes.Add("title", "筛选所有项目的任务!");
             ddlProjects.Items.Add(new ListItem("所有项目", "0"));
             foreach (DataRow dr in dtProjects.Rows)
             {
                 ListItem item = new ListItem()
                 {
                     Text  = SystemDataExtension.GetString(dr, "Title"),
                     Value = SystemDataExtension.GetString(dr, "TaskID")
                 };
                 item.Attributes.Add("title", SystemDataExtension.GetString(dr, "Description"));
                 ddlProjects.Items.Add(item);
             }
         }
     }
     catch (Exception ex)
     {
         lbErr.Text = ex.ToString();
     }
 }
Example #5
0
 /// <summary>
 /// 获取指定项目的所有任务集合
 /// </summary>
 /// <param name="projectId">项目ID</param>
 /// <param name="dtTasks">所有任务</param>
 /// <param name="parentCol">表的父子关联字段</param>
 /// <param name="dtReturn">子任务集合表</param>
 /// <returns></returns>
 public static void GetTasksByProjectID(long projectId, DataTable dtTasks, ref DataTable dtReturn)
 {
     DataRow[] drsTasks = dtTasks.Select(string.Format("{0}={1}", "PID", projectId));
     if (drsTasks.Length <= 0)
     {
         return;
     }
     for (int i = 0; i < drsTasks.Length; i++)
     {
         DataRow drTasks = drsTasks[i];
         dtReturn.Rows.Add(drTasks.ItemArray);
         projectId = SystemDataExtension.GetInt32(drTasks, "TaskID");
         GetTasksByProjectID(projectId, dtTasks, ref dtReturn);
     }
 }
Example #6
0
        /// <summary>
        /// 筛选哪些未在计划中的操作
        /// </summary>
        /// <param name="dtPlans"></param>
        /// <param name="dtActions"></param>
        /// <returns></returns>
        private DataTable GetActionsNotInPlan(DataTable dtPlans, DataTable dtActions)
        {
            DataTable dtMayPlanActions = dtActions.Copy();

            foreach (DataRow drPlan in dtPlans.Rows)
            {
                int actionId = SystemDataExtension.GetInt32(drPlan, "ActionID");
                if (dtMayPlanActions.Select("ActionID=" + actionId).Length > 0)
                {
                    DataRow drAction = dtMayPlanActions.Select("ActionID=" + actionId)[0];
                    dtMayPlanActions.Rows.Remove(drAction);
                    dtMayPlanActions.AcceptChanges();
                }
            }
            return(dtMayPlanActions);
        }
Example #7
0
        public static DataTable GetCorpusByID(long corpusId, string CorpusName, DataTable dtCorpusExtend)
        {
            DataSet   dsCorpus = FSCDLL.DAL.Corpus.GetCorporaByID(corpusId);
            DataTable dtCorpus = dsCorpus.Tables[0];
            DataTable dtResult = dtCorpus.Copy();
            DataRow   drCorpus;

            if (dtResult != null)
            {
                if (CorpusName == "NEUAC")
                {
                    dtResult.Columns["TopicID"].ColumnName = "MajorID";
                    dtResult.Columns["GenreID"].ColumnName = "JournalID";
                    dtResult.Columns["LevelID"].ColumnName = "YearID";
                    dtResult.Columns.Add("Major");
                    dtResult.Columns.Add("Journal");
                    dtResult.Columns.Add("Year");
                    drCorpus = dtResult.Rows[0];
                    string Ids = SystemDataExtension.GetString(drCorpus, "MajorID");
                    drCorpus["Major"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Major", "");
                    Ids = SystemDataExtension.GetString(drCorpus, "JournalID");
                    drCorpus["Journal"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Journal", "");
                    Ids = SystemDataExtension.GetString(drCorpus, "YearID");
                    drCorpus["Year"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Year", "");
                    dtResult.AcceptChanges();
                }
                else
                {
                    dtResult.Columns.Add("Topic");
                    dtResult.Columns.Add("Genre");
                    dtResult.Columns.Add("Level");
                    drCorpus = dtResult.Rows[0];
                    string Ids = SystemDataExtension.GetString(drCorpus, "TopicID");
                    drCorpus["Topic"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Topic", ";");
                    Ids = SystemDataExtension.GetString(drCorpus, "GenreID");
                    drCorpus["Genre"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Genre", ";");
                    Ids = SystemDataExtension.GetString(drCorpus, "LevelID");
                    drCorpus["Level"] = GetTitlesByIDs(dtCorpusExtend, Ids, "Level", ";");
                    dtResult.AcceptChanges();
                }
            }
            return(dtResult);
        }
Example #8
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 #9
0
        /// <summary>
        /// 多操作计划的已选择操作的列表的行绑定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GvActions_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (((HiddenField)e.Row.FindControl("hdfActionID")) != null)
                    {
                        //确定计划名称
                        HiddenField hdfActionID = (HiddenField)e.Row.FindControl("hdfActionID");

                        if (hdfActionID.Value != "")
                        {
                            string    actionId  = hdfActionID.Value;
                            Label     lbAction  = (Label)e.Row.FindControl("lbAction");
                            DataTable dtActions = (DataTable)ViewState["dtActions"];
                            DataRow[] drs       = dtActions.Select("ActionID =" + int.Parse(actionId));
                            if (drs.Length > 0)
                            {
                                lbAction.Text = SystemDataExtension.GetString(drs[0], "Title");
                            }
                            else
                            {
                                lbAction.Text = "未找到操作!";
                            }
                        }
                    }
                    if (((Label)e.Row.FindControl("lbPercent")) != null)
                    {
                        Label lbPercent = (Label)e.Row.FindControl("lbPercent");
                        lbPercent.Text = lbPercent.Text + "%";
                    }
                    e.Row.Attributes.Add("onmouseover", "if(this!=prevselitem){this.style.backgroundColor='#E6F2FB'}"); //当鼠标停留时更改背景色
                    e.Row.Attributes.Add("onmouseout", "if(this!=prevselitem){this.style.backgroundColor='#ffffff'}");  //当鼠标移开时还原背景色
                    e.Row.Attributes.Add("onclick", e.Row.ClientID + ".checked=true;selectx(this)");
                }
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }
Example #10
0
        /// <summary>
        /// 获取指定任务的所属项目ID
        /// </summary>
        /// <param name="taskId">指定任务ID</param>
        /// <param name="dtTasks">所有任务</param>
        /// <param name="drProject">返回的项目行</param>
        /// <param name="keyCol">表的筛选字段</param>
        /// <param name="parentCol">表的父子关联字段</param>
        /// <returns></returns>
        public static void GetProjectByTaskID(long taskId, DataTable dtTasks, ref DataRow drProject)
        {
            DataRow[] drsTasks = dtTasks.Select(string.Format("{0}={1}", "TaskID", taskId));
            if (drsTasks.Length <= 0)
            {
                return;
            }
            DataRow drTasks = drsTasks[0];

            drProject = drTasks;
            taskId    = SystemDataExtension.GetInt32(drTasks, "PID");
            if (taskId == 0)
            {
                return;
            }
            else
            {
                GetProjectByTaskID(taskId, dtTasks, ref drProject);
            }
        }
Example #11
0
        /// <summary>
        /// 绑定多操作计划的多选框,并将计划已选择的操作条目设置选中
        /// </summary>
        /// <param name="actionId">操作ID</param>
        /// <param name="planId">计划ID</param>
        /// <param name="dtPlans">计划表</param>
        /// <param name="dtActions">操作表</param>
        private void BindPlanActions(long actionId, long planId, DataTable dtPlans, DataTable dtActions)
        {
            DataTable dtRelations = (DataTable)ViewState["dtRelations"];
            int       relationId  = 2;

            DataRow[] drSysActions = dtRelations.Select(string.Format("ItemID={0} and RelationID ={1}", actionId, relationId));
            if (drSysActions.Length > 0)
            {
                cblPlanActions.Items.Clear();
                foreach (DataRow dr in drSysActions)
                {
                    long     sysactionId = SystemDataExtension.GetInt32(dr, "RelateditemID");
                    ListItem item        = new ListItem
                    {
                        Value = sysactionId.ToString(),
                        Text  = SystemDataExtension.GetString(dtActions.Select("ActionID=" + sysactionId)[0], "Title")
                    };
                    cblPlanActions.Items.Add(item);
                }
                if (planId != 0)//有计划ID传入,表示这是编辑多操作计划,此时需要查询该计划对应的操作哪些已选中
                {
                    DataRow[] drMyActions = dtPlans.Select("ParentID=" + planId);
                    if (drMyActions.Length > 0)
                    {
                        string selectedValue = "";
                        var    builder       = new StringBuilder();
                        builder.Append(selectedValue);
                        foreach (DataRow dr in drMyActions)
                        {
                            builder.Append(SystemDataExtension.GetInt32(dr, "ActionID") + ";");
                        }
                        selectedValue = builder.ToString();
                        SetCBListChecked(cblPlanActions, selectedValue, ";");
                    }
                }
            }
        }
Example #12
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 #13
0
        /// <summary>
        /// 根据当前用户ID,获取操作设置数据
        /// </summary>
        /// <param name="myActions">我的操作设置表</param>
        /// <param name="sysActions">系统操作表</param>
        /// <param name="dsMetaData">元数据常量表数据集</param>
        /// <param name="dsActionStruct">Action表结构数据集</param>
        /// <param name="userId">当前用户ID</param>
        /// <param name="dsMyActionStruct">User_Action表结构数据集</param>
        /// <returns></returns>
        private DataTable GetBindData(int userId, DataSet myActions, DataSet sysActions, DataSet dsMetaData, DataSet dsActionStruct, DataSet dsMyActionStruct)
        {
            DataTable dt = InitSouceTable();

            try
            {
                DataTable dtMyActions = myActions.Tables[0];
                //int myCount = dtMyActions.Rows.Count;
                DataTable dtSysActions = sysActions.Tables[0];
                int       sysCount     = dtSysActions.Rows.Count;
                for (int i = 0; i < sysCount; i++)
                {
                    DataRow   dr       = dt.NewRow();
                    DataRow   drSys    = dtSysActions.Rows[i];
                    int       actionId = SystemDataExtension.GetInt32(drSys, "ActionID");
                    DataRow[] drsMy    = dtMyActions.Select("ActionID=" + actionId);
                    dr["ActionID"] = actionId;
                    dr["Title"]    = drSys["Title"];
                    string[] myflds = new string[] { "MinDuring", "MaxDuring", "NormalDuring", "FrequencyID", "ShiDuanID", "Healthy", "Interaction", "Description", "Probability" };
                    if (drsMy.Length > 0)//该操作已有个性化设置
                    {
                        DataRow drMy = drsMy[0];
                        dr["IsMy"] = 1;
                        for (int k = 0; k < myflds.Length; k++)
                        {
                            string fldName = myflds[k];
                            dr[fldName] = drMy[fldName];
                        }
                    }
                    else
                    {
                        dr["IsMy"] = 0;
                        for (int k = 0; k < myflds.Length; k++)
                        {
                            string fldName = myflds[k];
                            dr[fldName] = null;
                        }
                    }
                    dr["Url"] = string.Format("{0}?uid={1}&aid={2}", webObj.ActionDetailsUrl, userId, actionId);

                    //系统设置

                    //系统的操作频度设置
                    string fldValue = SystemDataExtension.GetString(drSys, "FrequencyID");
                    dr["SysFrequencyID"] = GetToolTip(dsMetaData, dsActionStruct, "Frequency", fldValue, 1);
                    //系统的操作时段设置
                    fldValue           = SystemDataExtension.GetString(drSys, "ShiDuanID");
                    dr["SysShiduanID"] = GetToolTip(dsMetaData, dsActionStruct, "ShiDuan", fldValue, 1);
                    //系统健康相关度设置
                    fldValue         = SystemDataExtension.GetString(drSys, "Healthy");
                    dr["SysHealthy"] = GetToolTip(dsMetaData, dsActionStruct, "Healthy", fldValue, 0);
                    //系统的互动值相关度设置
                    fldValue             = SystemDataExtension.GetString(drSys, "Interaction");
                    dr["SysInteraction"] = GetToolTip(dsMetaData, dsActionStruct, "Interaction", fldValue, 0);
                    //系统的使用概率的设置
                    fldValue             = SystemDataExtension.GetString(drSys, "Probability");
                    dr["SysProbability"] = GetToolTip(dsMetaData, dsActionStruct, "Probability", fldValue, 0);
                    //系统的操作说明的设置
                    fldValue             = SystemDataExtension.GetString(drSys, "Description");
                    dr["SysDescription"] = GetToolTip(dsMetaData, dsActionStruct, "Description", fldValue, 0);

                    string jiliang = "时长计量单位:分钟" + Environment.NewLine;
                    fldValue = SystemDataExtension.GetString(drSys, "Measurement");
                    if (fldValue != string.Empty)
                    {
                        jiliang += string.Format("数量计量方式:{0}{1}", fldValue, Environment.NewLine);
                    }
                    fldValue = SystemDataExtension.GetString(drSys, "MUnits");
                    if (fldValue != string.Empty)
                    {
                        jiliang += string.Format("数量计量单位:{0}{1}", fldValue, Environment.NewLine);
                    }

                    DataRow[] drs = dsMyActionStruct.Tables[0].Select("字段名='MinDuring'");
                    if (drs.Length > 0)
                    {
                        dr["SysMinDuring"] = SystemDataExtension.GetString(drs[0], "说明") + Environment.NewLine + jiliang;
                    }
                    drs = dsMyActionStruct.Tables[0].Select("字段名='MaxDuring'");
                    if (drs.Length > 0)
                    {
                        dr["SysMaxDuring"] = SystemDataExtension.GetString(drs[0], "说明") + Environment.NewLine + jiliang;
                    }
                    drs = dsMyActionStruct.Tables[0].Select("字段名='NormalDuring'");
                    if (drs.Length > 0)
                    {
                        dr["SysNormalDuring"] = SystemDataExtension.GetString(drs[0], "说明") + Environment.NewLine + jiliang;
                    }
                    dt.Rows.Add(dr);
                }
            }
            catch (Exception)
            {
                dt = null;
                throw;
            }
            return(dt);
        }
Example #14
0
        /// <summary>
        /// 计划列表行命令事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GvPlans_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "DelPlan")
                {
                    long planId = long.Parse(e.CommandArgument.ToString());
                    DeletePlanByPlanID(planId);
                }
                else if (e.CommandName == "EditPlan")
                {
                    lbErr.Text = "";
                    #region 修改计划
                    lbPTitle.Text = "修改计划";
                    string planId = e.CommandArgument.ToString();
                    hdfID.Value       = planId;
                    hdfParentID.Value = "0";
                    DataTable dt       = (DataTable)ViewState["dtPlans"];
                    DataTable dtPlans  = dt.Copy();
                    DataRow   dr       = dtPlans.Select("PlanID=" + long.Parse(planId))[0];
                    long      actionId = SystemDataExtension.GetInt32(dr, "ActionID");

                    //开始日期
                    tbStart.Text = SystemDataExtension.GetDateTime(dr, "StartDate").ToShortDateString();
                    //截止日期
                    tbDue.Text = SystemDataExtension.GetDateTime(dr, "DueDate").ToShortDateString();
                    //时长目标
                    tbDuring.Text = SystemDataExtension.GetString(dr, "During");
                    //数量目标
                    tbQuantity.Text = SystemDataExtension.GetString(dr, "Quantity");
                    //描述
                    tbDesc.Text = SystemDataExtension.GetString(dr, "Description");

                    DataTable dtActions = (DataTable)ViewState["dtActions"];
                    string    planType  = GetPlanTypeByPlanID(long.Parse(planId), dtPlans, dtActions);
                    hdfPlanType.Value = planType;
                    BindActions(planType, actionId.ToString());
                    if (planType == "计划")//是包含多个操作的计划
                    {
                        lbPlanActions.Visible  = true;
                        cblPlanActions.Visible = true;
                        //btnSetAction.Visible = true;
                        BindPlanActions(actionId, long.Parse(planId), dtPlans, dtActions);
                    }
                    else
                    {
                        lbPlanActions.Visible  = false;
                        cblPlanActions.Visible = false;
                        //btnSetAction.Visible = false;
                    }
                    //计划标题,不可更改
                    ddlPlanAction.Enabled = false;

                    divList.Visible   = false;
                    divPlan.Visible   = true;
                    divAction.Visible = false;

                    #endregion
                }
            }
            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();
            }
        }
        /// <summary>
        /// 任务列表行绑定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvTasks_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (((Label)e.Row.FindControl("lbStatus")) != null)
            {
                DataSet   dsMetaData = MetaDataDAL.GetGroupMetaData();
                DataTable dtStatus   = MetaDataBLL.GetMetaDataByGroup("ProjectTask_Status", dsMetaData);
                dtStatus.TableName = "任务状态表";
                Label  lbStatus  = (Label)e.Row.FindControl("lbStatus");
                string initValue = ((HiddenField)e.Row.FindControl("hdfStatus")).Value;
                if (string.IsNullOrEmpty(initValue))
                {
                    initValue = "0";
                }
                DataRow[] drs = dtStatus.Select("ItemID=" + int.Parse(initValue));
                if (drs.Length > 0)
                {
                    DataRow dr = drs[0];
                    lbStatus.Text = SystemDataExtension.GetString(dr, "Title");
                }
            }
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (((Label)e.Row.FindControl("lbPercent")) != null)
                {
                    Label  lbPercent = (Label)e.Row.FindControl("lbPercent");
                    string value     = lbPercent.Text;
                    if (!value.Contains("%"))
                    {
                        lbPercent.Text = value + "%";
                    }
                    value = value.TrimEnd('%');
                    int percent = 0;
                    if (!string.IsNullOrEmpty(value))
                    {
                        percent = int.TryParse(value, out percent) ? percent : 0;;
                    }
                    string htmlColor = GetColorByPercent(percent);
                    lbPercent.ForeColor = ColorTranslator.FromHtml(htmlColor);
                    //e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, GetColorByPercent(percent));
                }
                if (((Label)e.Row.FindControl("lbTitle")) != null)//标题标签
                {
                    Label  lbTitle     = (Label)e.Row.FindControl("lbTitle");
                    string tTtitle     = lbTitle.Text;
                    int    titleLength = webObj.TitleLength;
                    int    blankCount  = tTtitle.Length - tTtitle.TrimStart().Length;
                    if (tTtitle.Length > titleLength + blankCount)                             //标题内容大于20个
                    {
                        lbTitle.Text = tTtitle.Substring(0, titleLength + blankCount) + "..."; //截取20个显示,其他用“...”号代替
                    }
                    lbTitle.ToolTip = tTtitle;                                                 //鼠标放上去显示全部信息
                }
                if (((Label)e.Row.FindControl("lbDescription")) != null)                       //标题标签
                {
                    Label  lbDescription = (Label)e.Row.FindControl("lbDescription");
                    string tDesc         = lbDescription.Text;
                    int    titleLength   = webObj.TitleLength;
                    if (tDesc.Length > titleLength * 2)                                   //标题内容大于20个
                    {
                        lbDescription.Text = tDesc.Substring(0, titleLength * 2) + "..."; //截取2*webObj.TitleLength个字符,其他用“...”号代替
                    }
                    lbDescription.ToolTip = tDesc;                                        //鼠标放上去显示全部信息
                }

                string    taskId = DataBinder.Eval(e.Row.DataItem, "ID").ToString();
                DataTable dtDoc  = TaskDAL.GetDocsByTaskID(long.Parse(taskId)).Tables[0];
                if (dtDoc.Rows.Count > 0)
                {
                    DataRow   dr      = dtDoc.Rows[0];
                    string    docLink = SystemDataExtension.GetString(dr, "DocLink");
                    HyperLink lnkDoc  = (HyperLink)e.Row.FindControl("lnkDoc");
                    if (!string.IsNullOrEmpty(docLink))
                    {
                        lnkDoc.NavigateUrl = docLink;
                        lnkDoc.Target      = "_blank";
                        lnkDoc.ToolTip     = "点击查看并编辑项目/任务文档";
                        lnkDoc.ImageUrl    = "../../../../_layouts/15/VSProject/images/Docs.png";
                        lnkDoc.ImageHeight = 20;
                    }
                    else
                    {
                        lnkDoc.Enabled = false;
                    }
                }

                e.Row.Attributes.Add("onmouseover", "if(this!=prevselitem){this.style.backgroundColor='#E6F2FB'}"); //当鼠标停留时更改背景色
                e.Row.Attributes.Add("onmouseout", "if(this!=prevselitem){this.style.backgroundColor='#ffffff'}");  //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onclick", e.Row.ClientID + ".checked=true;selectx(this)");
            }
            int userId = VSDLL.Common.Users.UserID;

            if (userId == 0)//未登录,隐藏任务管理按钮列
            {
                e.Row.Cells[8].Visible = false;
            }
            else
            {
                e.Row.Cells[8].Visible = true;
                //HiddenField hdfParentID = (HiddenField)e.Row.FindControl("hdfParentID");

                //if (string.IsNullOrEmpty(hdfParentID.Value)|| hdfParentID.Value=="0")
                //{
                //    LinkButton lnkDel = (LinkButton)e.Row.FindControl("lnkDel");
                //    lnkDel.OnClientClick = "return confirm('这是一个项目,删除后将同时删除项目下级的所有的任务,确定仍要删除吗?')";
                //}
            }
        }
Example #17
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();
            }
        }
Example #18
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);
        }