Метод 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 и обратная связь.