gpt4 book ai didi

lotus-notes - 尝试在 LotusScript 中使用多值数组并有点卡住

转载 作者:行者123 更新时间:2023-12-04 03:00:43 27 4
gpt4 key购买 nike

我必须找到一种方法来存储一系列变量 - MonthYear(键)和一个计数器。这样做的目的是跟踪按月份和年份处理的文档数量。我正在考虑一个列表,但我不确定如何保存数据以便它可读并能够在以后显示在表格中。我考虑过使用多维数组 - someArray(1,0 到 1) 并在每次开始新的 MonthYear 时重新调整它,然后将其保存回文档中的字段,但我不确定这将如何进行播出。有谁知道我如何做到这一点?

第一个维度将是 MonthYear(键),第二个维度将是每次处理新文档时更新的计数器。

  1. key 将基于正在处理的文档中的字段。我如何确保更新正确的 key /计数器组合?

  2. 如何从文档的字段中检索现有计数器,更新计数器然后替换值?

我考虑过每次处理文档时只添加一个新元素 (ReDim),而不是以某种方式将每个键的所有计数器相加并将其存储在一个数组中,但这看起来真的很乱。必须有一个好的方法来做到这一点。

任何和所有的想法将不胜感激

最佳答案

我能想到的最简单的结构是“列表”。这是一个简单的示例,它将带有列表的值“往返”到文档中并返回到列表中。剪切并粘贴到代理中进行测试(不要忘记将代理属性的“运行时”目标设置为“无”)

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

方便的方面是您可以根据需要声明每个新项目(无需调光)。您可以通过有意义的键(月份和年份或其他)访问任何值。您可以使用与加载键匹配的字段名称,或者只将值保留在多值字段中并使用特定的分隔符,如示例中所示。此外,当您递增时,您不必在数组中搜索要递增的正确值,您可以根据标签引用它,然后递增它。我认为这很简单。

Domino 设计器帮助包含有关列表的大量信息。如果您需要验证列表元素是否存在,请查看“isElement”函数。

关于lotus-notes - 尝试在 LotusScript 中使用多值数组并有点卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com