Вы можете использовать класс NotesItem для этого. Например, вы создаете фиктивный NotesDocument и используете его в качестве контейнера для своих массивов, например:
dim s as new NotesSession
dim myArrays as NotesDocument
dim item as NotesItem
set myArrays = new NotesDocument(s.currentDatabase)
ForAll name in cat
set item = new NotesItem(myArrays,name,"")
end ForAll
Предполагая, что значения в массиве cat (), которые вы имели в тексте вопроса, теперь вы можете получить доступ к этим массивам через NotesDocument и NotesItems, используя сокращенную запись:
' get the nth element
dim x as string
x = myArrays.Trends(n)
' set the nth element
myArrays.Opportunities(n) = "some value"
' assign the entire array
dim someArray(50) as integer
' code to initialize someArray here
myArrays.TargetAccounts = myArray
' loop through the array
For i = 0 to ( ubound(myArrays.Quotes) - 1)
x = myArrays.Quotes(i)
Next
etc.
etc.
Вам никогда не нужно сохранять документ myArrays. Он и все содержащиеся в нем элементы будут хороши до тех пор, пока они остаются в области действия вашего кода.
Вы также можете использовать метод AppentToTextList NotesItem и методы GetItemValue и SetItemValue вместо использования сокращенной записи LotusScript.
Кроме того, имейте в виду, что метод New в моем примере кода устанавливает только элемент zero-eth каждого массива. Вы можете изменить его, чтобы установить весь массив значений из временного массива, который вы уже загрузили в память, если хотите.
Вы, конечно, должны быть осторожны с типами данных. Аргумент value, который я использовал при вызове contructor, во всех случаях был строкой. Вы можете легко использовать другие типы, как указано в документации для NotesItem .
Последнее предупреждение: это не так эффективно, как использование собственных массивов LotusScript, но в большинстве случаев это, вероятно, не представляет большой проблемы.