Программный Доступ К Выделенным Документам Embedded View

Тема в разделе "Lotus - Программирование", создана пользователем arm, 17 окт 2013.

  1. arm

    arm Active Member

    Регистрация:
    6 мар 2013
    Сообщения:
    25
    Симпатии:
    0
    Я очень долго пытался найти способ получить доступ из кода формы к списку выделенных документов во встроенной в эту форму вьюшке. Сейчас у меня все операции со списком отображаемых документов производятся программно, но чтобы определить к каким объектам я хочу это всё применить я использую метод ws.PickListCollection который настроен так, что отображает ровно такую же вьюшку в которой я и отмечаю документы. Очень бы хотелось избежать этого ненужного шага, но способа так и не вижу. Располагать кнопки в самой вьюшке не вариант! Если кто-то все-таки нашёл способ подсобите пожалуйста!
     
  2. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    Код (LotusScript):
    Set collection = db.UnprocessedDocuments
    должен тебе вернуть список выделенных документов
     
  3. arm

    arm Active Member

    Регистрация:
    6 мар 2013
    Сообщения:
    25
    Симпатии:
    0
    Эхх, если бы всё было так просто. С Embedded View не работает у меня такая штука. Кстати Версия Lotus - 7
     
  4. Bob84

    Bob84 Active Member

    Регистрация:
    16 май 2012
    Сообщения:
    38
    Симпатии:
    0
    Как вариант можно использовать событие OnSelect представления. Так как из встроенного представления мы может класть в текущий документ нужную информацию (если он в режиме редактирования, если промотр придется использовать временный документ или переменные окружения), по этому событию вычисляем список NoteID или UNIDов выделенных документов и записываем их куда-либо (см. выше).
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    сделать внедренную вьюху
    а часть данных в колонках обозвать кнопками
    и тогда сделав событие на редактирование колонки получаем настоящий кайф :)
     
  6. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Для одного внедрённого вида отработает из действия в виде, а в случае выделения документов в нескольких внедрённых видах получим непредсказуемые результаты.

    Добавлено:
    Да, в Onselect. Для отмеченных доков галочками используем Source.Documents (где Source - NotesUIView), а для документа, на котором курсор - CaretNoteID.
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну по идее надо делать так:

    делается embedded view, в нём делается кнопка.
    embeedded view указывается отображать Action Bar
    в action отлично работает db.unprocessedDocuments

    теперь самый скользкий шаг:
    по идее, после
    ---
    Dim ws As New NotesUIWorkspace
    Dim uiDoc As NotesUiDocument
    Dim Doc As NotesDocument
    Set uiDoc = ws.CurrentDocument
    Set Doc = uiDoc.Document
    ---
    в переменной док мы получим открытый документ.
    Есть некоторые нюансы, когда мы можем не получить uidoc, но при нормальной работе он будет отрабатывать в 99% случаев.

    Итого у нас есть то, что нам надо:
    коллекция документов из embedded view
    переменная содержащая открытый док

    P.s. Тегу code конец пришёл, чё он обрезает код,
     
  8. arm

    arm Active Member

    Регистрация:
    6 мар 2013
    Сообщения:
    25
    Симпатии:
    0
    Круто конечно, такой способ работает! Спасибо! Но проблема всё-таки в том, что мне нужно, чтобы код исполнялся в форме, а не во вьюшке. Потому, что форма при открытии создает объект класса, с которым и происходят определенные манипуляции, а при выходе этот объект записывает результат в форму и её респонсы. Так что любые такие действия не упрощают процесс. Можно конечно создать кнопку на вьюшке которая записывала бы список выделенных в какой-нибудь документ, а потом его можно было бы считать из формы нажатием на другую кнопку, но это не лучше того, что уже имеется, в основном потому, что это ещё более не естественно.
    На счет onSelect - у меня вообще такого нет, есть только inViewEdit - вещь не плохая, но опять же корявый способ...
    А вот если бы можно было иметь общие глобальные объекты разделенные между вью и формой - тогда все элементы управления можно было бы запихнуть во вью - было бы отлично, но так похоже тоже нельзя.
     
  9. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    можешь очереди заюзать вполне стабильно работают, правда нюансов тоже хватает. У меня в одном модуле похожая задача, очередями удачно решается....правда без OnSelect никак ты не получишь выделенные документы
     
  10. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    А Onselect event : Note This event is new with Release 8.
    Обновится до 8ки и заюзать очереди.
    или переработать архитектуру и схему работы.
     
  11. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Отлично работает. Но надо помнить, что:

    Добавлено:
    У нас что-то подобное. 2 похожих объекта - в форме и вьюхе. Результат можно писать в скрытые поля текущего дока. NotesUIDocument получать каждый раз при клике на кнопку, т.к. м.б. открыто несколько доков с одной и той же вьюхой.
    По глобальным данным ещё один из вариантов (непопулярный) - собственный ActiveX.
     
  12. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    VladSh, а можно пример, если не затруднит.
     
Загрузка...
Похожие Темы - Программный Доступ Выделенным
  1. yerke
    Ответов:
    9
    Просмотров:
    3.932
  2. alexas1
    Ответов:
    0
    Просмотров:
    506
  3. KiR
    Ответов:
    7
    Просмотров:
    2.303
  4. MMN
    Ответов:
    6
    Просмотров:
    1.847
  5. paravos09
    Ответов:
    0
    Просмотров:
    2.225

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