Compartilhar via


Método Page.DropManyLinkedU (Visio)

Cria várias novas formas na página de desenho que são vinculadas a várias linhas de dados de um conjunto de registros de dados. Retorna o número de instâncias de forma criadas e uma matriz das identificações dessas formas.

Observação

This Visio object or member is available only to licensed users of Visio Professional 2013.

Sintaxe

expression. DropManyLinkedU( _ObjectsToInstance()_ , _XYs()_ , _DataRecordsetID_ , _DataRowIDs()_ , _ApplyDataGraphicAfterLink_ , _ShapeIDs()_ )

Expressão Uma expressão que retorna um objeto Page .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
ObjectsToInstance() Obrigatório Variantes Uma matriz do tipo Variant de objetos dos quais você deseja criar instâncias.
XYs() Obrigatório Double Uma matriz do tipo Double.
DataRecordsetID Obrigatório Long A identificação do conjunto de registros de dados contendo as linhas de dados com as quais você deseja estabelecer um vínculo.
DataRowIDs() Obrigatório Long Uma matriz do tipo Long de identificações das linhas de dados contendo os dados com os quais você deseja estabelecer um vínculo.
ApplyDataGraphicAfterLink Obrigatório Boolean Se o gráfico de dados atual deve ser aplicado às formas vinculadas. Consulte Comentários para obter mais informações.
ShapeIDs() Obrigatório Long Parâmetro externo. Uma matriz do tipo Long de formas criadas e vinculadas.

Valor de retorno

Long

Comentários

Quando você deseja criar formas já vinculadas a dados em uma página de desenho que não contém formas ou contém formas diferentes daquelas que você deseja vincular, você pode usar os métodos Page.DropLinked e Page.DropManyLinkedU para criar uma ou mais formas adicionais já vinculadas aos dados. Esses métodos se assemelham aos métodos Page.Drop e Page.DropManyU existentes, pois eles criam formas adicionais em um local especificado na página; mas, além disso, eles criam links entre as novas formas e as linhas de dados especificadas em um conjunto de registros de dados especificado.

Para o parâmetro ObjectsToInstance(), passe uma matriz de objetos a serem instanciados para as formas vinculadas aos dados. Embora esses objetos sejam objetos do Visio, como objetos Mestre, Forma ou Seleção , eles podem ser objetos OLE que fornecem uma interface IDataObject .

Para o parâmetro XYs(), passe uma matriz do tipo Double. Cada par consecutivo de valores de posição de índice de matriz deve corresponder às coordenadas de página x e y em que você deseja que a instância do objeto na posição correspondente na matriz ObjectsToInstance() seja posicionada. Por exemplo, se você quiser que a instância do objeto na primeira posição de índice de matriz em ObjectsToInstance() seja posicionada na coordenada da página (2,4), coloque o valor 2 na primeira posição de índice de matriz em XYs() e coloque o valor 4 na segunda posição de índice de matriz nessa matriz e assim por diante para o restante dos objetos e coordenadas.

Quando um objeto que você passa na matriz ObjectsToInstance() é uma forma, o centro da caixa de altura de largura da forma é posicionado nas coordenadas especificadas em XYs().

Quando um objeto passado na matriz ObjectsToInstance() é um mestre, o pino do mestre é posicionado nas coordenadas especificadas em XYs(). Frequentemente, mas não necessariamente, o marco de um mestre está no seu centro de rotação.

Para o parâmetro DataRowIDs(), passe uma matriz de valores Long que representam as identificações das linhas de dados no conjunto de registros de dados que você deseja vincular às instâncias de forma criadas a partir dos objetos nas posições correspondentes de índice na matriz ObjectsToInstance().

Para o parâmetro ShapeIDs(), passe uma matriz vazia e sem dimensões do tipo Long. O método retornará a matriz preenchida com as identificações das formas recém-criadas e vinculadas.

Observação

A partir do Microsoft Visio 2000, você pode usar nomes locais e universais para se referir a formas, mestres, documentos, páginas, linhas, complementos, células, hiperlinks, estilos, fontes, atalhos mestre, objetos UI e camadas do Visio. Quando um usuário nomeia uma forma, por exemplo, o usuário está especificando um nome local. Começando com o Microsoft Office Visio 2003, a planilha ShapeSheet exibe apenas nomes universais em fórmulas e valores de célula. (Em versões anteriores do Visio, os nomes universais não estavam visíveis na interface do usuário.) Como desenvolvedor, você pode usar nomes universais em um programa quando não quiser alterar um nome sempre que uma solução for localizada. Use o método DropManyLinkedU para soltar mais de uma forma vinculada aos dados quando estiver usando nomes universais para identificar as formas.

Exemplo

A macro a seguir do Microsoft Visual Basic for Applications (VBA) mostra como usar o método DropManyLinkedU para criar várias formas na página de desenho ativa, centralizadas nas coordenadas especificadas e vinculadas às linhas de dados do conjunto de registros de dados adicionado mais recentemente ao documento ativo. Ela imprime o número de formas criadas e seus respectivos números de identificação na janela Immediate.

As formas passadas para o método DropManyLinkedU são formas simples do estêncil de Formas Básicas (unidades dos EUA). Antes de executar essa macro, use o método DataRecordsets.Add ou outro meio para adicionar pelo menos um conjunto de registros de dados à coleção DataRecordsets e verifique se o estêncil de Formas Básicas (unidades dos EUA) está aberto na janela de desenho do 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.