Различия

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

Ссылка на это сравнение

ru:creating_user_reports:typical_tasks_reports:class_subject [2020/07/29 13:35]
192.168.1.126 удалено
— (текущий)
Строка 1: Строка 1:
-====== Справочник "Субъекты" ====== 
  
-=====Вывод перечня процессов, где субъект указан Исполнителем ===== 
- 
-==== Постановка задачи ==== 
- 
-Требуется вывести в отчет для выбранного субъекта перечень процессов, где он является Исполнителем, т.е. связан с процессом типом связи "выполняет". Примерный вид отчета приведен на //Рис. 1//. 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/lang_class_subject_516.png?nolink |Рисунок 1}}]  
- 
-==== Планирование логики извлечения информации с помощью Объектной модели ==== 
- 
-Отчет необходимо будет вызывать для субъекта. Следовательно, отчет будет построен по справочнику "Субъекты". Необходимо отобрать среди всех процессов только процессы, где заданный субъект указан как Исполнитель. Чтобы выбрать среди всех процессов именно указанные процессы, нужно использовать фильтр. Т.к. информация будет выбираться из процессов, то фильтр необходимо строить по справочнику "Процессы". 
- 
-Для того чтобы понять, на какой параметр нужно наложить условие, откройте **Объектную модель** ({{bslink>Главное меню → Отчеты → Объектная модель|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;730e73fb-b31c-4f50-b9d6-49d7c04fee67:Item}}) и найдите в нем справочник "Процессы". 
- 
-Все субъекты, выполняющие или принимающие участие в выполнении процесса, отображаются в параметре "Субъекты", являющегося параметром с типом "Список". Среди всех процессов нужно выбрать те, у которых в этом перечне субъектов встречается нужный субъект, и он является Исполнителем данного процесса. Чтобы понять, на какие параметры нужно наложить условие, найдите в справочнике "Процессы" параметр "Субъекты" и перейдите по ссылке к классу этого параметра (//Рис. 2//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_518.png?nolink |Рисунок 2}}] 
- 
-Из **Объектной модели** видно, что класс для параметра "Субъекты" называется "Связи субъекта с процессом" (системное название - "БизнесМодель.СвязиСубъектов") и размещается в разделе "Классы". В этом классе для хранения типа связи субъекта и процесса предусмотрен параметр "Тип связи" (//Рис. 3//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/autot_class_subject_520.png?nolink |Рисунок 3}}] 
- 
-Для каждого типа связи существует категория. На эту категорию и нужно накладывать условие, так как категория останется неизменной, а наименование типа связи можно изменить или добавить новый тип с той же категорией. Для того чтобы посмотреть, какой параметр отвечает за категорию, перейдите по ссылке к классу для параметра "Тип связи" (//Рис. 4//). Предусмотрено 3 категории: "Владелец процесса", "Исполнитель процесса" и "Участвует". В фильтре нужно будет указать условие для отбора таких процессов, с которыми определенный субъект связан при помощи типа связи с категорией "Исполнитель процесса". 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/autot_class_subject_522.png?nolink |Рисунок 4}}] 
- 
-==== Настройка привязок ==== 
- 
-**ШАГ 1. Запуск Мастера отчетов и настройка условий применения отчета** 
- 
-Отчет с перечнем процессов выбранного субъекта будет динамическим, т.е. информация в нем будет меняться в зависимости от того, от какого субъекта будет вызван отчет. Для построения нового отчета в главном меню программы нажмите **Новый отчет** ({{bslink>Главное меню → Отчеты → Новый отчет|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;da158e8c-2ae6-45fc-a661-1e68b21e9f2e:Item}}). Откроется **Мастер отчетов**. 
- 
-Отчет будет использоваться для всех объектов справочника "Субъекты" и название отчета должно отображаться в контекстном меню "Отчеты", вызываемом от субъекта (//Рис. 5//). 
- 
-Укажите название отчета. 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_349.png?nolink |Рисунок 5}}] 
- 
-Для перехода к следующему шагу нажмите на кнопку **Далее**. 
- 
-**ШАГ 2. Выбор справочника объектов, от которых будет вызываться отчет** 
- 
-На данном шаге необходимо указать, для объектов какого справочника будет сформирован отчет. Отчет будет использоваться для всех объектов справочника "Субъекты", следовательно, в открывшемся окне выделите в дереве справочник "Субъекты" и нажмите на кнопку **Далее** для перехода к следующему шагу (//Рис. 6//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_524.png?nolink |Рисунок 6}}] 
- 
-Для создания новой привязки нажмите на кнопку {{ru/common/new.png?&nolink}} панели инструментов **Окна редактирования отчета**. 
- 
-**ШАГ 3. Выбор типа привязки для привязки к перечню процессов субъекта** 
- 
-Перечень процессов субъекта будет получен в результате выполнения фильтра. Для того чтобы создать привязку к данным фильтра, предусмотрен специальный тип привязки "Фильтр". Выберите радиокнопку **Фильтр** (//Рис. 7//) и нажмите на кнопку **Далее**. 
- 
-  
-[{{ ru/creating_user_reports/report/report_017.png?nolink |Рисунок 7}}] 
- 
-**ШАГ 4. Создание и выбор фильтра, определяющего перечень процессов** 
- 
-Так как выбран тип привязки "Фильтр", то предлагается указать фильтр, на основе результатов которого будет строиться отчет. 
- 
-Фильтр можно создать, не выходя из **Окна редактирования отчета**. Выберите папку, в которой будет храниться фильтр, например, папку "Пользовательские фильтры" (//Рис. 8//), и нажмите на кнопку **Создать**. 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_527.png?nolink |Рисунок 8}}] 
- 
-Фильтр должен будет выдавать перечень процессов. В открывшемся окне выделиnе курсором справочник, по которому будет построен фильтр - справочник "Процессы", и нажмите на кнопку **Выбрать** (//Рис. 9//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_529.png?nolink |Рисунок 9}}] 
- 
-Укажите название создаваемого фильтра и нажмите на кнопку **ОК** (//Рис. 10//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_530.png?nolink |Рисунок 10}}] 
- 
-После указания класса необходимо задать условие создаваемого фильтра. В данном фильтре условия нужно наложить на несколько параметров. В выводимом в отчете перечне процессов должны быть только процессы, связанные с заданным субъектом типом связи с категорией "Исполнитель процесса". Следовательно, нужно наложить условие на параметр "Категория", который находится на 2 уровня ниже, чем параметр "Субъекты". Сначала нужно найти параметр "Субъекты" и спуститься на уровень ниже, т.е. перейти к параметрам, вложенным в параметр "Субъекты". Для этого в строке с параметром "Субъекты" нажмите на {{ru/creating_user_reports/typical_tasks_reports/class_subject/autot_class_subject_202.png?nolink}} рядом с названием параметра (//Рис. 11//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_531.png?nolink |Рисунок 11}}] 
- 
-В открывшемся перечне параметров найдите параметр "Тип связи" и еще раз спуститесь на уровень ниже (//Рис. 12//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_533.png?nolink |Рисунок 12}}] 
- 
-В открывшемся перечне параметров найдите параметр "Категория" и задайте условие: в столбце **Тип** укажите в выпадающем списке "Значение", в столбце **Оператор** выберите знак "=", а в столбце **Значение** выберите из выпадающего списка "Исполнитель процесса" (//Рис. 13//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_535.png?nolink |Рисунок 13}}] 
- 
-Для данного отчета нужны только процессы, которые связаны с определенным субъектом, от которого вызван отчет. Для этого нужно наложить условие на параметр "Субъект", который находится на уровень выше. Для того чтобы перейти на этот уровень, нажмите на кнопку {{ru/creating_user_reports/report/report_027.png?nolink}} в заголовке таблицы параметров (//Рис. 14//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_537.png?nolink |Рисунок 14}}] 
- 
-В перечне параметров найдите параметр "Субъект". Для этого параметра можно указать тот субъект, перечень процессов которого нужен. Но тогда в отчете будет одна и та же информация - отчет будет не динамическим. Чтобы отчет были динамическим, в фильтре столбец **Значение** заполнять не нужно. Автоматически тот субъект, от которого будет вызываться отчет, будет подставляться в этот столбец в строку с параметром "Субъект". После сохранения фильтра нужно будет настроить соответствие в настройках фильтра в **Окне редактирования отчета**. В фильтре для параметра "Субъект" в столбце **Тип** выберите в выпадающем списке "Значение", в столбце **Оператор** укажите знак "=", столбец **Значение** оставьте незаполненным (//Рис. 15//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_539.png?nolink |Рисунок 15}}] 
- 
-На вкладке **Показ** в данном фильтре можно указать сортировку, чтобы перечень процессов был отсортирован по возрастанию. Сортировку нужно указать по параметру "Иерархический код для сортировки". Для этого выделите параметр "Иерархический код для сортировки" и нажмите на кнопку **Добавить сортировку** {{common/down.png?nolink}} (//Рис. 16//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_541_1.png?nolink |Рисунок 16}}] 
- 
-После указания условия нажмите на кнопку **Сохранить**. В **Окне свойств** фильтра также нажмите на кнопку **Сохранить**. 
- 
-== Внимание! == 
-С дополнительной информацией о построении фильтров можно ознакомиться в главе [[ru/manual/manual]] -> [[ru/manual/filter]]. С информацией об использовании операторов на вкладке **Условия** можно ознакомиться в главе [[ru/manual/filter/filter_element]]. 
-===== ===== 
-\\ 
-В **Окне редактирования отчета** выделите созданный фильтр и нажмите на кнопку **Далее** (//Рис. 17//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_545.png?nolink |Рисунок 17}}] 
- 
-**ШАГ 5. Указание правил подстановки значений для фильтра** 
- 
-Для того чтобы в фильтр в параметр "Субъект" подставлялся субъект, от которого вызван отчет, нужно настроить правила подстановки значений для фильтра. В открывшемся окне есть область **Подстановка значений**, в которой делаются соответствующие настройки.  
- 
-Для указания параметра фильтра выделите в пустой строке ячейку **Параметр фильтра** и нажмите на появившуюся кнопку с тремя точками (//Рис. 18//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/lang_class_subject_547.png?nolink |Рисунок 18}}] 
- 
-В открывшемся окне //"Объект"// - это объект справочника, по которому построен фильтр, т.е. объект справочника "Процессы". В фильтре для параметра "Субъект", который находится в на уровень ниже, чем параметр "Субъекты", значение не было заполнено. В источниках данных перейдите на уровень ниже, чем "Объект", и выделите там "Субъекты". Справа в перечне параметров выделите параметр "Субъект" и нажмите на кнопку **OK** (//Рис. 19//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_548.png?nolink |Рисунок 19}}] 
- 
-В параметр фильтра нужно подставлять того субъекта, от которого вызван отчет. В качестве параметра справочника для указания такого субъекта предусмотрено зарезервированное слово //[Объект]//, которое вместе с квадратными скобками нужно вручную (или при помощи копирования из справочной информации на данной странице настройки фильтра) занести в поле **Параметр-источник**. При этом пробелов в написании данного зарезервированного слова быть не должно (//Рис. 20//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_550.png?nolink |Рисунок 20}}] 
- 
-В результате указанного соответствия субъект, от которого вызван отчет, будет подставляться в фильтр в столбец **Значение** в условие для параметра "Субъект". После этого нажмите на кнопку **Далее** для перехода к следующему шагу. 
- 
-**ШАГ 6. Добавление привязки к параметру "Вышележащий процесс"** 
- 
-В отчет нужно выводить название родителя процесса, где субъект является Исполнителем, и название самого процесса, выполняемого субъектом. Для процессов, выполняемых субъектом, должен быть столбец с порядковым номером. Сначала нужно добавить привязку к параметру "Вышележащий процесс". Параметр "Вышележащий процесс" по умолчанию скрыт. Чтобы его отобразить, установите флажок **Показывать все**. Далее найдите этот параметр "Вышележащий процесс", выделите его и, удерживая левую клавишу мыши, перенесите параметр в область **Дочерние привязки** (//Рис. 21//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_552.png?nolink |Рисунок 21}}] 
- 
-**ШАГ 7. Выбор параметра "Название"** 
- 
-Чтобы не загромождать перечень параметров в источниках данных, снимите флажок **Показывать все**. Выделите параметр "Название" и, удерживая левую клавишу мыши, перенесите параметр в область **Дочерние привязки** (//Рис. 22//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_556.png?nolink |Рисунок 22}}] 
- 
-**ШАГ 8. Указание названия привязки к параметру "Название"** 
- 
-Для добавленной привязки укажите название. Для этого щелчком левой клавиши мыши внутри поля **Название** перейдите в режим редактирования и измените название привязки (//Рис. 23//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_558.png?nolink |Рисунок 23}}] 
- 
-**ШАГ 9. Выбор типа привязки для порядкового номера** 
- 
-Также в данной таблице нужен столбец с номером по порядку. Для привязок типа "Список" можно добавить специальную дополнительную привязку типа "Нумератор". Для добавления новой дополнительной привязки нажмите на кнопку **Добавить**. Выберите радиокнопку **Нумератор** (//Рис. 24//) и нажмите на кнопку **Далее**. 
- 
-  
-[{{ ru/creating_user_reports/report/report_018.png?nolink |Рисунок 24}}] 
- 
-**ШАГ 10. Указание названия привязки для порядкового номера** 
- 
-На следующем шаге укажите название привязки типа "Нумератор" (//Рис. 25//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_560.png?nolink |Рисунок 25}}] 
- 
-Для перехода к перечню дополнительных привязок для привязки типа "Фильтр" нажмите на кнопку **Далее**. 
- 
-**ШАГ 11. Изменение порядка следования привязки в таблице** 
- 
-Столбец **№** в таблице должен стоять на первом месте, значит привязка "№" должна быть на втором месте. Для перемещения выделите привязку и при помощи нажатия на кнопку **Вверх** (//Рис. 26//) переместите привязку на второе место (//Рис. 27//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_562.png?nolink |Рисунок 26}}] 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_564.png?nolink |Рисунок 27}}] 
- 
-**ШАГ 12. Вынесение привязки "Вышележащий процесс" за пределы таблицы** 
- 
-В отчете вышележащий процесс должен быть вынесен за пределы таблицы, а потом в таблице с двумя столбцами (**№** и **Процесс**) должны быть процессы, которые относятся к данному вышележащему процессу. И так по всем вышележащим процессам. Т.е. информация будет представлена повторяющимися текстовыми блоками: вышележащий процесс и его подпроцессы, вышележащий процесс и его подпроцессы и т.д. Для того чтобы сделать такую группировку данных, предусмотрен специальный тип группировки "BAND". Для привязки "Вышележащий процесс" выберите тип группировки "BAND" (//Рис. 28//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/change_class_subject_566.png?nolink |Рисунок 28}}] 
- 
-Для перехода к следующему шагу нажмите на кнопку **Далее**. 
- 
-**ШАГ 13. Редактирование шаблона отчета** 
- 
-Когда выполнены все шаги по созданию привязки, открывается **Окно редактирования отчета** с шаблоном отчета (//Рис. 29//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/autot_class_subject_568.png?nolink |Рисунок 29}}] 
- 
-Внесите изменения в оформление шаблона отчета (//Рис. 30//). 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/autot_class_subject_575.png?nolink |Рисунок 30}}] 
- 
-**ШАГ 14. Сохранение отчета** 
- 
-Отчет необходимо сохранить. Для этого на панели инструментов **Окна редактирования отчета** нажмите на кнопку **Сохранить отчет** {{common/icons/19.png?nolink}}. После нажатия на данную кнопку будет предложено выбрать папку в справочнике "Отчеты объектов", в которую нужно сохранить отчет. Выделите папку "Пользовательские отчеты" и нажмите на кнопку **Выбрать** (//Рис. 31//). 
- 
-  
-[{{ ru/creating_user_reports/report/change_report_019.png?nolink |Рисунок 31}}] 
- 
-**ШАГ 15. Проверка работоспособности отчета** 
- 
-Чтобы проверить работоспособность отчета, его необходимо выполнить. Это можно сделать, не выходя из **Окна редактирования отчета**. На панели инструментов **Окна редактирования отчета** нажмите на кнопку {{ru/common/exe.png?&nolink}}. В открывшемся окне выделите субъекта, для которого будет сформирован данный отчет, и нажмите на кнопку **Выбрать**. 
- 
-**ШАГ 16. Закрытие Окна редактирования отчета** 
- 
-После того, как отчет создан, проверка его работоспособности выполнена, шаблон при необходимости откорректирован, нажмите на кнопку {{ru/common/save.png?nolink}}. **Окно редактирования отчета** будет закрыто, а изменения отчета - сохранены. 
- 
-Для повторного открытия структуры данного отчета откройте справочник "Отчеты объектов" ({{bslink>Главное меню → Отчеты → Отчеты объектов|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;21fcf3cb-1c42-4a13-b642-d2e6b02d3497:Item}}), выделите слева в дереве ту папку, в которую был сохранен отчет. Справа отобразится перечень отчетов, находящихся в данной папке. Выделите необходимый отчет и нажмите на кнопку {{ru/common/properties.png?nolink}}. 
- 
-==== Пример работы отчета ==== 
- 
-Фрагмент отчета, построенного, например, для субъекта "Руководитель проекта" показан на //Рис. 32//. 
- 
-  
-[{{ ru/creating_user_reports/typical_tasks_reports/class_subject/lang_class_subject_577.png?nolink |Рисунок 32}}] 
- 
-[<contextnavigator>] 
Driven by DokuWiki