Трафарет для импорта данных

Инструмент для быстрого импорта и автопостроения диаграмм.

Трафарет содержит шейп-импортер и несколько макросов. Построение диаграммы сводится к тому, чтобы перебросить данные через буфер Windows и выполнить команду "Draw". Остальное трафарет сделает автоматически.

Buy on Gumroad

Область применения

Некоторые дополнения Visio имеют встроенные средства для импорта данных и автоматического построения диаграммы. В частности, "Мозговой штурм", "Организационная схема". Но таких мало. Если вы имеете навыки программирования, то можно самому написать макрос для импорта данных. Но это не очень быстро.

Здесь предлагается другой путь - шейп-импортер. Шейп содержит несколько наиболее распространенных алгоритмов построения диаграмм. Все операции максимально упрощены. Для построения диаграммы достаточно буквально несколько кликов.

Естественно, такой подход не закроет всех потребностей в импорте данных. Но будем надеяться, что он войдет в число привычных и часто используемых инструментов.

Общая методика применения

Трафарет можно использовать в произвольном документе. Нужно только бросить порцию данных в шейп-импортер и выполнить пункт контекстного меню. Шейп выполнит всю необходимую работу. На листе появится автоматически построенное изображение.

Смотрите пример импорта и построения диаграммы сети по данным из Excel.

В примере выполняется следующая последовательность действий:

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

Варианты использования

Шейп-импортер настроен на несколько самых распространенных форматов данных.

Одна колонка - массив шейпов 2 колонки - дерево - связанные шейпы, один мастер
4 колонки - дерево, разные мастер-шейпы 6 колонок - дерево, разные мастера, параметр

Модификации. 2 основных модификации, отличающиеся размещением шейпов. Дерево - по типу Orgchart. Сеть - узлы, соединенные прямыми линиями. После построения диаграммы Вы можете изменить размещение, используя штатные функции авторазмещения Visio.

Массив шейпов.

Функция используется, когда требуется преобразовать множество строк в множество шейпов. Например, имеется текст алгоритма, нужно получить блок-схему. На картинке показана последовательность действий.

На картинке последовательно показаны следующие операции:

  • скопировать текст в буфер
  • скопировать содержимое буфера в блокнот
  • открыть трафарет import
  • перенести шейп-импортер на страницу
  • вставить текст из буфера
  • открыть Document Stencil, выбрать нужный мастер-шейп
  • выполнить пункт меню Draw Array

Далее использован мастер-шейп ArrayController:

  • перенести шейп на страницу (шейп превращается в форму)
  • селектировать ранее нарисованную диаграмму, нажать кнопку ...
  • установить CheckBox в состояние "Столбцы"
  • клавишами Стрелка уменьшить количество столбцов до одного (вертикальное расположение)

Примечание. Возможности мастер-шейпа ArrayController описаны ниже.

Правила. Исходные данные должны размещаться в одной колонке. Каждая строка преобразуется в шейп. Шейп строится на основе селектированного мастер-шейпа. То есть, выбирая различные мастер-шейпы Вы получите различные массивы. Данные выводятся в виде текста шейпа.

По умолчанию массив содержит 10 колонок. Количество строк зависит от объема данных. Интервалы зависят от размера шейпа.

Трафарет содержит также шейп управления массивом

Шейп управления массивом позволяет:

  • перестраивать массив шейпов, уменьшая или увеличивая количество колонок;
  • сжимать и раздвигать шейпы массива по горизонтали и вертикали (не изменяя размера шейпов);
  • при одновременном нажатии клавиши Shift обеспечивается уменьшенный шаг сдвига;
  • вписать массив в область заданных размеров;
  • задать интервал между центрами или краями шейпов.

По умолчанию шейпы соединяются коннекторами. Если нужно получить массив не связанных шейпов, достаточно с помощью функции "Выбор по типу" выбрать шейпы на слое "Соединительная линия" и удалить их (Меню "Правка / Выбор по типу").

2 колонки

Типовое применение - отображение связей между шейпами. Например, оргструктуры или потоков данных между аппаратурой. В примере показаны следующие операции:

  • открыть трафарет
  • перенести мастер ImportBox на страницу
  • скопировать данные из Excel в блокнот
  • перенести данные из блокнота в ImportBox
  • открыть нужный трафарет и выбрать мастер-шейп
  • выполнить функцию Draw Network

В результате импорта на листе будут нарисованы связи, представленные в импортируемых данных

Требования к данным. Данные должны быть представлены в двух колонках, разделенных знаком табуляции. При копировании из Excel или БД рекомендуется использовать промежуточное копирование в блокнот, тогда разделитель вставляется по умолчанию.

Обе колонки должны содержать имена узлов (текст шейпа).

Первая колонка - источник, вторая - приемник. (Для оргструктуры - Executive - Reprot To).

Для отображения всех узлов используется мастер-шейп, который будет селектирован в момент выполнения команды Draw. Коннекторы одинаковые, используется Dynamic connector.

Мастер-шейп использует два формата отображения: Draw Tree и Draw Network, которые отличаются методом размещения шейпов и типом линий. Если вам требуется другое расположение, то после импорта вы можете изменить его вручную или с помощью штатных команд авторазмещения.

4 колонки

Такой режим позволяет использовать различные мастера и различные коннекторы. В примере изображение строится с помощью четырех разных мастер-шейпов.

Колонки 1 и 2, как и в предыдущем примере, устанавливают тип источника и приемника. Колонка 3 содержит имя мастер-шейпа для 2D шейпов. Колонка 4 - имя мастер-шейпа для коннектора.

Все узлы обязательно должны присутствовать в первой колонке. Для корневых узлов поле Report to следует оставлять пустым.

Тонкости. Все мастер-шейпы должны присутствовать в Document Stencil. Иначе будет выведено сообщение об ошибке, например "Master Server is missing". Чтобы перенести нужные мастер-шейпы из основного трафарета в Document Stencil нужно перенести их на страницу документа и удалить. При этом копии появятся в Document Stencil.

Импортер по умолчанию работает с локальными именами мастер-шейпов. В платной версии есть возможность переключиться на универсальные имена. Для этого нужно открыть редактор и изменить значение константы UseUniversal на True. В бесплатной версии код недоступен, поэтому такая возможность отсутствует.

Private Const UseUniversal As Boolean = True

6 колонок

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

Значение управляющего параметра должно быть занесено в 5 колонку для 2D шейпа и в 6 колонку для коннектора в виде целого числа.

Мастер-шейпы должны быть предварительно подготовлены. Значение параметра передается в ячейку "User.importP". Значит шейп должен содержать секцию "User-defined cells" с таким именем и формулу управления отображением, связанную с этой ячейкой. Пример ниже показывает, как организовать зависимость цвета заливки шейпа от параметра.

Если шейп не содержит ячейку "User.importP", то параметр не будет передан и функция "Draw with parameters" будет работать так же, как функция "Draw with masters".

Отличия в версиях

Существуют две версии трафарета: платная и бесплатная.

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

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

Размещение и способ применения

Весь функционал полностью размещен в трафарете import.vss.

Трафарет не требует инсталляции или наличия других компонентов. Тем не менее для удобства применения лучше положить его в папку, которую Visio использует для хранения пользовательских трафаретов. Например, в My Documents\My Shapes или папку, которая прописана в настройках Visio. Тогда его будет удобно открывать с любым нужным документом.

Техническая поддержка

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


Дополнения


Mailto: Gennady Tumanov   gCroc@yandex.ru