如何使用 Java 复制笔记项目

How to copy notes item using Java

我想使用 Java 将笔记项从一个笔记文档复制到另一个笔记文档,下面是我想要在 Java

中实现的 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
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);

    }
public static void copyAnItem(Document FromDoc, Document ToDoc, String sItemName){

    if(FromDoc.hasItem(sItemName)){
        ToDoc.replaceItemValue(sItemName, FromDoc.getItemValue(sItemName));
    }    

}

它不适用于 Authors 或 Readers 项目。更好的 Knut 解决方案:)

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
    }
}

您只需使用 getFirstItem and can copy it to toDoc with copyItem 一行代码即可从 fromDoc 获取包括所有属性在内的整个项目。