#lotus-notes #lotusscript
#lotus-notes #lotusscript
Вопрос:
С помощью Lotus Script я объявил переменную:
Dim SomethingId As LCField
Позже я выполняю
Set parms = New LCFieldList
Set SomethingId = parms.Append("@somethingID", LCTYPE_INT)
* Я также пробовал LCTYPE_TEXT Я прочитал свой SomethingID из LotusNotes
Dim intSomeID As Integer
If doc.GetItemValue("someID")(0) = Null Or doc.GetItemValue("someID")(0) = "" Then
intSomeID = "0"
Else
intSomeID = doc.GetItemValue("someID")(0)
End If
Messagebox "someID = " amp; intSomeID
в моем окне сообщения отображается «someID = 0
но когда я добираюсь до строки, где я пытаюсь вставить данные в переменную параметра, я получаю ошибку переполнения данных.
SomethingId.Text = intSomeID
Я пробовал
SomethingId.Value = intsomeID
Кто-нибудь теперь, что является причиной этого? И что еще более важно, как это исправить?
Ответ №1:
Посмотрите документацию по LCField здесь и здесь
Свойство Text представляет собой массив, поэтому, возможно, именно поэтому вы получаете ошибку. Я предполагаю, что при записи в свойство Text ожидается массив, а не одно значение.
Однако в качестве альтернативы можно использовать .Метод SetInt() в LCField для присвоения вашего значения intSomeID. Например:
SomethingId.SetInt(1, intSomeID)
Комментарии:
1. Если я попытаюсь это сделать, то получу сообщение «Незаконное использование круглых скобок», которое, похоже, не распознает этот метод. Должно быть, мы используем более раннюю версию lsxlc или что-то в этом роде… ни один из совпадающих примеров кода не распознается как допустимый синтаксис.
2. Что, если перед строкой указать «Call», например
Call Something.Id.SetInt(1, intSomeID)