Количество значений в поле документа

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

Статус темы:
Закрыта.
  1. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Собственно вопрос...
    Есть документ с мультивальовым полем авторз.
    Мне нужно из этого поля взять все значения и добавить в уже существующий массив значений, а потом этот массив записать в другое поле.
    Я вот думаю, как узнать сколько значений в поле авторз, чтобы переопределить массив под конкретное число значений? :rolleyes:
    Все выполняется в бэкенде, никаких UI.
     
  2. Klido

    Klido Гость

    ну... мультивэлью поле либо массив, либо список... выбор действий широк - от @elements до ArrayAppend после ReDim относительно Ubound...
    хелп сложно почитать?
     
  3. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    Мда... про Ubound совсем забыл :rolleyes:

    может кому-то потом понадобится:

    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim i As Integer

    Set doc = ws.CurrentDocument.Document
    Set item = doc.GetFirstItem("test1")
    i = Ubound(item.Values)

    і будет равно количеству значений в поле -1. То есть, если значений 5, то i=4
     
  4. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    А чему будет равно i если поле пустое? :rolleyes:
     
  5. Klido

    Klido Гость

    или если Option Base 1 ? :rolleyes:
     
  6. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
  7. San40S

    San40S Well-Known Member

    Регистрация:
    15 апр 2009
    Сообщения:
    69
    Симпатии:
    0
    нулю!!! будет равно НУЛЮ!

    не понял о чем Вы?
     
  8. Klido

    Klido Гость

    San40S
    Option Base statement
    Sets the default lower bound for array subscripts to 0 or 1.

    Я ж говорю, лень хелп читать :rolleyes: Соответственно, Ubound будет нормальным относительно кол-ва элементов....
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    еще проверку делать IsArray
     
  10. RonTermit

    RonTermit Гость

    ненавижу Ubound и Redim
    Call doc.ReplaceItemValue({FieldName3}, ArrayAppend(doc.getitemvalue({FieldName1}),doc.getitemvalue({FieldName2}) ))
    ..при этом вместо doc.getitemvalue({FieldName1} можно вставить всеми так любимую переменную массива типа Variant
     
  11. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    про "всеми так любимую переменную массива типа Variant": а автор топика с ней знаком? :) думаю, ему стоило бы познакомиться с массивами поближе.
    кстати, а еще давайте вспомним про наличие Fulltrim и ArrayUnique - иногда пригодятся: поля-то не резиновые, больше 32К для авторов пока от IBM не получили вроде как.
    В общем, соединив вместе условие lmike и вариант RonTermit и подумав, что иногда (в некоторых отдельных случаях) стоит еще задавать явно Notesitem.IsAuthors = True, получим решение искомой задачи.

    И вообще - я сегодня злой модер... Возможно, я не права, но, честно, прям детский сад. Ребята, давайте сейчас каждый начнет пересказывать хелп в оригинале. Да если бы автор его сам прочитать сумел, то сам бы смог найти решение гораздо быстрее... А так в очередной раз забудет через месяц.
    В общем, в ожидании вопросов, как на лотусскрипте соединить 2 строки и присвоить третьей, я эту тему просто закрываю)
    Все претензии принимаются в личку.
    КСТАТИ. На форуме, кроме смайлов, есть еще теги форматирования кода...
     
Загрузка...
Статус темы:
Закрыта.

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