Сведения о графическом отображении данных (Visio)

Примечание Функции подключения к данным доступны только лицензированным пользователям Microsoft Visio профессиональный 2013.

Существует четыре аспекта подключения к данным в Visio:

  • Подключение к источнику данных
  • Связывание фигур с данными
  • Графическое представление связанных данных
  • Обновление связанных данных, измененных в источнике данных, обновление связанных фигур и разрешение последующих возможных конфликтов

Как правило реализация этих аспектов выполняется в перечисленном порядке. Это означает, что сначала вы подключаете документ Visio к источнику данных, затем связываете фигуры документа с данными в источнике, графически представляете данные в связанных фигурах и обновляете связанные данные при необходимости. С каждым из этих аспектов связаны новые объекты и элементы в объектной модели Visio. В этом разделе рассматриваются третий и четвертый из этих аспектов: графическое отображение связанных данных в фигурах в Visio и обновление данных. Дополнительные сведения о других аспектах подключения к данным см. в следующих статьях:

Для программного отображения связанных данных можно использовать API Visio для отображения данных, который включает следующие объекты и связанные с ними элементы:

После связывания фигур в документе Visio со строками в наборе записей данных можно графически отобразить связанные данные программным способом. Например, предположим, что ваш документ содержит несколько связанных с данными фигур, каждая из которых представляет проект на определенном этапе завершения. Индикатор выполнения можно связать с определенным элементом данных фигуры, например процентом завершения проекта. Затем можно применить индикатор выполнения к выбору фигур проекта и визуально показать ход выполнения каждого проекта.

Обзор графики данных и графических элементов

Чтобы упростить графическое отображение данных, Visio вводит концепцию графики данных и тип объекта Master , который называется графическим хозяином данных, который представлен в перечислении VisMasterTypes значением visTypeDataGraphic. Чтобы добавить объект Master типа visTypeDataGraphic в коллекцию Master , необходимо использовать метод Masters.AddEx .

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

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

Visio предоставляет графические элементы следующих типов:

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

Visio предоставляет различные стандартные графические элементы данных, которые уже заполнены графическими элементами. Если вы хотите применить рисунок данных к фигурам, которые имеют другое сочетание графических элементов, можно создать настраиваемый графический рисунок данных. Рекомендуется использовать пользовательский интерфейс Visio для создания графического элемента данных и добавления в него графических элементов.

Создание графики данных в пользовательском интерфейсе

  1. На вкладке Данные щелкните Графика данных.
  2. Щелкните Создать новый графический элемент данных, а затем в диалоговом окне Создать графический элемент данных щелкните Создать элемент.
  3. В открывшемся диалоговом окне настройте элемент, а затем используйте тот же метод для добавления пользовательских элементов.

Вы также можете создавать графические образцы данных и заполнять их существующими графическими элементами программным способом. Нельзя создавать графические элементы программными средствами, но вы можете настроить поведение существующей графики данных. Кроме того, можно использовать код для изменения поведения и положения графических элементов, а также правил, называемых выражениями, которые определяют, как отдельные графические элементы отображают данные. Выражения могут быть формулами Таблицы фигур или любыми другими допустимыми выражениями ShapeSheet, а также метками данных фигуры (пользовательские свойства). Чтобы задать выражение, которое является меткой данных фигуры, необходимо заключить метку в фигурные скобки ({}), а затем передать ее в качестве второго параметра ( Expression) метода GraphicItem.SetExpression .

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

Объекты и элементы графики данных

Помимо основных объектов типа visTypeDataGraphic , описанных в предыдущем разделе, Visio предоставляет следующие объекты и связанные с ними элементы в API графики данных:

В дополнение к этим объектам, связанным с графическими данными, и их элементами, частью API графики данных являются несколько членов других, более обычных объектов Visio. Например, свойства Shape.DataGraphic и Selection.DataGraphic позволяют применять графику данных к фигурам и выделениям соответственно. Доступное только для чтения свойство Shape.IsDataGraphicCallout указывает, работает ли определенная фигура в качестве графического элемента данных в документе.

Применение графики данных к фигурам, связанным с данными

В следующем примере показано, как использовать свойство Selection.DataGraphic для применения существующего пользовательского рисунка данных, создаваемого в пользовательском интерфейсе, к выбору фигур в документе. Чтобы этот код работал, существующий настраиваемый графический объект данных должен иметь имя MyCustomDataGraphic. Кроме того, можно заменить в коде имя существующего рисунка данных в документе на MyCustomDataGraphic.

Public Sub ApplyDataGraphic() 
    Dim vsoSelection As Visio.Selection 
    ActiveWindow.SelectAll 
    Set vsoSelection = ActiveWindow.Selection 
    Set vsoSelection.DataGraphic = ActiveDocument.Masters("MyCustomDataGraphic") 
End Sub

Настройка поведения графических образцов данных

