Переназначение ссылок дублирующего объекта

В справочнике элементов класса «Объекты деятельности» ошибочно созданы два разных элемента с одинаковым названием. Требуется переназначить ссылки одного элемента класса «Объекты деятельности» на другой элемент этого класса, для того чтобы все задействованные в диаграммах процессов стрелки ссылались на один и тот же Объект. Стандартным способом избавления от дублирующего объекта в данном случае является удаление одного из объектов с переназначением ссылок на другой объект (см. п. «Удаление элемента» в разделе 2.6).

Также можно произвести переназначение ссылок вручную, рассмотрим на примере. Для удобства изложения предположим, что оба Объекта названы «ТМЦ». Требуется переназначить все ссылки первого Объекта «ТМЦ» на второй Объект «ТМЦ».

Измените один из Объектов, добавив к его названию любой отличительный признак, например: «ТМЦ_2». Это можно сделать как в дереве Навигатора, так и в окне «Редактирование объекта» (Ctrl+E).

Затем, в окне «Редактирование объекта», открытом для Объекта «ТМЦ_2», вызовите контекстное меню (кнопка «Действия») и выберите команду «Поиск ссылок на объект».

В окне «Поиск ссылок на объект» будут показаны все стрелки из Словаря стрелок, у которых есть ссылка на Объект «ТМЦ_2». Если требуется для всех стрелок переназначить ссылки на Объект «ТМЦ», то нужно пометить все строки в списке поиска ссылок.

Затем щелкните по кнопке Переназначение ссылок дублирующего объекта - student2.ru на панели инструментов окна «Поиск ссылок на объект». В справочнике класса Объектов выберите Объект «ТМЦ». Ответьте «Да» в окне диалога, чтобы выполнить переназначение ссылок.

Таким образом, все стрелки, у которых были ссылки на Объект «ТМЦ_2», теперь будут ссылаться на Объект «ТМЦ». Объект «ТМЦ_2», не связанный больше ни с одной стрелкой, можно пометить на удаление.

Очистка ссылок на удаленный объект

В окне сообщений выдаются ошибки типа «Внимание! Параметр 'Ответственный' объекта (БизнесМодель.ПоказателиBSC) Прибыль использует объект (БизнесМодель.ФизЛица) Зубова Ольга Викторовна, помеченный на удаление. Рекомендуется использовать 'Поиск ссылок' перед удалением объекта».

Данное сообщение означает, что у показателя Прибыль (системное название класса БизнесМодель.ПоказателиBSC) в параметре Ответственное лицо (системное название параметра Ответственный) указан помеченный на удаление объект Зубова Ольга Викторовна. Системные названия классов и параметров можно увидеть в объектной модели. Подробнее о работе с объектной моделью п. 11.1.

При удалении помеченных объектов все ссылки будут очищены автоматически.

Также существует 2 способа избавления от данной ошибки вручную:

· очистка ссылок на удаленный объект;

· очистка объектного параметра у объекта, вызывающего ошибку.

Рассмотрим оба способа на приведенном примере.

Способ

Выберите пункт Главного меню «Сервис –> Удаленные объекты». В списке удаленных объектов найдите объект Зубова Ольга Викторовна. Выберите пункт меню «Действия –> Поиск ссылок на объект».

В открывшемся окне «Поиск ссылок на объект» выделите все строки и нажмите кнопку Переназначение ссылок дублирующего объекта - student2.ru «Очистить ссылки по выделенным».

Способ

Откройте окно свойств показателя Прибыль, выделите параметр «Ответственное лицо» (системное название параметра «Ответственный»). Системное название параметра можно увидеть в Объектной модели (см. п. 11.1). В ячейке параметра Ответственное лицо нажмите крестик и сохраните изменения.

Примеры использования макросов в отчетах

При проектировании объектной модели в каждом классе определяются необходимые параметры, часть информации является хранимой, часть рассчитывается по имеющимся данным. Процесс наращивания числа параметров в классе может быть бесконечным. Часто для вывода в отчете требуется в таблице добавить колонку, которая рассчитывается перемножением одного из параметров на данные другой колонки таблицы, или посчитать и подставить в таблицу сумму данных в колонке. Иногда нужно добавить график по данным таблицы.

Теперь эти задачи имеют решение. Можно написать макросы, которые будут выполняться перед или после выполнения отчета. Для этого требуется установить доверие на доступ к объектной модели VBA.

В Microsoft Word 2003 это осуществляется следующей последовательностью действий:

· выбрать пункт меню «Сервис –> Параметры…»;

· в окне «Параметры» выбрать закладку «Безопасность», нажать кнопку «Защита от макросов»;

· в окне «Безопасность» выбрать закладку «Надежные источники»; установить опцию «Доверять доступ Visual Basic Project».

В Microsoft Word 2007:

· нажать кнопку Переназначение ссылок дублирующего объекта - student2.ru Office в верхнем левом углу, нажать кнопку «Параметры Word»;

· выбрать закладку «Центр управления безопасностью», нажать кнопку «Параметры центра управления безопасностью»;

· выбрать закладку «Параметры макросов», в разделе «Параметры макросов для разработчика» установить опцию «Доверять доступ к объектной модели VBA».

Макросы можно использовать как для оформления отчета, так и для получения данных непосредственно из базы (можно написать макрос, который строит отчет, аналогичный регламентирующему документу без единой привязки).

