Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Автоматически связывает выбранные фигуры со строками данных в указанном наборе записей без необходимости указывать точное соответствие всех фигур и строк данных. Возвращает количество связанных фигур.
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
выражение.
AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )
выражение Выражение, возвращающее объект выделения .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| DataRecordsetID | Обязательный | Long | Значение свойства ID объекта DataRecordset , содержащего строки данных для связывания. |
| ColumnNames() | Обязательный | String | Массив строк, соответствующих именам столбцов в наборе записей данных. |
| AutoLinkFieldTypes() | Обязательный | Long | Массив значений Long из перечисления VisAutoLinkFieldTypes , состоящий из типов атрибутов shape. По крайней мере одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах ColumnNames и FieldNames. |
| FieldNames() | Обязательный | String | Массив строк, представляющих значения фигуры. |
| AutoLinkBehavior | Обязательный | Long | Сочетание одной или нескольких констант из перечисления VisAutoLinkBehavior , определяющих способ связывания. Возможные значения см. в примечаниях. |
| Идентификаторы фигуры() | Обязательный | Long | Параметр Out. Массив идентификаторов фигур (типа Long), связанных методом. |
Возвращаемое значение
Long
Примечания
Для параметра ColumnNames() передайте строковый массив, состоящий из имен столбцов в базе данных. Хотя бы одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах AutoLinkFieldTypes() и FieldNames().
Для параметра AutoLinkFieldTypes() передайте массив значений Long из перечисления VisAutoLinkFieldTypes , состоящий из типов атрибутов shape. Среди атрибутов фигуры перечислены высота, ширина, текст и имя master, от которой получена фигура. Хотя бы одна позиция в массиве должна иметь значение, соответствующее значениям в той же позиции в массивах 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 ShapeSheet. |
| 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 и обратная связь.