我跟着How do you copy a datetime field from the current document to a new document,我尝试这样的事情:
Cdoc.save();
Pdoc.copyItem(Cdoc.getDocument().getFirstItem("mytest1"));
getComponent('exampleDialog').show()
但是我收到了处理错误消息。
谢谢你的时间!
答案 0 :(得分:1)
假设Cdoc
和Pdoc
被定义为xp:dominoDocument
个数据源,那么您必须将代码更改为:
Cdoc.save();
Pdoc.getDocument().copyItem(Cdoc.getDocument().getFirstItem("mytest1"));
getComponent('exampleDialog').show()
因此,您只需要将 .getDocument()添加到Pdoc
以获取Notes文档。否则它会失败并且您在“NotesXspDocument”“类型的对象上收到错误”错误调用方法'copyItem(lotus.domino.local.Item)'。
请注意,如果要在exampleDialog中显示复制的项目,则必须在复制项目后保存Pdoc
。
如果您此时不想保存文档Pdoc
,那么您可以使用以下内容复制NotesXspDocument级别的项目:
Pdoc.replaceItemValue("mytest1", Cdoc.getItemValueDateTime("mytest1"));
getComponent('exampleDialog').show()
答案 1 :(得分:0)
我不经常使用" copyItem"。您没有指定是否使用NotesDocuments或NotesXspDocuments,因此我将快速编写两者,因为它们应该以不同的方式处理。
var currentDoc:NotesDocument = ....
var newDoc:NotesDocument= ...
newDoc.replaceItemValue("fldname", currentDoc.getItemValueDateTimeArray("fldname").elementAt(0))
如果currentDoc是NotesXspDocument,请使用以下
var currentDoc:NotesXspDocument = ...
var newDoc:NotesDocument=...
newDoc.replaceItemValue("fldname", currentDoc.getItemValueDateTime("fldname"))
否则,您可以继续尝试使用copyItem,我只是缺乏使用它的经验。
修改强>
只需添加一些内容,请记住调用xspDoc.getDocument(true)会更新后台文档,这可能是必需的。此外,在您发布的那篇文章的评论中,他们提到了将该文档放入另一个变量的可能性。
var docSource:NotesDocument = xspDoc.getDocument(true);
var docNew:NotesDocument = ...
docNew.copyItem(docSource.getItem("blah");
还要记住,copyItem是NotesDocument的函数,而不是NotesXspDocument。