如何使用Java复制notes项
我想使用Java将note项从一个note文档复制到另一个note文档,下面是我希望在Java中实现的my lotus脚本版本如何使用Java复制notes项,java,xpages,lotus-notes,Java,Xpages,Lotus Notes,我想使用Java将note项从一个note文档复制到另一个note文档,下面是我希望在Java中实现的my lotus脚本版本 Sub CopyItem(FromDoc As NotesDocument, ToDoc As NotesDocument, itemName As String) Dim FromItem As NotesItem Dim ToItem As NotesItem If Not (FromDoc.Hasitem(itemName)) Then Exit Sub Se
Sub CopyItem(FromDoc As NotesDocument, ToDoc As NotesDocument, itemName As String)
Dim FromItem As NotesItem
Dim ToItem As NotesItem
If Not (FromDoc.Hasitem(itemName)) Then Exit Sub
Set FromItem = FromDoc.GetFirstItem(itemName)
If Not ToDoc.hasitem(itemName) Then Set ToItem = ToDoc.CreateItem(itemName)
ToItem.Values = FromDoc.Values
End Sub
我尝试了以下方法:
public static void copyAnItem(Document FromDoc, Document ToDoc, String sItemName){
Vector<String> FromItem = new Vector<String>();
Vector<String> ToItem = new Vector<String>();
if(!FromDoc.hasItem((itemName))){
return;
}
FromItem = FromDoc.getItemValue(itemName);
if(!ToDoc.hasItem(sItemName)){
ToItem.add(itemName);
}
ToItem.addAll(FromDoc);
}
publicstaticvoidcopyanItem(documentfromdoc、documenttodoc、stringsitemname){
Vector FromItem=新向量();
Vector ToItem=新向量();
如果(!FromDoc.hasItem((itemName))){
回来
}
FromItem=FromDoc.getItemValue(itemName);
如果(!ToDoc.hasItem(sItemName)){
ToItem.add(项目名称);
}
ToItem.addAll(FromDoc);
}
它不适用于作者或读者项目。更好的克努特解决方案:)
它不适用于作者或读者项目。更好的克努特解决方案:)
您可以通过一行代码从fromDoc获取整个项目,包括所有属性,并将其复制到toDoc
您可以通过一行代码从fromDoc获取包含所有属性的整个项目,并将其复制到toDoc with。是否可以在Java中创建新的NotesItem()对象?就像我们在LotusScript中所做的那样-Set holdinItem=New NotesItem(fromDoc,itemName,“”)是的,Java中的Notes类和方法与LotusScript中的差不多。当您在Notes帮助中打开LotusScript Notes类描述时,文档末尾就有到相关Java类的链接。我曾尝试将@simonpeter的LotusScript语法直译为Java,但在CreateItem调用中遇到了问题。它不存在于Java类中。但后来我查找LotusScript,发现它也不存在!Java类中也没有新的Item()构造函数,因此无法直接翻译set-holdinItem=new-NotesItem(…)。@RichardSchwartz使用关键字“new-NotesItem”来搜索Notes帮助列表您将看到的第一个链接作为示例:NotesItem classHaha,这似乎是LotusScript和Java之间少有的区别之一。因此,现在有一个Notes客户机帮助来查找,很明显:Java中没有新的项(…)。文档说明“要从头创建一个新的Item对象,请在文档中使用
replaceItemValue
”。是否可以在Java中创建一个新的NotesItem()对象?就像我们在LotusScript中所做的那样-Set holdinItem=New NotesItem(fromDoc,itemName,“”)是的,Java中的Notes类和方法与LotusScript中的差不多。当您在Notes帮助中打开LotusScript Notes类描述时,文档末尾就有到相关Java类的链接。我曾尝试将@simonpeter的LotusScript语法直译为Java,但在CreateItem调用中遇到了问题。它不存在于Java类中。但后来我查找LotusScript,发现它也不存在!Java类中也没有新的Item()构造函数,因此无法直接翻译set-holdinItem=new-NotesItem(…)。@RichardSchwartz使用关键字“new-NotesItem”来搜索Notes帮助列表您将看到的第一个链接作为示例:NotesItem classHaha,这似乎是LotusScript和Java之间少有的区别之一。因此,现在有一个Notes客户机帮助来查找,很明显:Java中没有新的项(…)。文档说明“若要从头开始创建新的项目对象,请在文档中使用replaceItemValue
。”
public static void copyAnItem(Document FromDoc, Document ToDoc, String sItemName){
if(FromDoc.hasItem(sItemName)){
ToDoc.replaceItemValue(sItemName, FromDoc.getItemValue(sItemName));
}
}
public static void copyAnItem(Document fromDoc, Document toDoc, String itemName){
try {
if(fromDoc.hasItem(itemName)) {
toDoc.copyItem(fromDoc.getFirstItem(itemName));
}
} catch (NotesException e) {
// your exception handling
}
}