检查指定日期范围的CAML共享点中是否存在项目

时间:2019-02-21 09:34:44

标签: c# sharepoint sharepoint-2013 caml

我有以下问题:我建立了一个查询,该查询在共享点列表中搜索我的项目,该列表在创建新项目时检查给定日期范围内的项目是否存在。另外,我使用添加用户名的用户名进行查询,但不包括取消和待处理的状态。这几乎可以正常工作,但是例如当我在列表中具有开始日期(yyyy-MM-dd):2019-06-03和到期日期:2019-06-07的项目时。我想添加起始日期和到期日期均为2019-06-05的项目,那么查询未向我返回列表中的现有项目。.例如,当我添加起始日期为2019-的新项目时06-01和到期日2019-06-04它返回了我之前添加的项目。请帮我重构它,因为我不知道该怎么做。

<Where>
<And>
    <And>
        <Or>
            <And>
                <Geq>
                    <FieldRef Name='StartDate' />
                     <Value Type='DateTime'>2019-06-05T00:00:00Z</Value>
                </Geq>
                <Leq>
                    <FieldRef Name='StartDate' />
                    <Value Type='DateTime'>2019-06-05T00:00:00Z</Value>
                </Leq>
            </And>
            <And>
                <Geq>
                    <FieldRef Name='DueDate' />
                    <Value Type='DateTime'>2019-06-05T00:00:00Z</Value>
                </Geq>
                <Leq>
                    <FieldRef Name='DueDate' />
                    <Value Type='DateTime'>2019-06-05T00:00:00Z</Value>
                </Leq>
            </And>
        </Or>
        <Eq>
            <FieldRef Name='Employee' />
            <Value Type='PersonOrGroup'>User Name</Value>
        </Eq>
    </And>
    <And>
        <Neq>
            <FieldRef Name='Status' />
            <Value Type='Text'>Canceled</Value>
        </Neq>
         <Neq>
            <FieldRef Name='Status' />
            <Value Type='Text'>Rejected</Value>
        </Neq>
    </And>
</And>
</Where>

0 个答案:

没有答案