Поделиться через


Метод Selection.AutomaticLink (Visio)

Автоматически связывает выбранные фигуры со строками данных в указанном наборе записей данных без необходимости указывать точное соответствие всех фигур и строк данных. Возвращает количество связанных фигур.

Примечание.

Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.

Синтаксис

выражение. AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )

Выражение Выражение, возвращающее объект Selection .

Параметры

Имя Обязательный или необязательный Тип данных Описание
DataRecordsetID Обязательный Long Значение свойства ID объекта DataRecordset , содержащего строки данных для связывания.
ColumnNames() Обязательный String Массив строк, соответствующих именам столбцов в наборе записей данных.
AutoLinkFieldTypes() Обязательный Long Массив значений Long из перечисления VisAutoLinkFieldTypes , состоящий из типов атрибутов shape. По крайней мере одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах ColumnNames и FieldNames.
FieldNames() Обязательный String Массив строк, представляющих значения фигур.
AutoLinkBehavior Обязательный Long Сочетание одной или нескольких констант из перечисления VisAutoLinkBehavior , указывающее способ связывания. Возможные значения см. в разделе Примечания.
ShapeIDs() Обязательный Long Параметр Out. Массив идентификаторов фигур (типа Long), связанных методом .

Возвращаемое значение

Длинное целое

Замечания

Для параметра ColumnNames() передайте массив строк, состоящий из имен столбцов в базе данных. По крайней мере одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах AutoLinkFieldTypes() и FieldNames().

Для параметра AutoLinkFieldTypes() передайте массив значений Long из перечисления VisAutoLinkFieldTypes , состоящий из типов атрибутов shape. Среди перечисленных атрибутов фигуры — высота, ширина, текст и имя образца, из которых была получена фигура. По крайней мере одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах ColumnNames() и FieldNames().

Для параметра FieldNames() передайте массив строк, представляющих значения фигур. По крайней мере одна позиция в массиве FieldNames() должна иметь значение, соответствующее значениям в той же позиции в массивах ColumnNames() и AutoLinkFieldTypes().

Для большинства значений AutoLinkFieldTypes(), например для visAutoLinkShapeText, указывать значение FieldNames() не требуется; Вместо этого можно передать пустую строку. Однако при передаче значений visAutoLinkCustPropsLabel, visAutoLinkUserRowName, visAutoLinkPropRowNameU или visAutoLinkUserRowNameU объекта AutoLinkFieldTypes необходимо передать значение FieldNames(), которое полностью указывает элемент данных фигуры (в некоторых предыдущих версиях Visio— значение пользовательского свойства) для сравнения с именем столбца данных.

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

Константа Значение Описание
visAutoLinkDontReplaceExistingLinks 16 Не заменяйте существующие ссылки.
visAutoLinkGenericProgressBar 2 Отображение универсальной панели выполнения вместо более подробной.
visAutoLinkIncludeHiddenProps 64 Включить скрытые свойства.
visAutoLinkNoApplyDataGraphic 4 Не применяйте рисунок данных по умолчанию к связанным фигурам.
visAutoLinkNullMatchesNoFormula 32 Разрешить сопоставление значений null базы данных с "Нет формулы" в электронной таблице Таблицы фигур Visio.
visAutoLinkReplaceExistingLinks 8 Замените существующие ссылки.
visAutoLinkSelectedShapesOnly 1 Связывание только с выбранными фигурами, а не с вложенными фигурами.

Нельзя передать значение, включающее как visAutoLinkDontReplaceExistingLinks , так и visAutoLinkReplaceExistingLinks. При попытке метод возвращает ошибку.

Если вы передаете значение для AutoLinkBehavior, оно изменяет поведение по умолчанию, которое выглядит следующим образом:

  • Используйте параметр LinkReplaceBehavior набора данных, чтобы определить, следует ли прерывать существующие связи. Если параметр имеет значение visLinkReplacePrompt, он обрабатывается так, как если бы он был visLinkReplaceAlways.

  • Связывание выбранных фигур и их дочерних форм.

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

  • Применение графики данных.

Для параметра ShapeIDs() передайте пустой безразмерный массив типа Long. Visio вернет массив, заполненный идентификаторами фигур, которые были связаны с данными методом .

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

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

  • Для параметра ColumnNames() — массив, содержащий имя столбца EmployeeName в позиции массива 0.

  • Для параметра AutoLinkFieldTypes() значение перечисления visAutoLinkShapeText в позиции массива 0.

  • Для параметра FieldNames() пустая строка (''") в позиции массива 0, так как если параметр AutoLinkFieldTypes() имеет значение visAutoLinkShapeText, указывать значение FieldNames() не требуется.

Пример

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

Перед выполнением этого макроса создайте набор записей данных, содержащий столбец EmployeeName, в котором перечислены имена сотрудников, а также другие столбцы, которые нужно включить, а затем назначьте имена сотрудников в качестве текста фигуры соответствующим фигурам в документе Visio. Используйте метод DataRecordsets.Add , чтобы добавить набор записей данных в коллекцию DataRecordsets активного документа. Убедитесь, что набор записей данных — это тот, который вы недавно добавили в коллекцию.

Public Sub AutomaticLink_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim vsoSelection As Visio.Selection 
    Dim astrColumnNames(1) As String 
    Dim alngFieldTypes(1) As Long 
    Dim astrFieldNames(1) As String 
    Dim alngShapesLinked() As Long 
    Dim intCount As Integer 
     
    intCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intCount ) 
 
    astrColumnNames(0) = "EmployeeName" 
    alngFieldTypes(0) = Visio.VisAutoLinkFieldTypes.visAutoLinkShapeText 
    astrFieldNames(0) = "" 
 
    ActiveWindow.DeselectAll 
    ActiveWindow.SelectAll 
 
    Set vsoSelection = ActiveWindow.Selection 
    vsoSelection.AutomaticLink vsoDataRecordset.ID, _ 
                    astrColumnNames, _ 
                    alngFieldTypes, _ 
                    astrFieldNames, 0, alngShapesLinked 
 
End Sub

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

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