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.