Метод Page.DropManyLinkedU (Visio)
Создает несколько новых фигур на странице документа, связанных с несколькими строками данных в наборе записей данных. Возвращает количество созданных экземпляров фигуры и массив идентификаторов этих фигур.
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
выражение. DropManyLinkedU
( _ObjectsToInstance()_
, _XYs()_
, _DataRecordsetID_
, _DataRowIDs()_
, _ApplyDataGraphicAfterLink_
, _ShapeIDs()_
)
Выражение Выражение, возвращающее объект Page .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
ObjectsToInstance() | Обязательный | Variant | Массив типа Variant объектов для создания экземпляров. |
XYs() | Обязательный | Double | Массив типа Double |
DataRecordsetID | Обязательный | Long | Идентификатор набора записей данных, содержащего строки данных для связывания. |
DataRowIDs() | Обязательный | Long | Массив типа Длинные идентификаторы строк данных, содержащих данные для связывания. |
ApplyDataGraphicAfterLink | Обязательный | Boolean | Следует ли применять текущий рисунок данных к связанным фигурам. Дополнительные сведения см. в разделе Примечания. |
ShapeIDs() | Обязательный | Long | Параметр Out. Массив типа Long из фигур, созданных и связанных с. |
Возвращаемое значение
Длинное целое
Замечания
Если вы хотите создать фигуры, уже связанные с данными на странице документа, которая не содержит фигур или содержит фигуры, отличные от тех, которые вы хотите связать, можно использовать методы Page.DropLinked и Page.DropManyLinkedU для создания одной или нескольких дополнительных фигур, уже связанных с данными. Эти методы напоминают существующие методы Page.Drop и Page.DropManyU тем, что создают дополнительные фигуры в указанном расположении на странице; кроме того, они создают связи между новыми фигурами и указанными строками данных в указанном наборе записей данных.
Для параметра ObjectsToInstance() передайте массив объектов экземпляру в фигуры, связанные с данными. Хотя эти объекты обычно являются объектами Visio, такими как Master, Shape или Selection , они могут быть любыми объектами OLE, которые предоставляют интерфейс IDataObject .
Для параметра XYs() передайте массив типа Double. Каждая последовательная пара значений массив-индекс-позиция должна соответствовать координатам x- и y-страниц , где требуется разместить экземпляр объекта в соответствующей позиции в массиве ObjectsToInstance(). Например, если требуется, чтобы экземпляр объекта в первой позиции индекса массива в ObjectsToInstance() располагался в координате страницы (2,4), поместите значение 2 в первую позицию индекса массива в XYs(), а значение 4 — во вторую позицию индекса массива в этом массиве и т. д. для остальных объектов и координат.
Когда объект, который передается в массив ObjectsToInstance(), является фигурой, центр поля ширины и высоты фигуры размещается в координатах, указанных в XYs().
Когда объект, передаемый в массив ObjectsToInstance(), является главным, закрепление главного элемента размещается в координатах, указанных в XYs(). Булавка мастера часто, но не обязательно, находится в центре вращения.
Для параметра DataRowIDs() передайте массив значений Long , представляющих идентификаторы строк данных в наборе записей данных, которые необходимо связать с экземплярами фигур, созданными из объектов в соответствующих позициях индекса массива в массиве ObjectsToInstance().
Для параметра ShapeIDs() передайте пустой безразмерный массив типа Long. Метод вернет массив, заполненный идентификаторами вновь созданных и связанных фигур.
Примечание.
Начиная с Microsoft Visio 2000, вы можете использовать локальные и универсальные имена для ссылки на фигуры Visio, образцы, документы, страницы, строки, надстройки, ячейки, гиперссылки, стили, шрифты, основные сочетания клавиш, объекты пользовательского интерфейса и слои. Например, когда пользователь присваивает имя фигуре, пользователь указывает локальное имя. Начиная с Microsoft Office Visio 2003 электронная таблица shapesheet отображает только универсальные имена в формулах и значениях ячеек. (В предыдущих версиях Visio универсальные имена не были видны в пользовательском интерфейсе.) Как разработчик, вы можете использовать универсальные имена в программе, если вы не хотите изменять имя каждый раз, когда решение локализуется. Используйте метод DropManyLinkedU , чтобы удалить несколько фигур, связанных с данными, при использовании универсальных имен для идентификации фигур.
Пример
В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать метод DropManyLinkedU для создания нескольких фигур на активной странице рисования, отцентрированных по указанным координатам и связанных со строками данных в наборе записей данных, который недавно был добавлен в активный документ. Он выводит количество созданных фигур и их идентификаторы в окно Интерпретация.
Фигуры, передаваемые методу DropManyLinkedU, являются простыми формами из набора элементов Basic Shapes (единицы США). Перед выполнением этого макроса используйте метод DataRecordsets.Add или другое средство, чтобы добавить по крайней мере один набор записей данных в коллекцию DataRecordsets и убедитесь, что набор элементов Basic Shapes (единиц США) открыт в окне документа Visio.
Sub DropManyLinkedU_Example()
Dim avarObjects(0 To 2) As Variant
Dim adblXYs(0 To 5) As Double
Dim alngDataRowIDs(0 To 2) As Long
Dim alngShapeIDs() As Long
Dim vsoDataRecordset As Visio.DataRecordset
Dim intRecordsetCount As Integer
Dim lngReturned As Long
Dim intCounter As Integer
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount)
Set avarObjects(0) = Visio.Documents("Basic_U.VSS").Masters("Rectangle")
Set avarObjects(1) = Visio.Documents("Basic_U.VSS").Masters("Triangle")
Set avarObjects(2) = Visio.Documents("Basic_U.VSS").Masters("Circle")
adblXYs(0) = 2
adblXYs(1) = 2
adblXYs(2) = 4
adblXYs(3) = 4
adblXYs(4) = 6
adblXYs(5) = 6
alngDataRowIDs(0) = 1
alngDataRowIDs(1) = 2
alngDataRowIDs(2) = 3
lngReturned = ActivePage.DropManyLinkedU(avarObjects, adblXYs, vsoDataRecordset.ID, alngDataRowIDs, True, alngShapeIDs)
Debug.Print lngReturned
For intCounter = 0 To lngReturned - 1
Debug.Print alngShapeIDs(intCounter)
Next
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.