Xpages在2个日期之间搜索

时间:2014-08-21 10:33:42

标签: search xpages difference

我有一些数据视图,以及一个包含每个文档创建日期的列。 我想制作一个包含3个输入字段的搜索功能: Name,StartDate,EndDate。 搜索结果应该是所有具有相同名称且在2个日期内的文件。

任何人都可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:5)

使用DominoView数据源的search属性。它对视图中的所有文档进行全文搜索。创建一个类似

的搜索字符串
[Name]="Meier" AND [_creationDate]>=12-01-2013 AND [_creationDate]<=30-08-2014

您的数据源代码如下所示:

    <xp:this.data>
        <xp:dominoView
            var="view1"
            viewName="YourView">
            <xp:this.search><![CDATA[#{javascript:
            var search = "";
            var formatter = new java.text.SimpleDateFormat("dd-MM-yyyy");
            if (viewScope.Name) {
                search += ' AND [Name]="' + viewScope.Name + '*"';
            }
            if (viewScope.StartDate) {
                search += ' AND [_creationDate]>=' + formatter.format(viewScope.StartDate);
            }
            if (viewScope.EndDate) {
                search += ' AND [_creationDate]<=' + formatter.format(viewScope.EndDate);
            }
            return search.substring(5);}]]></xp:this.search>
        </xp:dominoView>
    </xp:this.data>

此代码假定有可编辑的搜索字段,其值绑定到viewScope.NameviewScope.StartDateviewScope.EndDate,例如

<xp:inputText
    id="inputText1"
    value="#{viewScope.Name}">
</xp:inputText>

<xp:inputText
    id="inputText2"
    value="#{viewScope.StartDate}">
    <xp:this.converter>
        <xp:convertDateTime
            type="date"
            dateStyle="short">
        </xp:convertDateTime>
    </xp:this.converter>
    <xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>