Ветвление в связанных отчетах, как правильно?

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Ладно закрываем тему, я уже купил книжку по SQL для чайников-дайте только время... :wink:
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Продолжаем разговор...
Не подскажете -как красиво (без связей>1 уровня) создать примерно-такой же отчет как и предыдущий, но по множеству объектов?

Ситуация такая (объектноя модель)

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

1. Компания
   1 Отдел_1
      1.1 Сотрудник 1
          1.1.1 План работ
            1.1.1.1 Работа_1
            1.1.1.2 Работа_2
          1.1.2 Выполненная работа
            1.1.2.1 Работа_3
            1.1.2.2 Работа_4
      ....
      1.2 Сотрудник 2
          1.2.1 План работ
            1.2.1.1 Работа_3
      ...
   2 Отдел_2
      2.1 Сотрудник 1
          2.1.1 Выполненная работа
            2.1.1.1 Работа_5
      ...
      2.2 Сотрудник 2
          2.2.1 План работ
            2.2.1.1 Работа_4
      ...
Нужно сделать отчеты
1.-персональный (3 вида) -по плану работ, - по выполненной работе,-общий отчет
2.-отчет по отделу (сотрудники отделов) (градации как в первом)
3.-отчет по компании (все сотрудники)(градации как в первом)

Сложность заключается в том - что одна и таже работа(объект) может находится одновременно у нескольких сотрудников в разных папках (у одного в плане работ у остальных в выполненных работах)

Как я делаю сейчас
-завожу три атрибута для объектов (сотрудник/отдел/компания)
первый (число) если 0-общий отчет 1- план 2- выполненные
второй дата начала отчетного периода
третий дата окончания отчетного периода

Это сделано для настройки фильтров отчета, причем каждый объект хранит свои последние значения (кстати - если кто будет этим пользоваться фильтр отчета не берет последнюю дату 'включительно' т.е. отчет формируется только на день раньше.?? наверно-глюк)

А вот дальше для сотрудника??
Стою на нем, через диалог получаю тип отчета и даты

1-Запускаю отчет 'Сотрудник-План работ'
Он принимает атрибутивную информацию о текущем объекте (через аргументы) встает на План работ сотрудника и выдает все объекты первого уровня (по фильтру) в результирующий (последний) отчет - с этим понятно

2-Запускаю отчет 'Сотрудник-Выполненные работы' - здесь уже два варианта или в первый отчет подсунуть в качестве выделенного объекта -Выполненные работы и все как и выше Либо сначала получить все ID объекты из 'плана работ' (они будут нулевые по фильтру) добавить объекты из 'выполненных работ' и всю эту кучу с признаком кто где-передать в результирующий (последний) отчет

3-Соответственно отчет по всем работам Сотрудника можно выполнить по второму варианту второго отчета (собрать id плана работ_первый уровень(+признак)+id выполненные работы_первый уровень(+признак) все это сбросить в третий отчет и сделать группировку по признаку

Другими словами -создать 3-х уровневый связанный отчет и вызывать нужный уровень (или последний по признаку)
Если с одним человеком- в голове вроде все умещается, то с отделом и компанией не очень ( в смысле сделать просто и универсально)???

Не совсем понятно как все найденные id передать на второй и третий уровень?

Помогите распутаться (отчет выше первого уровня делать не хочу-Строчка 'поиск предка' - очень напрягает)

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

Александр писал(а):Продолжаем разговор...
кстати - если кто будет этим пользоваться фильтр отчета не берет последнюю дату 'включительно' т.е. отчет формируется только на день раньше.?? наверно-глюк
может быть проблему решит знак "<=" (или ">=") в фильтре отчета? вместо "<" (или ">")...
а зачем делать отчет по связям?
если мы хотим получить отчет по сотруднику - встаем на него в дереве и выполняем отчет по всем потомкам. то же самое - для отдела и компании.
если уровней немного и объектов на каждом уровне немного - то работать будет достаточно шустро даже для компании целиком, в недавних обновлениях была увеличена скорость работы отчетов.
единственное, где можно запутаться - один объект (работа) может попасть в отчет столько раз, сколько он входит в объекты, так или иначе являющиеся дочерними для выделенного объекта... тут даже не знаю... это смотря что надо получить :-)
а вообще, это ниче, нормально, что работа есть у НЕСКОЛЬКИХ сотрудников сразу? с кого спрашивать?
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

можно было бы использовать связи>1 но раньше, когда работа принадлежала только одному сотруднику и я использовал '1'-это план работ, а '-1'-это выполненные работы.
Сейчас же работа проходит по исполнителям, обрастает комментариями и что характерно, каждый хочет иметь ее экземпляр в своем плане работ-для отчетности, в связи с чем признак '1'/'-1' утрачивает актуальность для группировки отчета по конкретному сотруднику и мне нужно в отчете за что-то цепляться чтобы понять где сейчас эта работа при построении отчета со стороны сотрудника, а не со стороны работы

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

а в отчете по компании идет группировка
отдел
сотрудник1
плановые работы
выполненные работы
сотрудник 2

т.е. пусть она входит куда хочет - по исполнителю и статусу понятно что-к чему.
К сожалению в однозначной идентификации используется еще несколько признаков - и воткнтуть их все в общий фильтр тем более по компании - достаточно проблематично

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

Запутался полностью :cry:
Как ведет себя Лоция в случае 3-х уровневого отчета, ести 3-й является результатом предыдущих?

Когда я запускаю 3-й отчет
- он сначала запускает 1-й потом 2-й потом формируется сам?
- или он запускает 2-й который в свою очередь запускает 1-й, затем спускается на второй и формируется сам?

Как идет работа -снизу вверх или сверху вниз?
И как передать найденные данные из отчета в отчет в одной колонке? или результаты 1-го нужно передавать в одной колонке, а результаты второго во второй, и как тогда объединить их в 3-м отчете в одну колонку? в общем жуть-учитывая то, что в первые два отчета еще нужно передать ID объектов и информацию для фильтра?

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

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

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

Как я понимаю, третий отчет ничего не знает о первом. Он тянется ко второму, а второй, тоже видя, что аргументы идут от первого, запускает первый отчет. Это можно легко увидеть. Можно у первого отчета сделать форму с 2-мя аргументами, а у второго с одним. Запускать второй отчет. При запуске покажется форма с 2-мя аргументами. Значит, сразу же запускается 1-ый отчет.
Данные их первого в третий передаются так: из первого во второй через связку аргумент-колонка. Во втором отчете делается вычисляемое поле со ссылкой на тот самый аргумент. В третьем отчете делается связка аргумент-вычисляемое поле. Имеется в виду аргумент текущего отчета, а колонка или вычисляемое поле из пердыдущего отчета. Так по цепочке и идет. А как соединить в одну колонку? Просто: через вычисляемые поля. Принял данные обработал их и передал дальше в другом вычисляемом поле.
Не такая уж и жуть. А вместо фильтра могу посоветовать дополнительные условия SQL отбора - частенько они срабатывают на порядок быстрее.
Ответить