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.