Esempio n. 1
0
        protected void SearchClick(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Search")
            {
                TaskQueryCondition condition = new TaskQueryCondition();
                condition.TaskTitle = sfTitle.Text;

                if (e.CommandArgument.ToString() == "More")
                {
                    condition.DeliverTimeBegin    = sfReceiveStart.Value;
                    condition.DeliverTimeEnd      = sfReceiveEnd.Value;
                    condition.DraftDepartmentName = sfUnit.Text;
                    condition.ApplicationName     = sfAppName.SelectedValue;
                    condition.ProgramName         = sfProgramName.Value;
                    //condition.UserID  = sfDrafter.Text;
                    condition.DraftUserName   = sfPreviousMan.Text;
                    condition.MoreModeEnabled = true;
                }

                this.Condition = condition;
                this.Page.DataBind();
            }
        }
Esempio n. 2
0
        private string BuildWhereCondition()
        {
            TaskQueryCondition queryCondition = new TaskQueryCondition();

            queryCondition.DraftDepartmentName = this.Request.QueryString["sfDept"];
            queryCondition.TaskTitle           = this.Request.QueryString["sfSubject"];
            queryCondition.CompletedTimeBegin  = GetRequestData <DateTime>("sfStart", DateTime.MinValue);
            queryCondition.CompletedTimeEnd    = GetRequestData <DateTime>("sfEnd", DateTime.MinValue);

            WhereSqlClauseBuilder builder = ConditionMapping.GetWhereSqlClauseBuilder(queryCondition,
                                                                                      new AdjustConditionValueDelegate(AdjustQueryConditionValue));

            builder.AppendItem("UT.STATUS", (int)TaskStatus.Ban);

            //// LDM 流转中数据的获取
            //if (null != Request.QueryString["process_status"] && Request.QueryString["process_status"] == "running")
            //    builder.AppendItem("PN.STATUS", "running");

            ////  LDM 已办结数据的获取
            //if (null != Request.QueryString["process_status"] && Request.QueryString["process_status"] == "completed")
            //    builder.AppendItem("ISNULL(PN.STATUS,N'completed')", "completed");

            if (queryCondition.ApplicationName == "全部")
            {
                queryCondition.ApplicationName = "";
            }

            string subjectQueryString = string.Empty;

            if (string.IsNullOrEmpty(queryCondition.TaskTitle) == false)
            {
                StringBuilder subjectSB = new StringBuilder();
                //关键词分割符为全角或半角空格
                char[]   separators    = new char[] { ' ', ' ' };
                string[] wordsSplitted = queryCondition.TaskTitle.Split(separators, StringSplitOptions.RemoveEmptyEntries);
                //将关键词构造为谓词查询格式
                for (int i = 0; i < wordsSplitted.Length; i++)
                {
                    if (i > 0)
                    {
                        subjectSB.Append(" AND ");
                    }

                    subjectSB.Append("\"");
                    subjectSB.Append(wordsSplitted[i].Replace("\"", "\"\""));
                    subjectSB.Append("\"");
                }
                subjectQueryString = string.Format("CONTAINS(TASK_TITLE,{0})", TSqlBuilder.Instance.CheckQuotationMark(subjectSB.ToString(), true));
            }

            WhereSqlClauseBuilder processStatusBuilder = new WhereSqlClauseBuilder(LogicOperatorDefine.Or);

            processStatusBuilder.AppendItem("PN.STATUS", "Running");
            processStatusBuilder.AppendItem("PN.STATUS", "Maintaining");

            ConnectiveSqlClauseCollection connectiveBuilder = new ConnectiveSqlClauseCollection();

            connectiveBuilder.Add(builder).Add(processStatusBuilder);

            string whereCondition = "";

            if (connectiveBuilder.IsEmpty)
            {
                whereCondition = subjectQueryString;
            }
            else if (subjectQueryString == string.Empty)
            {
                whereCondition = connectiveBuilder.ToSqlString(TSqlBuilder.Instance);
            }
            else
            {
                whereCondition = connectiveBuilder.ToSqlString(TSqlBuilder.Instance) + " AND " + subjectQueryString;
            }

            if (string.IsNullOrEmpty(queryCondition.DraftDepartmentName) == false)
            {
                whereCondition += string.Format(" AND CONTAINS(DRAFT_DEPARTMENT_NAME,'\"*"
                                                + TSqlBuilder.Instance.CheckQuotationMark(queryCondition.DraftDepartmentName, false) + "*\"')");
            }

            whereCondition += string.Format(" AND SEND_TO_USER = {0}",
                                            TSqlBuilder.Instance.CheckQuotationMark(DeluxeIdentity.CurrentUser.ID, true));

            return(whereCondition);
        }