Экспорт состава проекта в doc-файл

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Экспорт состава проекта в doc-файл

Сообщение Анна »

Вот есть проект, имеющий, предположим, вот такой вид:

Рабочий проект (стадия проектирования)
...Том 1
...Том 2
.....Раздел 1
.......Книга 1
.......Книга 2
.....Раздел 2
.......Книга 1
.........Часть 1
.....Раздел 3
.........Часть 1

А может он иметь и такой вид:
Инженерные изыскания (стадия проектирования)
...Том 1
.....Часть 1
...Том 2
.....Книга 1
.......Часть 1
.....Книга 2
.......Часть 1
...Раздел 1
.....Книга 1
........Часть 1

Все это называтся - состав проекта и он может быть разным. Тома, части, разделы, книги - это объекты, имеющие свои атрибуты.
Включены они могут быть в разном порядке. Закономерности никакой.

Задача в следующем: Необходимо состав проекта выгрузить в doc-файл в виде таблицы. Может кто решал подобные задачи, подскажите, как это сделать.

[Исправил название темы на более точно соответствующее сути -- Administrator_PLM_Board]
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Сообщение Старик Крупский »

А какова должна быть структура таблицы? Количество уровней в структуре проекта равно количеству столбцов или попроще?
Аватара пользователя
Анна
Участник
Сообщения: 27
Зарегистрирован: 13 июн 2007, 10:32

Сообщение Анна »

Структура таблицы

Номер Обозначение Наименование
1...............................Том 1. Наименование
1.1............................Раздел 1. Наименование
2...............................Том 2. Наименование
2.1............................Раздел 1. Наименование
2.1.1.........................Книга 1. Наименование
2.1.2.........................Книга 2. Наименование
2.2............................Раздел 2. Наименование
2.2.1.........................Книга 1. Наименование
2.2.1.1.......................Часть 1. Наименование
2.2.1.2.......................Часть 1. Наименование
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

При помощи хранимой процедуры это несложно сделать.
Вот заготовка кода для Sybase SQL Anywhere:

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

create procedure UnloadProject(in @obj_id numeric(18))
begin
declare local temporary table #res(
  id numeric(18),
  pos varchar(255),
  aLevel integer,
  )
declare @maxLevel integer;
declare @tree_linktype integer;

set @tree_linktype=1;
set @maxLevel=0;

insert into #res(id,pos,aLevel) values(@obj_id,'1.',@maxLevel)
while exists(select id from #res where aLevel=@maxLevel) loop
        insert into #res(id,pos)
                select tl.link_id,#res.pos  from #res join tree_link_view as tl on #res.id = tl.parent_id  
                    where #res.aLevel=@maxLevel and tl.link_type_id = @tree_linktype;
set @maxLevel=@maxLevel+1;
update #res set 
   pos=pos+right('  '+cast(number() as char),3),
   aLevel=@maxLevel
   where aLevel is null;
end loop;
select * from #res order by pos;
end
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Сообщение Старик Крупский »

Включение в атрибуты элементов состава проекта их номеров для сортировки решило бы задачу...
Но возможно, это можно сделать и проще, сделав два отчета - по одному для каждой стадии проектирования. Уже будет проще, но надо будет решить вопрос с признаком для сортировки.
Первый вариант конечно, в разы проще - даже думать не надо будет :-)
Ответить