Как проверить Subscript Out Of Range

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Пытался проверить, через:
Код:
If Not Isempty(parDoc.GetItemValue("TrancheContractLink")(i)) Then varTrancheContractLink(i) = parDoc.GetItemValue("TrancheContractLink")(i)
не помогает, можете подсказать как правильно проверить :(
 
A

Archi2001

#3
Через цикл ForAll .... (просто по коду не понятно, часть цикла это или единичное условие)
он не выйдет за пределы массива, а внутри можно еще какие-нить проверки сделать ...
 
G

Guest

#4
Sorry, что дастою, как правильно проверить пустое ли поле:
Код:
If (Not Isempty(docDocument.ContractLinkH(0))) Then
че-то не работает, пропускает дальше, а
Код:
Call itemTrancheContractLink.AppendToTextList(docDocument.ContractLinkH(0))
пишет - Subscript Out Of Range
 

Omh

Lotus team
04.07.2007
2 210
1
#5
Isempty(NotesDocument.Field(0)) всегда будет false
AppendToTextList - гогно :(
Что за задача?
 
G

Guest

#7
Isempty(NotesDocument.Field(0)) всегда будет false
AppendToTextList - дебильный метод

Что за задача?
Если поле ContractLinkH - не пустое, то тогда я добавляю это значение в поле TrancheContractLinkH. В противном случае доваляю пустое значение.
Почему - AppendToTextList, мне надо добавлять значение в поле, а не заменять

Код:
Set itemTrancheContractLink = cDoc.GetFirstItem("TrancheContractLinkH")
If (Not Isempty(docDocument.ContractLinkH(0))) Then
Call itemTrancheContractLink.AppendToTextList(docDocument.ContractLinkH(0))
Else
Call itemTrancheContractLink.AppendToTextList("")
End If
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Заменяем всё на:
docDocument.TrancheContractLinkH = ArrayAppend(docDocument.TrancheContractLinkH, docDocument.ContractLinkH)
 
A

Archi2001

#9
Если поле ContractLinkH - не пустое, то тогда я добавляю это значение в поле TrancheContractLinkH. В противном случае доваляю пустое значение.
Почему - AppendToTextList, мне надо добавлять значение в поле, а не заменять

Код:
Set itemTrancheContractLink = cDoc.GetFirstItem("TrancheContractLinkH")
If (Not Isempty(docDocument.ContractLinkH(0))) Then
Call itemTrancheContractLink.AppendToTextList(docDocument.ContractLinkH(0))
Else
Call itemTrancheContractLink.AppendToTextList("")
End If

Я бы честно через массив сделал бы ... может конечно неоптимально разводить массивы, но при работе с поялми массивы нагляднее получаются...
и добавлять в массив через Arrayappend, а потом этот массив присваивать соотв. полю...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Денис Кириченко
И вообще, хранить в поле пустые значения не получится. Так что лучше добавить что-нибудь.
 

Omh

Lotus team
04.07.2007
2 210
1
#11
Код:
Dim itemTrancheContractLink As NotesItem
Set itemTrancheContractLink = cDoc.GetFirstItem("TrancheContractLinkH")
If Not itemTrancheContractLink Is Nothing Then
Dim Vals As Variant
Vals = docDocument.GetItemValue("ContractLinkH")

Dim ValueToAdd As String
ValueToAdd = Cstr(Vals(0))

Call itemTrancheContractLink.AppendToTextList(ValueToAdd)
End If
Вроде так.
Вообще, код далеко не самый лучший.

Archi2001
Я тоже за массивы.
Это подконтрольно.
 
G

Guest

#12
Код:
Dim itemTrancheContractLink As NotesItem
Set itemTrancheContractLink = cDoc.GetFirstItem("TrancheContractLinkH")
If Not itemTrancheContractLink Is Nothing Then
Dim Vals As Variant
Vals = docDocument.GetItemValue("ContractLinkH")

Dim ValueToAdd As String
ValueToAdd = Cstr(Vals(0))

Call itemTrancheContractLink.AppendToTextList(ValueToAdd)
End If
Вроде так.
Вообще, код далеко не самый лучший.

Archi2001
Я тоже за массивы.
Это подконтрольно.
Ты бы конструктивно критиковал, как лутше сделать, а то просто не самый лутший. Через backgraund тут я думаю не выйдет.
 

Omh

Lotus team
04.07.2007
2 210
1
#13
Дык и я и Archi2001 сказали: через массивы.
если лень через массивы, то можно последовать совету Medevic'a

Я же зла не хочу :(
Сейчас привыкнешь писать через NotesItem.AppendToTextList, FieldSet(Get)Text
Самому потом переучиваться придёться.

Поэтому лучше сразу писать нормально.
 

morpheus

скриптописец
07.08.2006
3 915
1
#15
Поддерживая высказывание Constantin A Chervonenko , хочу спросить у Omh:
- а на чем собственно основываеться такое умозаключение???(про калл)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#16
Работает только со строками. Т.е. для дат и чисел нужен другой способ. А зачем делать винегрет, когда есть универсальный способ?
 

Omh

Lotus team
04.07.2007
2 210
1
#20
Для Morpheus

Medevic за меня ответил ни в бровь, а в глазину.
А зачем делать винегрет, когда есть универсальный способ? (с)