Для того, чтобы просмотреть или создать макрос необходимо открыть шаблон отчета на редактирование с помощью гиперссылки Редактировать шаблон в справочнике отчеты объектов. В Microsoft Word 2003 выбрать пункт меню «Сервис –> Макросы –> Редактор Visual Basic». В Microsoft Word 2007 в ленте «Разработчик» нажать кнопку «Visual Basic». Откроется окно Microsoft Visual Basic. В дереве «Project - Normal» щелчком открыть шаблон «ThisDocument» (Рис. 16.3.1).

Переназначение ссылок дублирующего объекта - student2.ru

Рис. 16.3.1

Названия макросов должны быть следующими:

· «ПередВыполнениемОтчета» − макрос будет запускаться перед вставкой данных в отчет;

· «ПослеВыполненияОтчета» − макрос будет запускаться после вставки данных в отчет.

Переменные, которые передаются в макрос:

· «ob» − объект, от которого был вызван отчет;

· «app» − приложение, от которого был вызван отчет, то есть Business Studio.

В отчетах шаблонной базы данных, поставляемой с программой, используется макрос «ПослеВыполненияОтчета».

Внимание: Просмотреть объектную модель Word для разработки макросов в редакторе Visual Basic можно по клавише F2.

Пример обращения к значению переменной и данным таблицы в отчете

В шаблоне отчета «Дневная загрузка ресурса (субъекты)» демонстрационной базы данных можно посмотреть пример использования макроса для расчета суммы и вывода ее в таблицу. Отчет находится в справочнике «Отчеты объектов», в папке «Шаблоны отчетов/ФСА».

Текст макроса, выполняемого после выполнения самого отчета, представлен ниже:

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)

a = CDbl(Application.ActiveDocument.Variables("СтавкаВЧас").Value)

Set T = Application.ActiveDocument.Bookmarks("ДействияСтоимостьРесурсаИРоли").Range.Tables(1)

kol = T.Rows.Count

For i = 2 To kol - 1

Stroka = T.Cell(i, 8).Range.Text

l = Len(Stroka)

If l > 1 Then

d = CDbl(Left(Stroka, l - 1)) 'убрать последний символ ячейки

T.Cell(i, 9).Range.Text = CStr(d * a)

End If

Next i

T.Cell(kol, 9).AutoSum

End Sub

Можно получить значение переменной шаблона, обозначаемой DOCVARIABLE, по имени:

Application.ActiveDocument.Variables("<СистемноеНазваниеПривязки>").Value,

где <СистемноеНазваниеПривязки> − это название привязки, которое отображается в дереве привязок на конечной странице мастера (см. п. 11.2.1). Таким образом получены данные привязки с типом «Объект». В макросе примера так получено значение привязки «СтавкаВЧас» для дальнейшего использования.

Можно получить значение закладки шаблона, по имени:

Application.ActiveDocument.Bookmarks("<СистемноеНазваниеПривязки>").Range.Tables(1),

где <СистемноеНазваниеПривязки> − это название привязки, которое отображается в дереве привязок на конечной странице мастера (см. п. 11.2.1). Таким образом можно получить данные привязки с типом «Список», «Фильтр», «Дерево». В макросе примера получена таблица «ДействияСтоимостьРесурсаИРоли», и далее ведется работа с данными таблицы.

Пример вывода графика по данным таблицы в отчете

В шаблоне отчета «Значение показателя за период» демонстрационной базы данных можно посмотреть пример использования макроса для вывода графика по данным таблицы. Отчет находится в справочнике «Отчеты объектов», в папке «Шаблоны отчетов/ССП».

Текст макроса, выполняемого после выполнения самого отчета, представлен ниже:

Sub ПослеВыполненияОтчета (ob As Variant, app As Variant)

Application.ActiveDocument.Bookmarks("Значения_Показателя").Range.Tables(1).Select

WordBasic.InsertChart

End Sub

Здесь выделяются данные таблицы по имени закладки шаблона:

Application.ActiveDocument.Bookmarks("<СистемноеНазваниеПривязки>").Range.Tables(1).Select,

где <СистемноеНазваниеПривязки> − это название привязки, которое отображается в дереве привязок на конечной странице мастера (см. п. 11.2.1).

Затем строится диаграмма по данным выделенной таблицы:

WordBasic.InsertChart

Пример обращения к данным из базы в отчете

В шаблоне отчета «Отчет по результатам имитации» можно посмотреть пример использования макроса для вывода данных из базы. Отчет находится в справочнике «Отчеты объектов», в папке «Шаблоны отчетов/ФСА».

Часть текста макроса, выполняемого после выполнения самого отчета, представлена ниже:

Sub ПослеВыполненияОтчета (ob As Variant, app As Variant)

Set StatTime = ob.СтатистикаВремени

ПостроитьДиаграмму StatTime, "Время", "Распределение времени выполнения процесса", 0, CDbl(ob.ШагВремени)

End Sub

Здесь идет обращение к параметрам объекта, от которого был вызван отчет:

ob.<СистемноеНазваниеПараметра>,

где ob – объект, от которого был вызван отчет;

<СистемноеНазваниеПараметра> − это системное название параметра объекта, которое можно просмотреть в Объектной модели (см. п. 11.1).

В данном примере был получен список «Статистика времени» (оb.СтатистикаВремени) и вещественный параметр «Шаг группировки времени» (ob.ШагВремени) от элемента справочника «Статистики имитаций», от которого был вызван отчет. По полученному списку и параметру строится диаграмма.

Наши рекомендации