• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Представление с дочерними документами

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Пытался уже найти здесь ответ, но те обсуждения, что тут встречаются по отображению респонсов во вьюхе, не дали мне ответа на мой вопрос.

Имеем в БД три типа документов:
1. Родитель (пускай будет с формой Parent)
2. Дочка (форма Responce) - респонс к Родителю
3. Внучка (форма Responce) - респонс к Дочке.
Мне нужно нарисовать вьюху, где проведен отбор по ключевому слову в поле Дочки. Во вьюхе должны отображаться эти Дочки вместе с привязанными к ним Внучками.

Я создал вьюху с откл. галкой отбражения респонсов в иерархии. Добавил Выборку по форме Responce и ключевому слову из поля Дочки, которая выглядит примерно так:
SELECT form="Responce"&(DochkaField="Искомый текст 1"|DochkaField="Искомый текст 2")|@AllChildren
Во вьюхе создал некатегоризированную колонку для отображения значения одного поля из формы Responce.

В итоге я, действительно, получил во вьюхе некоторую выборку респонсов (Дочки и Внучки), но общим смешанным списком, в котором не ясно, кто к кому привязан. Одинаково заполненного поля в форме у Дочки и ее Внучки, к сожалению, нет.

Как-то можно категоризировать такую вьюху, чтобы Внучки наглядно отображались под своей Дочкой?

P.S. Проанализировав ситуацию, пришел к выводу, что надо отображать еще и Родителя, т.к. в самой Дочке и Внучке мало информации.

ИТОГО:Как сделать выборку по значению поля из формы Дочки, но отобразить и связанную с ней Внучку, и ее родительский документ?
 
A

Alexander (Criz)

пиши агента и скидывай всё в папку...
 
M

morpheus

не уверен что получиться плясать от дочки. Надо всё таки влясать от родителя(в рожителе хранить флаги какиенибуть) + задавать условия для наследников
 

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
пиши агента и скидывай всё в папку...
Блин, агента я уже не осилю... Со вьюхой как-то проще было бы, но из всех своих поисков пришел к выводу, что во вьюхе в Селекте плясать можно только сверху вниз, от родителя к потомку.

Впрочем, можно попытаться. Может кто подскажет, от чего хотя бы отталкиваться при написании агента?

Morpheus, это все понятно, в своем первом посте я уже высказал свое огорчение по поводу отсутствия в родителе каких-то доп.полей, флагов и т.д. Задача возникла именно сейчас в текущей БД с текущей структурой и имеет локальный разовый характер.

В качестве обходного решения, видимо, проще всего не в папку пересовывать доки, а натравить агента на текущие документы и значения парочки полей из своего потомка сохранить у себя, и так от потомка к потомку пройтись: Родитель возьмет себе значения Дочки, Дочка - значения Внучки.

Но вот как это реализовать? ))
 
K

K-Fire

Я правильно понял что во вьюхе документы Родитель не должны вообще отображаться?

Если да, то делайте так:
Дочки и внучки должны быть связаны не через поле $REF, а каком-нить другим полем, а во вьюхе потом используйте DEFAULT $REF := YourRef;

А поле YourRef можно сделать указав в форме внучки в этом поле формулу @InheritedDocumentUniqueID.
 

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Я правильно понял что во вьюхе документы Родитель не должны вообще отображаться?
Родителей отображать можно. Мне главное, выборку сделать на определенное значение по одному полю, которое содержится только в Дочке, а отобразить нужно и связанного с Дочкой Родителя и Внучку.

Твой совет поможет решить проблему на новой базе с новыми документами, в которых будет содержаться доп.служебное поле. Мне же нужно обработать уже имеющиеся документы в старой БД.
 
K

K-Fire

Родителей отображать можно. Мне главное, выборку сделать на определенное значение по одному полю, которое содержится только в Дочке, а отобразить нужно и связанного с Дочкой Родителя и Внучку.

Ну тогда без прописывания атрибута в родителя не обойтись.


Твой совет поможет решить проблему на новой базе с новыми документами, в которых будет содержаться доп.служебное поле. Мне же нужно обработать уже имеющиеся документы в старой БД.

Конверсионный агент придется писать по любому.
 

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Так и сделал, следующим постом приведу код агента, авось, кому пригодится.
 

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Задачка выполнена.
Для истории - вот код агента, сливающий инфу от потомков к родителю, чтобы потом можно было построить вьюху по родителю.
Код:
_Child:=@DbLookup ("";"";"(view)"; @Text(@DocumentUniqueID); "RespField";[FailSilent]);
@If(_Child=""; @Return("");"");
_Child2:=@DbLookup ("";"";"(view)"; @Text(@DocumentUniqueID); "RespFieldDate";[FailSilent]);
@SetDocField($Ref; "F1"; RespField);
@SetDocField($Ref; "FD1"; RespFieldDate);

@SetDocField($Ref; "F2"; _Child);
@SetDocField($Ref; "FD2"; _Child2)
 
Мы в соцсетях:

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