Как связать несколько документов?

SkyRanger

Active member
17.03.2007
44
0
#1
Есть карточка семьи, нужно к ней каким то образом создать и прикрепить карточки детей, входящих в эжту семью, причем карточка детей является другой формой, нежели карточка семьи. При этом список детей должен отображаться в виде списка внутри формы, т.е. это должна быть вьюха с возможностью двойного щелчка по строчке для редактирования\просмотра инфы....

Как все енто реализовать???
 
F

fvoice

#2
Есть карточка семьи, нужно к ней каким то образом создать и прикрепить карточки детей, входящих в эжту семью, причем карточка детей является другой формой, нежели карточка семьи. При этом список детей должен отображаться в виде списка внутри формы, т.е. это должна быть вьюха с возможностью двойного щелчка по строчке для редактирования\просмотра инфы....
Так ты же сам ответил на свой вопрос: использование ответных документов и встроенных вью..

Вот здесь описание как это реализовать
 
R

Ronchik

#3
Для: SkyRanger
для того что - бы документ сделать ответом достаточно создать в нем поле $REf в котором будет содержаться UNID родителя......название формы роли не играет
 

LuMee

Well-known member
02.05.2006
477
0
#4
Для: Ronchik, SkyRanger
Только поле это должно быть не текстовым, а спецовым (reference), поэтому вручную его создавать не стоит :D Лучше просто форму, по которой создаются ответы, сделать "ответной" на первой вкладке свойств формы.
 
R

Ronchik

#5
Для: LuMee
не согласен с тобой....использую для добавления вот такую процедурку
Код:
Call respNote.MakeResponse(mainNote)
..документы созданы по одной и той-же форме :D
 

LuMee

Well-known member
02.05.2006
477
0
#6
Для: Ronchik
Ну, это понятно. Я с т.з. пользовательского интерфейса имел ввиду :)
 

Omh

Lotus team
04.07.2007
2 210
1
#7
Можно и вообще без respons'ов обойтись, храня в каком-либо предефайненом поле UNID главного документа и фильтируя embedded view именно по нему.
Я бы именно так и сделал, ибо responses не внушают мне доверия...
 

LuMee

Well-known member
02.05.2006
477
0
#8
Для: Omh
Могут возникнуть трудности при копировании доков в другую базу, да и в случае необходимости по-человечески изобразить родительские и ответные документы в одной вью без респонсов не обойтись. В крайнем случае, одно другому не мешает :)
 

Omh

Lotus team
04.07.2007
2 210
1
#9
Для: LuMee
А при копировании респонсов в другую базу всё будет нормально?
Спрашиваю, ибо чувствую, что мои знания в области респонсов не очень сильны.
Насколько я знаю, они автоматом станут респонсом к выделнному документу, что, по мне, сомнительная фича.
Про копировании доков сменится UNID - это известно.

Кстати, view с респонсами, на мой взгляд, тоже не позволяет человечески отобразить документы.
В том случае, если мне надо из респонса показать несколько колонок (кол-во, цена, сумма).
Или я ошибаюсь?

Заранее сенк :)
 

Omh

Lotus team
04.07.2007
2 210
1
#11
Обоснуй :)
Я же говорю, что все случаи, когда я сталкивался с респонсами, не принесли мне удовлетворения их работой.
Поэтому особого смысла я в них не вижу.
Хотелось бы ошибаться, но главное, понять, где я ошибался.
 
R

Ronchik

#12
Для: Omh
Смысл в том что ты можешь отображать иерархию документов не только встроеным видом но и в конкретном виде + кодом можно работать уже с пакетом документов которые могут содержать общие поля например поле статуса....а чтобы отображать ответы тебе достаточно указать на столбце в виде настроечку и все .....только надо помнить что у тебя в БД присутствуют ответы и исходя из этого факта писать код...вобщем очень удобная вещь
 

LuMee

Well-known member
02.05.2006
477
0
#14
Для: LuMee
А при копировании респонсов в другую базу всё будет нормально?
Спрашиваю, ибо чувствую, что мои знания в области респонсов не очень сильны.
Насколько я знаю, они автоматом станут респонсом к выделнному документу, что, по мне, сомнительная фича.
Про копировании доков сменится UNID - это известно.

