我重复了数据在当前数据库中循环通过文档的位置,这些文档包含数据库和视图名称。重复然后打开数据库和视图,并从在其中检索数据:无法从XPiNC引用另一个数据库中的视图
var dbOther:NotesDatabase = session.getDatabase(null, doc.getItemValueString("Database"));
if(dbOther != null){
var lookupView:NotesView = dbOther.getView(doc.getItemValueString("ViewName"));
var viewNav:NotesViewNavigator = lookupView.createViewNavFromCategory(key);
}
这适用于所有的浏览器正常,但如果我认为在Notes客户端,我得到了以下错误的XPage:发生异常调用方法NotesDatabase的。 getView(string)null
我测试过,通过将Server和FilePath属性写入日志来设置dbOther变量。我通过使用getViews和getAliases生成一个循环来检查它是否可以看到视图,并且所有视图别名都被写入到日志中而没有问题。
我已经手动输入了视图名称,以防未正确选择文档中的值,但收到相同的错误。
有没有一种方法可以连接到XPiNC中另一个数据库中的视图?我找到了一个XSnippet,它允许您动态地将视图数据源添加到您的页面,我认为这可能会解决我的问题,但希望在重新编写所有内容之前了解是否有其他解决方案!
很久以前我在这里阅读有关这个问题:http://xpages.info/XPagesHome.nsf/Entry.xsp?documentId=B21BE03574FE36AD852578CB0066B5AD。基本上,作者使用'@Name(“[CN]”,@ Subset(@DbName(),1))+“!! dbname.nsf”'的语法来调用数据库。可能会对你有用。 – Naveen 2012-08-08 14:34:20
我原本是这样写的。这是一个问题。我被告知它在后来的版本中修复了,但我没有真正验证过。我不再用XPiNC做很多事情。 – 2012-08-08 18:29:03
在发布之前,我确实找到了此解决方案,但我不确定如何将其设置为NotesDatabase对象。它没有检索数据库,但我不知道如何使用getView? – 2012-08-09 08:42:29