Страница 1 из 1

Вложенные документы

Добавлено: 26 апр 2010, 08:46
Aspirant
Здравствуйте. Помогите пожалуйста. Пытаюсь сделать так, чтобы все объекты, которые входят в объект родитель отображались на форме родителя.
В одной из тестовых баз на своем предприятии нашел выражение такого вида, которое показывает вложенные документы, но честно говоря, я мало что понял

if (number(f_execSQLselect_3('SELECT count(alnk.id) FROM lsdbo.tree_link_view alnk WHERE alnk.link_type_ID=1 AND alnk.parent_id='+id,'','','',300))>0,f_execSQLselect_3('SELECT aobj.description FROM lsdbo.tree_link_view alnk, lsdbo.object_reference_view aobj WHERE aobj.id=alnk.link_ID AND aobj.type_ID=100000028905006 AND alnk.parent_id='+id,char(13),char(13),'',300),'Вложенных документов нет')

если не сложно можете ли объяснить популярно, что за что отвечает, либо подсказать более простой способ...

Re: Вложенные документы

Добавлено: 26 апр 2010, 08:59
Andrew
Сечас можно проще, создаешь форму обьекта - тип дочерние обьекты и украшаешь ее как хочешь -это для обьектов
Для документов архива чуть посложнее там же можно вывести запросом наличие доументов и прочее, как позволит фантазия и БД

Re: Вложенные документы

Добавлено: 26 апр 2010, 09:13
Anderyt

Код: Выделить всё

if (number(f_execSQLselect_3('SELECT count(alnk.id) FROM lsdbo.tree_link_view alnk WHERE alnk.link_type_ID=1 AND alnk.parent_id='+id,'','','',300))>0,f_execSQLselect_3('SELECT aobj.description FROM lsdbo.tree_link_view alnk, lsdbo.object_reference_view aobj WHERE aobj.id=alnk.link_ID AND aobj.type_ID=100000028905006 AND alnk.parent_id='+id,char(13),char(13),'',300),'Вложенных документов нет')
это выражение по идее должно показывать список описаний объектов, входящих в текущий объект, или фразу "Вложенных документов нет", если объектов нет.
if(<условие>, <если истина>,<если ложь>) - это наверное не требует комментариев..

f_execSQLselect_3('SELECT count(alnk.id) FROM lsdbo.tree_link_view alnk WHERE alnk.link_type_ID=1 AND alnk.parent_id='+id,'','','',300) - функция f_execSQLselect_3 выполняет запрос к БД и возвращает результат в виде строки, запрос в данном случае - число объектов, которые входят по типу связи Дерево проектов (вроде это у нее код 1) в объект с ИД, который передается через аргумент id

'SELECT aobj.description FROM lsdbo.tree_link_view alnk, lsdbo.object_reference_view aobj WHERE aobj.id=alnk.link_ID AND aobj.type_ID=100000028905006 AND alnk.parent_id='+id - запрос, который возвращает описания объектов, которые входят в объект с ИД = id. аргументы char(13),char(13) - это символы разделители между столбцами и строками результатов.
вот как то так...

Re: Вложенные документы

Добавлено: 26 апр 2010, 10:43
Aspirant
Так в принципе понял, спасибо за разъяснение. Грубо говоря, мне можно просто скопировать это выражение и вставить в вычисляемое поле в своей форме... Но почему то, когда ввожу ID объекта родителя, система выдает ошибку :? ... С чем это может связано? Может быть здесь используется ID другого объекта :?:
А по поводу формы дочерних объектов, с ней я даже еще не разбирался, да и придется переделывать все формы, а дерево у меня с большим количеством вложенных объектов...

Re: Вложенные документы

Добавлено: 26 апр 2010, 12:12
Andrew
Родитель у тебя текущий объект надо подставить его ИД

Re: Вложенные документы

Добавлено: 26 апр 2010, 13:02
Anderyt
или использовать приведенное выражение в чистом виде, ДОБАВИВ ЗАРАНЕЕ на форму объекта поле ID объекта (именно поле, а не атрибут). тогда в выражении будет использоваться ИД того объекта, который в данный момент выделен в дереве..

Re: Вложенные документы

Добавлено: 26 апр 2010, 19:29
Старик Крупский
Anderyt писал(а):ДОБАВИВ ЗАРАНЕЕ на форму объекта поле ID объекта (именно поле, а не атрибут)
Ну да, все верно. Правой кнопкой мыши щелкаем в форме справа (в списке колонок), выбираем добавить поле и выбираем поле ID объекта.

Re: Вложенные документы

Добавлено: 28 апр 2010, 08:26
Aspirant
Спасибо большое! Все сделал работает, только еще пришлось добавить одно поле, в нем указал описание какого атрибута использовать :D