Создание Иерархического Представления

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

  1. lokofan

    lokofan New Member

    Регистрация:
    26 мар 2014
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток.
    Заранее извиняюсь, вопрос предельно простой, но найти информацию самому не получилось, иначе не писал бы.

    Имеется две формы: "Организация" и "Сотрудник". Необходимо создать иерархическое представление, используя механизм ответных документов. То есть, надо написать скрипт, который будет выполняться при нажатии кнопки на форме "Организация" и создавать связь между организацией и сотрудником. Вот то, до чего я смог дойти:

    Код (LotusScript):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim workspace As New NotesUIWorkspace
    Dim document As New NotesDocument(session.CurrentDatabase)

    document.Form = "Сотрудник"
    Call document.MakeResponse(workspace.CurrentDocument.Document)
    End Sub
    Большая просьба помочь исправить скрипт и дать какие-нибудь советы по созданию представления.
    Заранее спасибо.
     
  2. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    Можно и так, как Вы написали, только новый док надо ещё сохранить: Call document.Save( True, False )
    В виде, что бы видеть иерархию, надо включить в нужной колонке - show twistie when row is expandable (первая закладка в свойствах колонки, внизу)
    Что бы доки появились в виде, его надо отрефрешить программно, или переоткрыть, или нажать F5 или F9.
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    alexas внимательнее =)
    Код (LotusScript):
    Call document.Save( True, document.Isresponse)
    Форму сотрудник можно сделать типом Response или прописать в документе перед сохранением:
    Код (LotusScript):
    Call document.Replaceitemvalue("$RefOption","0")
    Это позволит сохранить $Ref при сохранении сотрудника через UI, если форма будет типом: Document
     
  4. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    savl я опирался на авторский код и логику интерфейса (lokofan же в нём разбирался), а в этом случае, второй параметр в Save не будет иметь никакого значения (даже с первым параметром False). Попробуйте.
    А форму "Сотрудник" не можно, а нужно сделать типом Response (если ей будут редактировать).
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    По представлению: чтобы учитывать при отображении иерархию, у представления должна быть включена Show response documents in a hierarchy (на 2й вкладке), а у БД - выключена Don't support specialized response hierarchy (на посл. вкладке).
    Есть случаи, когда удобно выводить основные данные ответных документов в отдельную колонку с Show responses only, есть случаи, когда лучше для вывода информации из ответных документов использовать все колонки представления (можно выводить разные поля для разных типов документов через формулу колонки, определив тип документа - например, через форму)
     
  6. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    236
    Симпатии:
    24
    savl внимательнее =)
    Второй параметр делает респонзом конфликт, если такой приключился в момент сейва и этот второй параметр игнорируется, если первый True
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Shandrik
    точно, вот так будет лучше, можно еще проверку с IF сделать.
    Код (LotusScript):
    Call document.Save( false, document.Isresponse)
     
  8. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    лишнее это. Это-ж новый док.
     
Загрузка...

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