计算字段以显示表单或视图的最新添加

时间:2012-09-25 07:59:44

标签: xpages

我想找到一种方法来将最新文档的unid从另一个nsf文件(不是当前文件)中添加到某个Form(View)中。

修改

我用第一列@Created,降序

创建了一个视图

然后我尝试了:

var db:NotesDatabase = session.getDatabase("", "product/picture.nsf");
if (db == null) {
     return "Database not open";
} else {
     var unid = db.GetView("pictures4").getFirstDocument().getUniversalID();
     return unid;
}

这给了我一个错误:

[TypeError]在类型为'lotus.domino.local.Database [Static Java Interface Wrapper,lotus.domino.local.Database:lotus.domino.Database]'的对象上调用方法'GetView(string)'时出错/ p>

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

这里有几点。

1)您收到的错误消息是在NotesDatabase中调用GetView()时出错。 SSJS中的方法是区分大小写的并且总是来自caslcase。 GetView()方法不存在。你需要getView()。

2)如果数据库不在该位置,您的代码将抛出错误。 getDatabase(String,String)返回未打开的NotesDatabase对象。要返回null,需要第三个参数,因此getDatabase(String,String,boolean)使用false。查看关于该主题的Domino Designer帮助。

3)getDatabase(“”,“product / picture.nsf”)可能会为XPiNC和Web投放不同的结果。在XPiNC中,我认为“”表示本地服务器 - 它适用于@DbLookup。最好使用getDatabase(database.getServer(),“product / picture.nsf”)。

答案 1 :(得分:0)

我建议接下来:

  1. 制作第一列视图(让我们调用此视图'ByDate')按'创建日期'降序排序。
  2. 然后你需要做那样的事情:
    • init数据库,用于获取最后一个文档unid:session.getDatabase(server,filepath)
    • var unid = NotesDatabase.GetView(“ByDate”)。getFirstDocument()。getUniversalID()

答案 2 :(得分:0)

有很多方法可以做到这一点

  1. 使用数据库类的getModifiedDocuments方法执行此操作
  2. 根据创建日期在db2中进行搜索
  3. 在db2中查找或创建包含文档的视图,并按降序排序并使用view.getFirstDocument()
  4. 祝你好运

答案 3 :(得分:0)

在另一个id中有一个视图,它以desc顺序显示所有相关文档的UNID 使用session.getDatabase()(http://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesSession_sample_JavaScript_code_for_XPages#getDatabase)打开另一个数据库。 打开视图并导航到视图中的第一个文档。您可以自己选择使用Viewnavigator并通过读取列值或打开documnet获取值并返回UNID

答案 4 :(得分:0)

你试过试试吗?      var unid = db.getView(“pictures4”)。getFirstDocument()。getUniversalID(); 代替      var unid = db.GetView(“pictures4”)。getFirstDocument()。getUniversalID(); ?