Динамическое Получение Данных Для Repeat

Тема в разделе "Lotus - Xpages", создана пользователем AndreKv, 13 ноя 2012.

  1. AndreKv

    AndreKv New Member

    Регистрация:
    13 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    Коллеги, приветствую!

    Хочу обратится за вашей помощью!
    Есть следующая задача:
    - имеются документы (формы) разных видов, например form1, form2, form3;
    - в формах есть поля, например поле "status".

    Задача: как сделать динамически выборку нужных форм с нужным статусом, чтобы потом эту выборку передать в элемент Repeat???!

    В данном случае, вариант использовать Simple data binding (через view или document) - не годится. Нужно сделать как-то по другому, например через JavaScript.
    Хелп лотуса дает пример вида "return database.getAllDocuments()". Это работает, но понятно, что возвращает все документы. А нужно сделать так, чтобы возвращались документы например вот в таком условии: "(Form="form1" & status=6) | (Form="form3" & status=8)".

    Как сделать?! Куда смотреть, где читать!?! )
    Благодарю!
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну поиск еще никто не отменял.
    Я же так понимаю в data можно скормить коллекцию
     
  3. AndreKv

    AndreKv New Member

    Регистрация:
    13 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    NickProstoNick,
    та вроде уже весь инет перерыл, вместе с этим форумом - ничего подходящего вроде как не нашлось...
    Хотелось бы отказаться от использования view... Но куда не глянь - везде используется деревянный view элемент.

    Кстати, для тех, кто столкнулся с подобной задачей но тоже не смог найти выхода - поделюсь решением, на котором я остановился:
    Код (Text):
    var v:NotesView = database.getView("vForms");
    var query = new java.util.Vector();
    var status = 6;
    query.addElement(status);
    var dc:NotesDocumentCollection = v.getAllDocumentsByKey(query, true);
    query.clear();
    status = 8;
    query.addElement(status);
    dc.merge(v.getAllDocumentsByKey(query, true));
    return dc;
    примечания:
    vForms - вид, который собирает все нужные формы, первая колонка по полю status (обязательно отсортированная, иначе ошибка);
    query.addElement(status) - по очереди выбираем формы с нужным значением status, как я понял, сделать логическое ИЛИ нельзя... ;((
    Данное решение было взято отсюда: Searching for Documents

    NickProstoNick,
    буду благодарен, если сможешь подсказать более элегантное решение! ;)
    Ну или ссылку, где можно подсмотреть подобные решения! )
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Я правда не понял как и что должно выглядеть?
    Нарисовать можешь?
     
  5. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    AndreKv, по-моему, все правильно - коллекция и скармливается. А во что еще можно собрать разнородные документы? Хммм, ну в фолдер, конечно (не знаю, поддерживается дли это в X...) Или db.Search...
     
  6. AndreKv

    AndreKv New Member

    Регистрация:
    13 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    Мыш
    Да, могу подтвердить, этот код работает отлично! ;)
     
Загрузка...

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