Используйте свойства Master.DataGraphicHidden и Master.DataGraphicHidesText для настройки определенных аспектов поведения графических мастеров данных.

Свойство DataGraphicHidden определяет, отображается ли образец данных в коллекции графики данных в пользовательском интерфейсе Visio. Если для данного образца задано значение True , он не отображается в списке графики данных в коллекции. Значение по умолчанию свойства — False.

Свойство DataGraphicsHidesText определяет, скрывает ли применение графического элемента данных текст фигуры, к которой он применяется (первичная фигура в случае групповой фигуры). Значение по умолчанию этого свойства также равно False.

Свойство GraphicItem.UseDataGraphicPosition определяет, следует ли использовать текущую позицию выноски по умолчанию для графических элементов графического образца данных, к коллекции GraphicItems которого принадлежит графический элемент. Позиция выноски по умолчанию для графических элементов в коллекции GraphicItems объекта Master типа visTypeDataGraphic определяется параметрами свойств Master.DataGraphicVerticalPosition и Master.DataGraphicHorizontalPosition . Если параметр UseDataGraphicPosition имеет значение True, графический элемент размещается в соответствии с параметром по умолчанию. Если параметр UseDataGraphicPosition имеет значение False, его положение определяется параметрами свойств Graphic Item.VerticalPosition и GraphicItem.HorizontalPosition .

Кроме того, если значения свойств HorizontalPosition и VerticalPosition графического элемента равны значениям свойств DataGraphicHorizontalPosition и DataGraphicVerticalPosition , то для свойства UseDataGraphicPosition для этого графического элемента автоматически устанавливается значение True.

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

Свойство Master.DataGraphicShowBorder определяет, отображается ли граница вокруг графических элементов, которые находятся в позициях по умолчанию относительно фигуры, к которой применяется рисунок данных. По умолчанию граница скрыта.

Программное сборка графики данных

В следующем примере показано, как создать графический образец данных, добавить в него существующий графический элемент, а затем изменить графический элемент. В этом примере используется метод Masters.AddEx для добавления нового образца рисунка данных в коллекцию Master текущего документа.

Затем используется метод Master.Open , чтобы получить копию существующего образца графических данных для редактирования. Дополнительные сведения о том, почему необходимо изменить копию образца, а не самого образца, см. в разделе Open Method. Затем используется метод GraphicItems.AddCopy для добавления копии существующего графического элемента в коллекцию GraphicItems нового образца, а метод GraphicItem.SetExpression — для изменения поля данных, которое представляет графический элемент. Он также задает свойство GraphicItem.PositionHorizontal для изменения горизонтального положения графического элемента относительно фигуры, к которой он применяется.

Наконец, он задает свойству Master.DataGraphicHidesTextзначение True , чтобы скрыть текст фигуры, и закрывает копию образца, который применяет изменения к существующим фигурам, к которым применяется этот образец данных. Затем можно применить новый графический образец данных к дополнительным фигурам.

Public Sub AddNewDataGraphicMaster() 
 
    Dim vsoMaster As Visio.Master 
    Dim vsoMasterCopy As Visio.Master 
    Dim vsoMaster_Old As Visio.Master 
    Dim vsoGraphicItem As GraphicItem 
    Dim vsoGraphicItem_Old As Visio.GraphicItem 
 
    Set vsoMaster = ActiveDocument.Masters.AddEx(visTypeDataGraphic) 
    Set vsoMasterCopy = vsoMaster.Open 
    Set vsoMaster_Old = ActiveDocument.Masters("old_master_name") 
    Set vsoGraphicItem_Old = vsoMaster_Old.GraphicItems(1) 
    Set vsoGraphicItem = vsoMasterCopy.GraphicItems.AddCopy(vsoGraphicItem_Old) 
 
    vsoGraphicItem.SetExpression visGraphicExpression, "new_data_field_name" 
    vsoGraphicItem.PositionHorizontal = visGraphicLeft 
    vsoMasterCopy.DataGraphicHidesText = True; 
    vsoMasterCopy.Close 
 
End Sub

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

For intCounter = 1 To ActiveDocument.Masters.Count 
        If ActiveDocument.Masters(intCounter).Type = visTypeDataGraphic Then 
            Debug.Print ActiveDocument.Masters(intCounter).Name, ActiveDocument.Masters(intCounter).ID 
        End If 
    Next

Аналогичным образом можно выполнить итерацию по коллекции GraphicItems образца, чтобы определить значения свойств ID и Tag существующего графического элемента, как показано в следующем примере. Свойство Tag — это строка, которую Visio не использует. По умолчанию он пуст. Однако можно задать его значение, чтобы упростить идентификацию отдельных графических элементов программным способом.

For intCounter = 1 To (vsoMaster_Old.GraphicItems.Count) 
        Debug.Print vsoMaster_Old.GraphicItems(intCounter).ID, oldMaster.GraphicItems(intCounter).Tag 
    Next

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.