ShapeComparer - утилита для сравнения шейпов Visio

en

ShapeComparer - это утилита для разработчиков шейпов. Утилита выполняет такие операции, как: сравнение шейпов, копирование формул шейп-листа, копирование секций. Утилита выполнена в виде трафарета Visio, содержащего макросы.

Трафарет бесплатен.
Размещен на сервисе Gumroad.
Скачать трафарет.
Одновременно можно сделать пожертвование на развитие этой и других утилит в размере $2-$5.

Возможности:

  • сравнение двух шейпов с выводом результатов в лог;
  • копирование отдельных формул из одного шейпа в другой;
  • копирование секций из одного шейпа в другой;
  • дублирование листов.

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

Сравнение шейпов

Для сравнения шейпов нужно соединить управляющим коннектором два шейпа и выполнить команду Compare. Управляющий коннектор находится в трафарете. Протокол сравнения выводится в текстовый файл log.log.

Коннектор содержит два поля, управляющих форматом протокола.

Поле Print cell names управляет выводом перечня ячеек, участвовавших в сравнении. Если поле принимает значение True, перечень выводится в лог перед результатами сравнения.

Поле Print both formulas управляет форматом вывода результатов сравнения. Если поле имеет значение True, сравниваемые ячейки выводятся рядом (в две колонки). Если поле имеет значение False, сначала выводятся все ячейки одного шейпа, затем другого.

Пример вывода в формате Print both formulas = True:

Sheet.2!PinX = 41 mmSheet.3!PinX = 152 mm
Sheet.2!PinY = 226 mmSheet.3!PinY = 244 mm

Пример вывода в формате Print both formulas = False:

------------------------------------
Sheet.2!PinX = 41 mm
Sheet.2!PinY = 226 mm
------------------------------------
Sheet.3!PinX = 152 mm
Sheet.3!PinY = 244 mm

Второй вариант дает компактную запись, которая с успехом может использоваться для документирования разработки шейпа.

Копирование отдельных формул

Во время сравнения шейпов одновременно с выводом результатов в лог формируется и записывается в шейп управляющего коннектора перечень названий отличающихся ячеек. Он сохраняется в виде выпадающего списка в поле Differences. Если выбрать в этом списке одну из ячеек и выполнить функцию Copy formula, формула будет переписана из исходного шейпа в сравниваемый.

Таким образом можно быстро скопировать несколько ячеек.

Копирование секции

Во время сравнения шейпов также формируется перечень секций шейп-листа, в которых были обнаружены различия. Он сохраняется в виде выпадающего списка в поле Sections. Если выбрать в этом поле секцию и выполнить команду Copy section, все ячейки указанной секции будут перенесены из исходного шейпа в сравниваемый.

Команда Copy section предполагает предварительное удаление аналогичной секции в принимающем шейпе. Существует также команда Add to section. Эта команда полезна для секций с именованными строками. При ее выполнении новые строки добавляются к имеющимся.

Ограничение: не копируются секции Geometry и Text Fields.

Дублирование листов

Дублированием листов управляет мастер CopyPage. Для выполнения операции его нужно перенести на активную страницу документа Visio и выполнить команду меню Copy page. При этом в документ добавляется еще одна страница, представляющая собой копию активной страницы.

Управляющий шейп имеет поле Destination page. Если внести в него имя страницы-копии, то командой Compare можно сравнить активную страницу с копией. Протокол различий выводится в файл log.log.

Функция дублирования не имеет смысла для Visio 2013. Там эта операция выполняется штатными средствами. Но в более ранних версиях Visio она может быть полезна.

Функция имеет ограничение - не работает при наличии групп.