Compartilhar via


Método Selection.AutomaticLink (Visio)

Vincula automaticamente as formas selecionadas às linhas de dados do conjunto de registros de dados definido sem exigir que você especifique a correspondência exata de todas as formas e linhas de dados. Retorna o número de formas vinculadas.

Observação

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

Sintaxe

expression. AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )

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

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
DataRecordsetID Obrigatório Long O valor da propriedade ID do objeto DataRecordset que contém as linhas de dados para vinculação.
ColumnNames() Obrigatório String Uma matriz de sequências de caracteres que correspondem aos nomes das colunas no conjunto de registros de dados.
AutoLinkFieldTypes() Obrigatório Long Uma matriz dos valores Long da enumeração VisAutoLinkFieldTypes, consistindo em tipos de atributo de forma. Pelo menos uma posição na matriz deverá ter um valor que corresponda aos valores na mesma posição nas matrizes ColumnNames e FieldNames.
FieldNames() Obrigatório String Uma matriz de sequências de caracteres que representam valores de forma.
AutoLinkBehavior Obrigatório Long Uma combinação de uma ou mais constantes da enumeração VisAutoLinkBehavior que especificam como ocorrerá a vinculação. Consulte comentários para os valores possíveis.
ShapeIDs() Obrigatório Long Parâmetro externo. Uma matriz de identificações de formas (do tipo Long) que foram vinculadas pelo método.

Valor de retorno

Long

Comentários

Para o parâmetro ColumnNames(), passe uma matriz de cadeias de caracteres consistindo em nomes de colunas no banco de dados. Pelo menos uma posição na matriz deve ter um valor que corresponda aos valores na mesma posição nas matrizes AutoLinkFieldTypes() e FieldNames().

Para o parâmetro AutoLinkFieldTypes(), passe uma matriz de valores Long da enumeração VisAutoLinkFieldTypes, consistindo em tipos de atributo de forma. Os atributos de forma enumerados incluem altura, largura, texto e o nome do mestre do qual foi derivada a forma. Pelo menos uma posição na matriz deverá ter um valor que corresponda aos valores na mesma posição nas matrizes ColumnNames() e FieldNames().

Para o parâmetro FieldNames(), passe uma matriz de cadeias de caracteres que representem valores de forma. Pelo menos uma posição na matriz FieldNames() deve ter um valor que corresponda aos valores na mesma posição nas matrizes ColumnNames() e AutoLinkFieldTypes().

Para a maioria dos valores de AutoLinkFieldTypes(), por exemplo, para visAutoLinkShapeText, não é necessário especificar o valor FieldNames() ; em vez disso, você pode passar uma cadeia de caracteres vazia. No entanto, ao passar os valores visAutoLinkCustPropsLabel, visAutoLinkUserRowName, visAutoLinkPropRowNameU ou visAutoLinkUserRowNameU de AutoLinkFieldTypes, você deve passar um valor para FieldNames() que especifica totalmente o item de dados de forma (chamado de valor de propriedade personalizado em algumas versões anteriores do Visio) para comparar com o nome da coluna de dados.

Para o parâmetro opcional AutoLinkBehavior, você poderá passar uma combinação de um ou mais valores da enumeração VisAutoLinkBehaviors que especifiquem como ocorrerá a vinculação. A tabela a seguir mostra os valores possíveis.

Constant Valor Descrição
visAutoLinkDontReplaceExistingLinks 16 Não substitui os vínculos existentes.
visAutoLinkGenericProgressBar 2 Mostra uma barra de progresso genérica, em vez de uma mais detalhada.
visAutoLinkIncludeHiddenProps 64 Inclui propriedades ocultas.
visAutoLinkNoApplyDataGraphic 4 Não aplica o gráfico de dados padrão às formas vinculadas.
visAutoLinkNullMatchesNoFormula 32 Permite que valores nulos dos bancos de dados sejam mapeados para "No Formula" na planilha ShapeSheet do Visio.
visAutoLinkReplaceExistingLinks 8 Substitui os vínculos existentes.
visAutoLinkSelectedShapesOnly 1 Vincula apenas as formas selecionadas, e não as subformas das formas selecionadas.

