Лабораторная работа №22.
Проектирование скрипта отчета в ScriptWizard.
Цель: Создать скрипт, формирующий отчет с информацией об объектах типа “Person” (Персона) выбранной оргМодели.
Требования к отчету:
§ отчет должен формироваться для любой организационной диаграммы, которая содержит объект “Person”;
§ отчет должен выводится в табличном виде, в текстовом формате MS Word;
§ в отчете должна содержаться следующая информация: ФИО персоны, должность персоны, телефон и адрес электронной почты персоны.
Формирование скрипта с помощью ScriptWizard.
После вызова мастера скриптов в ДО “Script Wizard – Select Basic Setting” нужно указать тип скрипта “Report” (Отчет). Далее следует указать ARIS-сущность, для которой создается скрипт. Наш скрипт создается для отчета по объекту “Person”. Следовательно, в качестве ARIS-сущности нужно выбрать “Object Report Script”. В поле “Script Name” (Имя скрипта) нужно ввести имя файла скрипта. После этих действий нажимаем кнопку “Далее”.
В ДО “Script Wizard – Select Filter Settings and Output Format” из списка доступных типов объектов выбираем тип “Person”. В списке доступных форматов вывода нужно установить флажок напротив “Word Document (*.doc)” и снять флажок с остальных форматов.
Нажимаем кнопку “Далее”. Открывается следующее ДО “Script Wizard – Define Basic Layout”. В этом ДО никаких изменений делать не будем, оставим стандартные настройки. После этих действий нажимаем кнопку “Далее” и переходим в ДО “Script Wizard – Define Contents”, в котором и строится структура скрипта отчета. Так как в качестве ARIS-сущности, для которой создается отчет был выбран объект, то корневым элементом в структуре процедуры будет SelectedObjDefs. Этот элемент содержит список определений объекта “Person”.
Для того чтобы выводимые в отчете данные были помещены в таблицу нужно добавим к корневому элементу таблицу. Для этого в списке доступных методов корневого элемента находим элемент “Table” (Таблица), который формирует таблицу для отчета. При двойном щелчке на этом элементе открывается ДО “Table Wizard – Select Number of Columns” (Мастер таблиц) (рис. 1), в текстовом поле которого нужно указать количество необходимых столбцов (от 2 до 20). В нашем случае необходимо четыре столбца. После этого нужно нажать кнопку “Далее”.
Рис. 1
В следующем ДО “Table Wizard – Select Contents” (Мастер таблиц – ввод cодержимого) (рис. 2) необходимо ввести в поля таблицы те данные, которые будут отображаться в таблице результирующего файла.
Рис. 2
Таблица состоит из колонок с именами Column1, Column2, Column(3)… и двух полей с именами “Column Title” (Название колонки) и “Rows” (Ячейки).
В первой колонке в поле “Column Title” вписываем название колонки “Имя персоны”, а в поле “Rows” выбираем из списка метод Attribute. Во второй колонке в поле “Column Title” вписываем название колонки “Должность”, а в поле “Rows” выбираем из списка метод CxnListFilter – этот метод содержит список связей объекта отфильтрованных по заданным критериям. Остальные поля заполняются также, как показано на рис. 3.
Рис. 3
После того как все поля заполнены, (как на рис. 3), нажимаем кнопку “Готово” и попадаем в ДО “Script Wizard – Define Contents”. В его окне структуры скрипта видим следующее (рис. 4).
Рис. 4
Эта структура отражает шаблон, по которому создается таблица выходных данных. Теперь эту структуру необходимо наполнить данными, которые указаны в требованиях к отчету. Как видно из структуры таблицы она делится на элемент “Column Title” (Название колонки) и элемент “Column Contents” (Содержимое колонки), у которых есть свои подчиненные элементы и методы. Нам интересна колонка содержимого таблицы, которая состоит из четырех методов. Их и нужно наполнить необходимой информацией.
Встаем на первый метод Attribute (AT_NAME) и добавляем к нему процедуру GetValue (получить значение) – эта процедура возвращает значение атрибута, которое в итоге окажется в отчете. У метода Attribute (AT_NAME) в скобках указывается имя атрибута, от которого нужно получить значение. Оно удовлетворяет требованиям, поэтому менять его не надо.
Следующий метод CxnListFilter является списком, в котором содержится список всех связей объекта, как входящих так и выходящих. Нас интересуют только выходящие связи объекта, которые называются occupies (занимает), т.к. они указывают на объект Position (Должность). У метода CxnListFilter есть параметры, которые можно просмотреть в окне “Parameter of the Information” (Параметры и информация). В данном случае нас интересуют два параметра:
§ nCxnKind (номер класса связи) – позволяет установить какой класс связи будет отбираться в результате сортировки.
§ TypeNum (номер типа связи) – позволяет установить тип связи, по которому будет производится сортировка.
Параметру nCxnKind путем выбора из списка устанавливаем значение EDGES_OUT (только выходные связи), а параметру TypeNum значение occupies (CT_OCCUPIES).
Следующим шагом добавим методу CxnListFilter метод TargetObjDef. Этот метод возвращает целевое представление объекта в виде объекта ObjDef, т.е. того объект, на который указывает связь. К методу TargetObjDef добавим метод Attribute (AT_NAME), т.к. нам нужно получить название объекта. К методу Attribute (AT_NAME) добавим процедуру GetValue для получения значения атрибута.
Далее встаем на третий метод Attribute (AT_NAME), который должен выводить номер телефона объекта Person. Для этого нужно изменить его параметры. Всего у метода Attribute два параметра:
§ AttrTypeNum (тип атрибута);
§ LocaleId (язык вывода).
Нам необходимо изменить параметр AttrTypeNum с AT_NAME на AT_PHONE_NUM, т.к. нам необходимо получить номер телефона объекта Person. Далее добавляем процедуру GetValue. С последним методом нужно проделать те же действия, что и с предыдущим, но в качестве типа атрибута выбрать AT_EMAIL_ADDR.
После выполнения этих действий структура скрипта должна выглядеть следующим образом (рис. 5)
Рис. 5
Для того чтобы имена персон выводились в алфавитном порядке необходимо встать на корневом элементе SelectedObjDefs, нажать кнопку Sorting и в качестве критерия сортировки установить сортировку по имени AT_NAME.
После запуска и выполнения скрипта должна получиться следующая таблица:
Имя персоны |
Должность |
Номер телефона |
|
Ильин В.П. |
Руководитель обучаемых |
раб. тел. (351) 265-17-75 сот. тел. (351) 231-05-62 |
V.P.Ilyin@chelindbank.ru |
Мишин О.Н. |
Заместитель руководителя обучаемых |
раб. тел. (351) 265-17-50 fax: 7-3512-66-05-29 |
mishin@chelindbank.ru |
Пудовкина С.Г. |
Руководитель курсов |
раб. тел. (235) 3-28-85 дом. тел. (235) 4-75-34 |
psg@etf.susu.miass.ru |
Телегин А.И. |
Лектор Декан ЭТФ Руководитель преподавателей |
раб. тел. (235) 3-28-85 дом. тел. (235) 4-55-61 |
telegin@etf.susu.miass.ru |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.