Кстати, view с респонсами, на мой взгляд, тоже не позволяет человечески отобразить документы.
В том случае, если мне надо из респонса показать несколько колонок (кол-во, цена, сумма).
Или я ошибаюсь?
При копировании документов иерархия ответов сохраняется, причем как при копировании с помощью простого Ctrl+C - Ctrtl+V, так и программным путем (метод CopyToDatabase или как-то так у NotesDocument). Как это достигается - хз, но работает (проверял)
Насчет отображения нескольких колонок для респонсов во вью - тут врать не буду, не пробовал, хотя, имхо, ничего экстраординарного происходить не должно: заводишь колонку и пишешь в нее формулу, дергающую поля из респонса. Наверное, должно прокатить.
Есть у респонсов еще полезная вещь: для конкретного документа можно быстро получить коллекцию непосредственных ответов на него - свойство Responses. В случае с ручной связью через UNID'ы пришлось бы уже выполнять поиск по БД, что не так быстро и не так просто.
В общем, бояться респонсов не надо, только помнить, что их возможности тоже не безграничны <_<
 
30.05.2006
1 345
11
#15
Прокомментирую чуть:
1.Визуально: Альтернатива иерархии респонсов - иерархия категорий, что далеко не всегда годится.
2.Колонки ДО "респонсной" (которая к стати не обязательна) отображаются нормально
3.Иерархические вьюхи ГОРАЗДО дороже обычных
 

SkyRanger

Active member
17.03.2007
44
0
#16
Я сделал так:

Код:
	Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim uidoc1 As NotesUIDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
Dim session As New NotesSession
Dim user As String


Set uidoc1 = workspace.ComposeDocument("","","reg_card_child")

Set doc1 = uidoc1.Document
Call doc1.MakeResponse( doc)
Хмм, а как мне теперь для ембед вьюхи выбрать все респозны для текущего открытого документа?

Т.е. отобразить список всех респознов этого документа,сейчас выводятся все респозны
 

SkyRanger

Active member
17.03.2007
44
0
#18
Блин совсем запутался.

Есть документ А - главный (форма main).

Есть документ Б - подчиненый (форма - child) причем child может быть много

Формы у них естрественно разные. Как теперь правильно добавить респонз по форме child.

и как потом сделать выборку документов Б для открытого в данный момент документа А???
 

LuMee

Well-known member
02.05.2006
477
0
#19
Блин совсем запутался.

Есть документ А - главный (форма main).

Есть документ Б - подчиненый (форма - child) причем child может быть много

Формы у них естрественно разные. Как теперь правильно добавить респонз по форме child.

и как потом сделать выборку документов Б для открытого в данный момент документа А???
У формы child ставишь "Тип формы" в "Ответ" или "Ответ на ответ". На форме main создаешь, скажем, action, в котором будет типа такого:
Код:
@Command([Compose]; "child")
По нажатии на сию кнопку будет создаваться документ по форме child, который сразу будет ответом на открытый документ main. Секрет в том, что когда создается документ по форме типа "Ответ" или "Ответ на ответ", такой документ автоматом делается ответом на текущий (открытый или выбранный во вью) документ.
Насчет отобразить документы на форме. Делаешь вью с формулой:
Код:
SELECT Form = "child"
, первую колонку делаешь с формулой
Код:
@Text($Ref)
и указываешь ей, что она сортируемая по категориям (это на второй или третьей вкладке свойств колонки вроде).
Далее на форме main через меню "Создание" создаешь "Внедренный объект" - "Внедренное представление". Указываешь, что оно должно показывать ту вью, которую ты только что создал. В свойстве "Отображать едниственную категорию" (Show single category) пишешь:
Код:
@Text(@DocumentUniqueID)
 
F

fvoice

#20
Хмм, а как мне теперь для ембед вьюхи выбрать все респозны для текущего открытого документа?
Формула отбора у вью какая? Нужно отбирать документы ~ SELECT form="main" & @Responses
Есть ли первая категоризированная колонка содержащая: @Text(@DocumentUniqueID)?
Стоит ли галка "Show responses in document hierarchy"?
Встроенная вью содержит @Text(@DocumentUniqueID) в "Show single category"?