Você não pode passar um valor que inclua visAutoLinkDontReplaceExistingLinks e visAutoLinkReplaceExistingLinks. O método retornará um erro se você tentar fazê-lo.

Se você passar um valor para AutoLinkBehavior, ele modificará o comportamento padrão, que é o seguinte:

  • Usar a configuração LinkReplaceBehavior do conjunto de registros de dados para determinar se os vínculos existentes serão quebrados. Se a configuração for visLinkReplacePrompt, ela será tratada como se fosse visLinkReplaceAlways.

  • Vincular as formas selecionadas e suas subformas.

  • Não substituir a barra de progresso detalhada pela barra de progresso genérica.

  • Aplicar gráficos de dados.

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

Para fornecer ao Visio informações suficientes para criar os links, você deve fornecer pelo menos um conjunto de dados correspondentes: o nome de uma coluna no conjunto de registros de dados, um tipo de atributo de forma e, se necessário, um valor de forma, todos na mesma posição de índice das matrizes correspondentes que você passa para o método. O tipo de atributo de forma indica o atributo de forma para basear a correspondência. O atributo pode ser o valor de um item de dados da forma, de um texto da forma ou um outro contido nos valores especificados na enumeração VisAutoLinkFieldTypes.

Por exemplo, suponha que o seu desenho contenha uma seleção de formas que representam diferentes funcionários e que o texto da forma, que neste caso exibe os nomes dos respectivos funcionários, identifique as formas. Conforme mostrado no exemplo deste tópico, você passaria os seguintes parâmetros para o método:

  • Para o parâmetro ColumnNames(), uma matriz contendo o nome de coluna "EmployeeName" na posição 0 na matriz.

  • Para o parâmetro AutoLinkFieldTypes(), o valor de enumeração visAutoLinkShapeText na posição 0 na matriz.

  • Para o parâmetro FieldNames(), uma cadeia de caracteres vazia (''") na posição 0 na matriz, pois, quando AutoLinkFieldTypes() é visAutoLinkShapeText, não é necessário especificar o valor FieldNames().

Exemplo

A macro a seguir do Microsoft Visual Basic for Applications (VBA) mostra como usar o método AutomaticLink para vincular automaticamente as formas de um desenho aos dados de um conjunto de registros de dados. Ela vincula os dados dos funcionários contidos em um conjunto de registros de dados às formas no desenho cujo texto da forma corresponde aos nomes dos funcionários.

Antes de executar essa macro, crie um conjunto de registros de dados contendo uma coluna denominada "EmployeeName" que liste os nomes dos funcionários, bem como qualquer outra coluna que deseje incluir e, em seguida, atribua esse nomes de funcionários como texto às formas correspondentes no seu desenho do Visio. Use o método DataRecordsets.Add para adicionar o conjunto de registros de dados à coleção DataRecordsets do documento ativo. Verifique se o conjunto de registros de dados foi o adicionado mais recentemente à coleção.

Public Sub AutomaticLink_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim vsoSelection As Visio.Selection 
    Dim astrColumnNames(1) As String 
    Dim alngFieldTypes(1) As Long 
    Dim astrFieldNames(1) As String 
    Dim alngShapesLinked() As Long 
    Dim intCount As Integer 
     
    intCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intCount ) 
 
    astrColumnNames(0) = "EmployeeName" 
    alngFieldTypes(0) = Visio.VisAutoLinkFieldTypes.visAutoLinkShapeText 
    astrFieldNames(0) = "" 
 
    ActiveWindow.DeselectAll 
    ActiveWindow.SelectAll 
 
    Set vsoSelection = ActiveWindow.Selection 
    vsoSelection.AutomaticLink vsoDataRecordset.ID, _ 
                    astrColumnNames, _ 
                    alngFieldTypes, _ 
                    astrFieldNames, 0, alngShapesLinked 
 
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.