首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试使用LotusScript中的多值数组,并且有点卡住了

尝试使用LotusScript中的多值数组,并且有点卡住了
EN

Stack Overflow用户
提问于 2012-04-13 03:46:19
回答 1查看 7.4K关注 0票数 2

我必须找到一种存储一系列变量的方法-- MonthYear (键)和一个计数器。这样做的目的是跟踪按月和年处理的文件数量。我在考虑一个列表,但我不知道如何保存这些数据,以便在以后的某个日期可以在表中显示它的可读性。我考虑过使用多维数组- someArray(1,0到1),每次启动新的MonthYear并将其保存回文档中的字段时,都会使用ReDim‘,但不确定结果如何。有人知道我是怎么做到的吗?

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

  1. 键将基于正在处理的文档上的字段。如何确保正在更新正确的键/计数器组合?
  2. 如何从文档上的字段检索现有计数器,更新计数器,然后替换值?

我考虑在每次处理文档时只添加一个新元素(ReDim),而不是以某种方式将每个密钥的所有计数器加起来,并将其存储在数组中,但这似乎非常混乱。一定有个好办法。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-13 05:24:47

我能想到的最简单的结构是“列表”。下面是一个快速示例,即“往返”值与列表放在文档上,然后返回到列表中。剪切并粘贴到代理中进行测试(不要忘记将代理属性的"Runtime“目标设置为"None")

代码语言:javascript
复制
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“函数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10134971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档