Метод Page.LinkShapesToDataRows (Visio)
Связывает несколько строк в указанном наборе записей данных, как указано в идентификаторах строк данных, с несколькими фигурами на странице и при необходимости применяет текущий рисунок данных к связанным фигурам.
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
выражение. LinkShapesToDataRows
( _DataRecordsetID_
, _DataRowIDs()_
, _ShapeIDs()_
, _ApplyDataGraphicAfterLink_
)
Выражение Выражение, возвращающее объект Page .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
DataRecordsetID | Обязательный | Long | Идентификатор набора записей данных, содержащегося в текущем документе, который содержит данные для связывания. |
DataRowIDs() | Обязательный | Long | Массив типа Длинные идентификаторы строк данных в наборе записей данных, указанном в DataRecordsetID, которые должны быть связаны с фигурами, указанными в ShapeIDs(). |
ShapeIDs() | Обязательный | Long | Массив типа Длинные идентификаторы фигур на странице, которые должны быть связаны со строками данных, указанными в DataRowIDs() в наборе записей данных, указанном в DataRecordsetID. |
ApplyDataGraphicAfterLink | Необязательный | Логический | Следует ли применять текущий рисунок данных к связанным фигурам. Дополнительные сведения см. в разделе Примечания. |
Возвращаемое значение
Отсутствует
Примечания
Позиции индексов идентификаторов фигур в массиве, передаваемом для параметра ShapeIDs(), должны соответствовать позиции индекса в массиве DataRowIDs() идентификаторов строк данных, с которыми необходимо связать фигуры. То есть, чтобы связать фигуру с идентификатором 1 с строкой данных с идентификатором 10 , например, поместите идентификатор фигуры и идентификатор строки данных в одно положение индекса массива в соответствующих массивах.
Если Visio не удается установить связь между фигурой и строкой данных, Visio пропускает фигуру и переходит к следующей фигуре в массиве. После выполнения метода , чтобы определить, связаны ли все фигуры в массиве с указанными строками данных, вызовите метод Shape.GetLinkedDataRow для каждой фигуры в массиве. Если этот метод завершается ошибкой для любой фигуры, это означает, что фигура не связана со строкой данных. Visio обычно успешно связывает строку с фигурой, если только фигура не связана с данными, а параметр link-replace-behavior для набора записей данных указывает, что ссылка не должна быть заменена.
Если вы передаете значение True для необязательного параметра ApplyDataGraphicAfterLink или не передаете значение для этого параметра, Visio повторно применит существующий рисунок данных к фигурам, к которым уже применена графика данных до вызова метода . Для фигур, у которой ранее не было графических данных, Visio применяет рисунок данных, который последний раз применялся к любой другой фигуре в текущем документе.
Пример
В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать метод LinkShapesToDataRows для связывания первых трех фигур, добавленных на активную страницу рисования, с данными в первых трех строках данных в наборе записей данных, который недавно был добавлен в коллекцию DataRecordsets текущего документа. Так как он не передает значение для необязательного конечного параметра, он также применяет рисунок данных к связанным фигурам.
Перед выполнением этого макроса откройте новый документ Visio и используйте метод DataRecordsets.Add или другое средство, чтобы добавить по крайней мере один набор записей данных в коллекцию DataRecordsets . Последний добавленный набор записей данных должен содержать по крайней мере три строки данных. Затем добавьте по крайней мере три фигуры на страницу документа.
Public Sub LinkShapesToDataRows_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim intRecordsetCount As Integer
Dim alngDataRowIDs(0 To 2) As Long
Dim alngShapeIDs(0 To 2) As Long
alngShapeIDs(0) = 1
alngShapeIDs(1) = 2
alngShapeIDs(2) = 3
alngDataRowIDs(0) = 1
alngDataRowIDs(1) = 2
alngDataRowIDs(2) = 3
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount)
ActivePage.LinkShapesToDataRows vsoDataRecordset.ID, alngDataRowIDs, alngShapeIDs
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.