我必须找到一种存储一系列变量的方法-- MonthYear (键)和一个计数器。这样做的目的是跟踪按月和年处理的文件数量。我在考虑一个列表,但我不知道如何保存这些数据,以便在以后的某个日期可以在表中显示它的可读性。我考虑过使用多维数组- someArray(1,0到1),每次启动新的MonthYear并将其保存回文档中的字段时,都会使用ReDim‘,但不确定结果如何。有人知道我是怎么做到的吗?
第一个维度是MonthYear (键),第二个维度是每次处理新文档时更新的计数器。
我考虑在每次处理文档时只添加一个新元素(ReDim),而不是以某种方式将每个密钥的所有计数器加起来,并将其存储在数组中,但这似乎非常混乱。一定有个好办法。
任何和所有的想法都将不胜感激。
发布于 2012-04-13 05:24:47
我能想到的最简单的结构是“列表”。下面是一个快速示例,即“往返”值与列表放在文档上,然后返回到列表中。剪切并粘贴到代理中进行测试(不要忘记将代理属性的"Runtime“目标设置为"None")
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)。您可以通过有意义的键(月、年或其他)访问任何值。您可以使用与键匹配的字段名来加载或将值保存在多值字段中,并使用特定的分隔符,如本例所示。此外,在增量时,不必搜索数组中的正确值才能增量,只需根据标记引用数组,只需将其增量。我认为这是最简单的。
拥有关于列表的详细信息。如果需要验证列表元素的存在,请查看"isElement“函数。
https://stackoverflow.com/questions/10134971
复制相似问题