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

Тема в разделе "Lotus - Программирование", создана пользователем -, 13 мар 2008.

  1. Гость

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    Ubound(Array)
     
  3. Archi2001

    Archi2001 Гость

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

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Isempty(NotesDocument.Field(0)) всегда будет false
    AppendToTextList - гогно :(
    Что за задача?
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    If Len (docDocument.ContractLinkH(0)) > 0 then - поле НЕ пустое
     
  7. Гость

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Заменяем всё на:
    docDocument.TrancheContractLinkH = ArrayAppend(docDocument.TrancheContractLinkH, docDocument.ContractLinkH)
     
  9. Archi2001

    Archi2001 Гость


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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Денис Кириченко
    И вообще, хранить в поле пустые значения не получится. Так что лучше добавить что-нибудь.
     
  11. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    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
    Я тоже за массивы.
    Это подконтрольно.
     
  12. Гость

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Дык и я и Archi2001 сказали: через массивы.
    если лень через массивы, то можно последовать совету Medevic'a

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

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

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Не умеешь готовить..
     
  15. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Поддерживая высказывание Constantin A Chervonenko , хочу спросить у Omh:
    - а на чем собственно основываеться такое умозаключение???(про калл)
     
  16. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Работает только со строками. Т.е. для дат и чисел нужен другой способ. А зачем делать винегрет, когда есть универсальный способ?
     
  17. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    это почему еще ? массив ("","","") в многозначное поле -- там и будет 3 пустых значения..
     
  18. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    До первого рефреша?
     
  19. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    тем не менее хранить можно
     
  20. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для Morpheus

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

Поделиться этой страницей