0

我创建了一个 XPage 并向其添加了一个视图控件,它基于一个 Notes 视图,其中一些列基于公式而不是字段(例如,@If(nomprov="";cifprov;nomprov))。因此,XPage 上的列名是一个以美元符号开头的数字,例如 $14。基于字段的视图列不显示这种行为(XPage 上的列名称是字段的名称)。

这对任何方式都没有损害,但现在我正在尝试在 XPage 视图上实现全文搜索,并且 $* 列上的搜索不起作用。这是页面源中这些列之一的定义:

<xp:viewColumn id="viewColumn3" styleClass="columna"
        columnName="$14">
        <xp:viewColumnHeader value="Proveedor"
            id="viewColumnHeader3" styleClass="cabecera" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>

这是我在视图的属性 data\data\search 上的代码:

var qstring;

if (sessionScope.searchNumfac != null & sessionScope.searchNumfac != "") {
qstring = "(Field numfac = *" + sessionScope.searchNumfac + "*)"
+ " OR (Field nomsociedad = *" + sessionScope.searchNumfac + "*)"
+ " OR (Field $14 = *" + sessionScope.searchNumfac + "*)";  

}

    sessionScope.queryString = qstring;
return qstring

其中 searchNumFac 对应于搜索框上的值。对“numfac”和“nomsociedad”列的搜索效果很好,但在 $14 列上搜索失败。我还尝试通过 Notes 视图 (proveedor) 上的列标题和 XPage 视图 (Proveedor) 上的列标题更改代码上的 $14,但它仍然无法正常工作。

您知道解决此问题的任何方法吗?

非常感谢,

卡洛斯

4

1 回答 1

1

视图列不是全文索引的一部分。您必须使用字段名称进行全文搜索。

在您的示例中,这意味着$14您不必使用列公式中的字段名@If(nomprov="";cifprov;nomprov))

...
+ " OR (Field nomprov = *" + sessionScope.searchNumfac + "*)"
+ " OR (Field cifprov = *" + sessionScope.searchNumfac + "*)";
于 2013-07-31T12:16:41.240 回答