示例#1
0
        /// <summary>
        /// This method returns just the CAML that can be used for the Query property of an SPQuery or of an SPView object. So this will contain the Where clause and any OrderBy clause
        /// but will not contain any definition about the view fields.
        /// </summary>
        /// <param name="?"></param>
        /// <returns></returns>
        public String JustCAMLQuery(SPSite site)
        {
            StringBuilder queryBuilder = new StringBuilder("");

            if (_logicallyCannotHaveResults)
            {
                queryBuilder.Append("<Where>");
                WBQueryClause.AppendNoResultsClause(queryBuilder);
                queryBuilder.Append("</Where>");
            }
            else if (_clauses.Count > 0)
            {
                queryBuilder.Append("<Where>");
                buildNestedAndClauses(queryBuilder, site, _clauses, 0);
                queryBuilder.Append("</Where>");
            }


            if (_orderByColumn != null)
            {
                queryBuilder.Append("<OrderBy>");


                if (_orderByColumn.InternalName == WBColumn.TitleOrName.InternalName)
                {
                    queryBuilder.Append("<FieldRef Name=\"").Append(WBColumn.Title.InternalName).Append("\" Ascending=\"").Append(_ascending.ToString().ToUpper()).Append("\" />");
                    queryBuilder.Append("<FieldRef Name=\"").Append(WBColumn.Name.InternalName).Append("\" Ascending=\"").Append(_ascending.ToString().ToUpper()).Append("\" />");
                }
                else if (_orderByColumn.InternalName == WBColumn.DisplayFileSize.InternalName)
                {
                    queryBuilder.Append("<FieldRef Name=\"").Append(WBColumn.FileSize.InternalName).Append("\" Ascending=\"").Append(_ascending.ToString().ToUpper()).Append("\" />");
                }
                else
                {
                    queryBuilder.Append("<FieldRef Name=\"").Append(_orderByColumn.InternalName).Append("\" Ascending=\"").Append(_ascending.ToString().ToUpper()).Append("\" />");
                }

                queryBuilder.Append("</OrderBy>");
            }

            String query = queryBuilder.ToString();

            WBLogging.Queries.HighLevel("The query XML is: " + query);

            return(query);
        }
示例#2
0
        public void buildNestedAndClauses(StringBuilder queryBuilder, SPSite site, List <WBQueryClause> clauses, int index)
        {
            WBQueryClause clause = clauses[index];

            index++;

            // If we're at the end of the recursion then just output the last clause:
            if (index == clauses.Count)
            {
                clause.AppendCAMLClauseTo(queryBuilder, site);
            }
            else
            {
                queryBuilder.Append("<And>");
                clause.AppendCAMLClauseTo(queryBuilder, site);
                buildNestedAndClauses(queryBuilder, site, clauses, index);
                queryBuilder.Append("</And>");
            }
        }
示例#3
0
 public void AddClause(WBQueryClause clause)
 {
     _clauses.Add(clause);
 }