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(); } }
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); }