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


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