• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы SkyRanger
  • Дата начала Дата начала
S

SkyRanger

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

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

Так ты же сам ответил на свой вопрос: использование ответных документов и встроенных вью..

Вот здесь описание как это реализовать
 
Для: SkyRanger
для того что - бы документ сделать ответом достаточно создать в нем поле $REf в котором будет содержаться UNID родителя......название формы роли не играет
 
Для: Ronchik, SkyRanger
Только поле это должно быть не текстовым, а спецовым (reference), поэтому вручную его создавать не стоит :D Лучше просто форму, по которой создаются ответы, сделать "ответной" на первой вкладке свойств формы.
 
Для: LuMee
не согласен с тобой....использую для добавления вот такую процедурку
Код:
Call respNote.MakeResponse(mainNote)
..документы созданы по одной и той-же форме :D
 
Для: Ronchik
Ну, это понятно. Я с т.з. пользовательского интерфейса имел ввиду :)
 
Можно и вообще без respons'ов обойтись, храня в каком-либо предефайненом поле UNID главного документа и фильтируя embedded view именно по нему.
Я бы именно так и сделал, ибо responses не внушают мне доверия...
 
Для: Omh
Могут возникнуть трудности при копировании доков в другую базу, да и в случае необходимости по-человечески изобразить родительские и ответные документы в одной вью без респонсов не обойтись. В крайнем случае, одно другому не мешает :)
 
Для: LuMee
А при копировании респонсов в другую базу всё будет нормально?
Спрашиваю, ибо чувствую, что мои знания в области респонсов не очень сильны.
Насколько я знаю, они автоматом станут респонсом к выделнному документу, что, по мне, сомнительная фича.
Про копировании доков сменится UNID - это известно.

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

Заранее сенк :)
 
Обоснуй :)
Я же говорю, что все случаи, когда я сталкивался с респонсами, не принесли мне удовлетворения их работой.
Поэтому особого смысла я в них не вижу.
Хотелось бы ошибаться, но главное, понять, где я ошибался.
 
Для: Omh
Смысл в том что ты можешь отображать иерархию документов не только встроеным видом но и в конкретном виде + кодом можно работать уже с пакетом документов которые могут содержать общие поля например поле статуса....а чтобы отображать ответы тебе достаточно указать на столбце в виде настроечку и все .....только надо помнить что у тебя в БД присутствуют ответы и исходя из этого факта писать код...вобщем очень удобная вещь
 
Для: Ronchik
Ok, присмотрюсь в очередной раз.
 
Для: LuMee
А при копировании респонсов в другую базу всё будет нормально?
Спрашиваю, ибо чувствую, что мои знания в области респонсов не очень сильны.
Насколько я знаю, они автоматом станут респонсом к выделнному документу, что, по мне, сомнительная фича.
Про копировании доков сменится UNID - это известно.

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

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

Хмм, а как мне теперь для ембед вьюхи выбрать все респозны для текущего открытого документа?

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

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

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

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

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

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

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

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

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

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab