我对xpage很陌生。我在网上搜索我的问题已经有一段时间了。似乎答案应该很简单。
我一直在玩我从Balassaitis的优秀Xcellerent.net站点获得的代码片段,该站点动态地填充了一个视图面板的"jumptoitems“列表。代码是从xpage的beforeRenderResponse事件运行的。
var viewName = getComponent('viewPanel1').getData().getViewName();
var vw = database.getView(viewName);
var colNum = 1;
var cols:Vector = vw.getColumns();
for (var i=0; i < cols.length; i++) {
if (cols[i].isSorted() && !cols[i].isHidden()) {
colNum = i + 1;
break;
}
}
var letters = @DbColumn(null, viewName, colNum);
var options = @Trim(@Unique(@UpperCase(@Left(letters, 1))))
viewScope.put('jumpToOptions', options);它工作得很好--但我想修改代码,以引用另一个数据库中的视图。布拉德在帖子中说,代码可以“增强”来完成这一任务。但我已经做了一段时间的实验和搜索,无法完成增强。
谢谢你的帮助。--丽莎&
发布于 2015-05-20 14:15:00
在第二行中,通过viewName从组件viewPanel1中提取的视图上建立一个句柄。您的电话是database.getView(viewName)。这相当于http://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.api.doc/r_domino_Database.htmlhttp://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.api.doc/r_domino_Database_getView.html的编程引用。如果要连接到的其他数据库上有一个句柄,则可以对该句柄调用相同的.getView()调用。
首先,建立到另一个数据库的连接;这是通过session关键字(即http://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.api.doc/r_domino_Session.html)完成的,如下所示:
var extDB = session.getDatabase(dbName)正如Howard所指出的,session关键字是当前用户的会话,并且将作为该用户受所有ACL权限/赋值/角色的约束。如果您需要提升权限以编程方式公开其他数据,则可以使用sessionAsSigner关键字(它也是一个NotesSession,仅使用签名者的凭据,您自己,或者可以将NSF签名为服务器ID,以授予它更高的权限)。
然后像往常一样使用extDB句柄代替数据库关键字(它与http://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.api.doc/r_domino_Session_getCurrentDatabase.html?lang=en-us差不多);如下所示:
var vw = extDB.getView(viewName)如果NotesDatabase.getView()调用中不存在该名称的视图,则该调用将返回null,因此您需要确保它在那里,并以编程方式检查和处理空返回。
既然您使用的是@DbColumn的移植@函数,那么就像Frantisek建议的那样,使用这种方法可能很容易,但依赖于当前用户的NotesSession。要覆盖该用户的(缺乏)权限,并在单独的NSF中获得所有文档值的完全可见性,仍然需要使用这个关键字获得视图的句柄,如上面所示。/Edit
发布于 2015-05-20 14:31:24
根据您的代码,您也需要在@DbColumn公式中指定数据库。
var letters = @DbColumn([database], viewName, colNum);你可以读到这里或那里..。除了文档化的格式之外,您还可以使用API格式"server!!database"作为单个字符串值。
https://stackoverflow.com/questions/30351931
复制相似问题