![]() |
Форум visio.getbb.ru |
О форумах
Библиотека | Частые вопросы | Литература | Склад материалов Visio Navigator | Blog | Полезные ссылки | О сайте История Visio | Продукты Visio |
Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д. |
Главным преимуществом Visio перед другими похожими программами является возможность взаимодействия шейпов с данными. Шейпы могут хранить данные, обмениваться ими с внешним источником, отображать данные различными способами. Можно создавать схемы, управляемые данными. При рассмотрении этой темы следует выделить три наиболее важных аспекта:
При рассмотрении структуры документа Visio уже упоминалось, что каждый шейп содержит большую таблицу, состоящую из секций, строк, ячеек, называемую шейп-лист (ShapeSheet). Эта таблица не только определяет все поведение шейпа, но и может хранить данные. Одни ячейки используются для хранения данных или ссылок на них. Другие с помощью формул преобразуют данные в те или иные графические параметры. Среди всех секций таблицы есть несколько, наиболее тесно связанных с данными:
Секция Shape Data – используется чаще всего. Ее содержимое даже отображается в специальном окне Shape Data, что позволяет пользователю просматривать и изменять данные, даже не открывая шейп-листа.
Состав секции переменный - в ней может быть как одна, так и множество строк. Секция может вообще отсутствовать. Каждая строка отвечает за хранение одной единицы данных.
В строке имеется несколько ячеек, хранящих такие параметры, как имя строки, метку, тип переменной, значение и т.д. Собственно данные лежат в ячейке Value.
Еще реже используемая секция, предназначенная в первую очередь для хранения промежуточных результатов при сложных вычислениях. Если в предыдущих двух секциях строка чаще всего определяет единицу данных, то в этой секции строка содержит несколько фрагментов сложной формулы.
Пример использования Shape Data и User-defined cells
Рассмотрим пример использования данных в шейпе на примере стакана кофе. Это шейп-группа, содержащая вложенные шейпы для собственно кофе, молока и пены. Строка данных шейпа определяет тип кофе. Значения выбираются из фиксированного списка. Элементы списка содержатся в ячейке Format. Каждый раз, когда пользователь выбирает значение в окне Shape Data, срабатывает функция INDEX и в ячейке Value появляется одно из значений.
Секция User-defined Cells содержит 5 вычисляемых переменных. Если в данный момент отвлечься от деталей формул, то можно думать о трех отдельных частях этой секции.
Во-первых, это ячейка CoffeeTypeIdx, в которой с помощью функции LOOKUP вычисляется порядковый номер выбранного в Shape Data значения.
Далее три Ratio ячейки для вычисления процентного соотношения кофе, молока и пены для выбранного типа.
Наконец, две Pnt ячейки для вычисления на их основе фактических координат кофе и молока в стакане.
При изменении значения типа кофе в данных формы уровни соответственно перемещаются вверх и вниз.
Хотя этот конкретный пример основан на кофе, мы видим, что в итоге просто изменяется геометрия подшейпов. Тем самым следует подчеркнуть, что можно не только хранить данные в шейпе, но и управлять его внешним видом на основе этих данных.
Три перечисленных секции – это не полный перечень. Иногда используются более экзотические хранилища. Например, ячейки Data1…Data3, которые не доступны пользователю даже через шейп-лист. Или SolutionXML элементы, ориентированные на хранение данных в XML формате. Но они используются гораздо реже. Поэтому помнить о них полезно, но изучать лучше не в кратком обзоре, а при более глубоком знакомстве с Visio.
Знать способы обмена данными не менее важно, чем места хранения данных. Перейдем к двум новым возможностям, которые появились в Visio 2007: связывание данных с шейпами (Link data to Shapes) и Data Graphics.
Обе доступны только в выпусках Professional и выше, и об этом следует помнить, выбирая решение, предназначенное для работы во всех выпусках.
Начнем с первого. Исторически синхронизации данных в Visio в основном работает в одном направлении. Это подчеркивается названием встроенной функции Link data to Shapes.
Эта функция доступна через пользовательский интерфейс и сопутствующий API, который позволяет сопоставлять данные из ряда источников данных для формирования строк данных в шейпе.
Основной процесс выглядит следующим образом.
Вы выбираете источник данных. Это создает подключение к данным и объекты Datarecordset. Оба они сохраняются в документе Visio. Последний шаг - создать отношения между строками Datarecordset и строками данных шейпа в одном или нескольких шейпах.
Допустимо создавать несколько Datarecordset из нескольких источников. Так, например, если у нас есть первый источник SQL-сервер, вы можете добавить второй Datarecordset, подключенный к источнику Excel, и третий Datarecordset из XML-документа.
У XML источника данных есть особенность, заключающаяся в том, что он доступен только через код, а файл рассматривается как набор записей без установления соединения.
Пока мы рассматриваем одну строку данных для одного шейпа. Но возможны и другие отношения, например одну строку для многих шейпов и множество строк для одного шейпа. Последний тип отношения подпадает под ограничение - один шейп может быть связан только с одной строкой из каждого набора записей. Это, безусловно, имеет смысл, потому что Visio пытается сопоставить столбцы в Datarecordset с именованными строками данных в шейпе, и попытка сделать это более одного раза переопределит предыдущее сопоставление.
Теперь кратко рассмотрим Data Graphics, очень тесно связанную с Link data to Shapes. Data Graphics - это еще одна функция, которая была представлена в 2007 году и также недоступна в стандартной версии Visio.
Эта функция позволяет пользователям создавать дополнительные шейпы, которые можно назвать шейпами атрибутов, и динамически применять их к одному или нескольким целевым шейпам на странице.
Существует набор встроенных типов, которые можно применять через пользовательский интерфейс или в коде. Также относительно просто создавать новые наборы значков для пользовательских Data Graphics.
Рассмотрим конкретный пример связывания данных с шейпами. Пусть в той же кофейне, к которой мы уже обращались имеются данные для планирования меню. Их ведут в Excel.
Итак, я начну с визарда. Выберем книгу и именованный диапазон в ней.
Затем можно отфильтровать нужные столбцы и строки, определить первичный ключ, нажать ОК и создать Datarecordset.
Существует несколько способов связывания данных. Во-первых, можно связать данные с существующим шейпом, в этом случае нужно просто перетащить строку данных и на шейп. Или можно создавать новые шейпы, перетаскивая строку или строки в свободное место на странице.
Выберем этот последний вариант, и мы увидим, что по мере перетаскивания строк Visio использует выбранный мастер в качестве основы для создания шейпов. К сожалению, красивого размещения не будет – это придется делать дополнительно вручную или с помощью кода.
Мы добавили шейпы и связали каждый из них с соответствующей строкой в Datarecordset. Теперь откроем шейп-лист одного из шейпов и посмотрим, что произошло в разделе данных.
Я изменил исходный мастер, включив в него три новых строки. В дополнение к Prop.Type добавлены Prop.CupSize, PropDescription и Prop.Price. Я специально не добавлял строку с кодом продукта, так как хотел показать, что Visio добавит в шейп строки данных, если они еще не существуют. Любые строки, добавленные таким образом, можно идентифицировать по префиксу visDM, за которым следует имя столбца из Datarecordset.
Еще один момент, на который следует обратить внимание, - это то, как Visio сопоставляет столбцы со строками данных шейпа через ячейку данных Label.
Здесь видно, что метки для описания типа, размера и цены соответствуют заголовкам соответствующих столбцов в Datarecordset. Оно может не совпадать с именем строки данных шейпа.
Итак, шейпы находятся на странице, а данные связаны. Теперь добавим Data Graphics для визуального отображения данных шейпа.
Видно, что этот Data Graphics состоят из трех элементов. Первые два относятся к текстовому типу, а третий - к гистограмме. Вы можете видеть строки данных шейпа, с которыми сопоставлены элементы, и, конечно же, при желании можете их изменить.
Если открыть один из элементов, то можно увидеть ряд свойств, влияющих на его внешний вид.
Если создать новый элемент, то видно, что существует четыре основных типа графических элементов данных. Text и Data Bar, которую вы видели, Icon Set и Color by Value.
Тип Color by Value отличается от других тем, что Text и Data Bar и Icon Set добавляют дополнительные шейпы рядом с основным, тогда как Color by Value фактически меняет цвет заливки.
Итак, это было очень краткое введение в связывание данных с фигурами и Data Graphics. Это завершает раздел Данные Visio, в котором было показано, где могут храниться данные в шейпах, как данные могут быть прочитаны и сопоставлены с шейпами, а также как можно использовать дополнительную графику на основе этих данных.
12.04.2019
15.09.2014
04.08.2014
17.11.2011