• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы lokofan
  • Дата начала
L

lokofan

Доброго времени суток.
Заранее извиняюсь, вопрос предельно простой, но найти информацию самому не получилось, иначе не писал бы.

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

Код:
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

Большая просьба помочь исправить скрипт и дать какие-нибудь советы по созданию представления.
Заранее спасибо.
 
A

alexas

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

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
alexas внимательнее =)
Код:
Call document.Save( True, document.Isresponse)
Форму сотрудник можно сделать типом Response или прописать в документе перед сохранением:
Код:
Call document.Replaceitemvalue("$RefOption","0")
Это позволит сохранить $Ref при сохранении сотрудника через UI, если форма будет типом: Document
 
A

alexas

savl я опирался на авторский код и логику интерфейса (lokofan же в нём разбирался), а в этом случае, второй параметр в Save не будет иметь никакого значения (даже с первым параметром False). Попробуйте.
А форму "Сотрудник" не можно, а нужно сделать типом Response (если ей будут редактировать).
 
H

hosm

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

Shandrik

alexas внимательнее =)
Код:
Call document.Save( True, document.Isresponse)

savl внимательнее =)
Второй параметр делает респонзом конфликт, если такой приключился в момент сейва и этот второй параметр игнорируется, если первый True
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Shandrik
точно, вот так будет лучше, можно еще проверку с IF сделать.
Код:
Call document.Save( false, document.Isresponse)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!