我能想到的最简单的结构是“列表”。这是一个快速示例,它使用列表将值“往返”到文档中并返回到列表中。剪切并粘贴到代理中进行测试(不要忘记将代理属性的“运行时”目标设置为“无”)
Sub Initialize
Dim session As New notesSession
Dim counter List As String
Dim sValue As String
Dim doc As notesDocument
Dim itCounters As NotesItem
Dim db As notesDatabase
Dim i As Integer
Dim vResult As Variant
Dim vValues As Variant
Set db = session.CurrentDatabase
Set doc = db.CreateDocument
Set itCounters = doc.ReplaceItemValue("counters","")
counter("201201") = 16
counter("201202") = 1
counter("201203") = 10
counter("201204") = 5
' print the tags
Forall k In counter
Print Listtag(k)
End Forall
' adding the values (and tags)
Forall k In counter
Print "[" + Listtag(k) + "]:" + counter(Listtag(k))
sValue = Listtag(k) + "!" + counter(Listtag(k))
itCounters.AppendToTextList(sValue)
End Forall
'retrieving
Erase counter
Set itCounters = doc.GetFirstItem("Counters")
vValues = itCounters.Values
For i = 0 To Ubound(vValues)
vResult = Split(vValues(i), "!")
counter(vResult(0)) = vResult(1)
Next
Forall k In counter
Print "[" + Listtag(k) + "]:" + counter(Listtag(k))
End Forall
End Sub
方便的方面是您可以根据需要声明每个新项目(无 Dim'ing)。您可以通过有意义的键(月份和年份或其他)访问任何值。您可以使用与键匹配的字段名称来加载或仅将值保留在多值字段中并使用示例中的特定分隔符。此外,当您递增时,您不必在数组中搜索要递增的正确值,您可以根据标签引用它,然后将其递增。我认为这很简单。
Domino 设计器帮助包含有关列表的大量信息。如果需要验证列表元素是否存在,请查看“isElement”函数。