过去,我已将多值文本数据添加到字段中,将值放入一个简单的JavaScript数组中。例如: doc.replaceItemValue(' AlwaysAccess',[" John Doe"," Bob Smith"]);
有关如何在Notes文档的多值,时间/日期字段中存储一系列日期的任何建议?
答案 0 :(得分:4)
TL; DR:该概念应与 String 的多值字段几乎相同,您的日期(/时间)值需要有效 NotesDateTime 值妥善存储。
Notes字段可以有多个日期/时间值;您可以在表单中看到这一点,选择日期/时间类型的字段并选中“允许多个值”。
您还可以看到来自replaceItemValue page of the Domino Designer Knowledge Center的多值。
要完成 NotesDominoAPI (在SSJS中),我们需要:
示例代码(我只是在 xp:button 的 onClick 事件中运行它):
//create a new doc
var tmpDoc:NotesDocument = database.createDocument();
//give it a Form
tmpDoc.replaceItemValue("Form","MultiDateFieldForm");
//create a NotesItem
var itm:NotesItem = tmpDoc.replaceItemValue("DateFieldName",new java.util.Vector());
//create the Vector, our multi-value container
var vec:java.util.Vector = new java.util.Vector();
//create a couple NotesDateTime values to store
var first = session.createDateTime(new Date());
vec.add(first);
var second = session.createDateTime("Tomorrow");
vec.add(second);
//save the values to the item
itm.setValues(vec);
//save
tmpDoc.save();
//recycle!
first.recycle();
second.recylce();
itm.recycle();
tmpDoc.recylce();
[编辑] 正如Frantisek Kossuth在评论中指出的那样,请务必回收NotesDomino API对象(尤其是日期/时间对象)。我已经更新了代码以反映这一点。 [/编辑]
运行后检查基于表单的视图,我给出了这个(字段属性反映了日期/时间值的多值字段;开箱即用的两个镜头)。
答案 1 :(得分:0)
基本上,我发现我需要创建一个向量来存储日期列表,并用NotesDateTime对象填充它。
var vRepeatDates:java.util.Vector = new java.util.Vector();
就我而言,我需要增加日期x次。所以,我使用for循环将NotesDateTime元素添加到向量中(同时使用.adjustDay(1)来递增日期)
最后使用replaceItemValue()
将矢量存储在字段中doc.replaceItemValue("RepeatInstanceDates",vRepeatDates);