Sobre a exibição de dados graficamente (Visio)
Nota Os recursos de conectividade de dados estão disponíveis apenas para usuários licenciados de Microsoft Visio Professional 2013.
São quatro os aspectos de conectividade de dados no Visio:
- Conexão com uma fonte de dados
- Vinculando formas aos dados
- Exibição gráfica de dados vinculados
- Atualização de dados vinculados que foram alterados na fonte de dados, atualização de formas vinculadas e solução de conflitos subsequentes que possam surgir
Em geral, você aborda esses aspectos na ordem em que eles estão listados, ou seja, primeiro você conecta o desenho do Visio a uma fonte de dados, depois vincula as formas do desenho aos dados da fonte de dados, exibe os dados graficamente em formas vinculadas, e atualiza os dados vinculados, quando necessário. Cada um desses aspectos tem novos objetos e membros associados a ele no modelo de objeto do Visio. Este tópico fala sobre o terceiro e o quarto aspectos, exibição gráfica de dados vinculados em formas no Visio e atualização dos dados. Para obter mais informações sobre os outros aspectos da conectividade de dados, consulte os seguintes tópicos:
Para exibir programaticamente os dados vinculados, você pode usar a API do Visio, que oferece os seguintes objetos e seus membros associados:
Após vincular formas de seu desenho Visio às linhas em um conjunto de registros de dados, é possível exibir graficamente os dados vinculados programaticamente. Por exemplo, seu desenho contém várias formas vinculadas por dados, cada uma representa um projeto em um estágio específico de conclusão. É possível associar uma barra de progresso a um item específico de dados de forma, como a porcentagem da conclusão do projeto. Em seguida, você pode aplicar a barra de progresso a uma seleção de formas de projeto e mostrar o progresso de cada projeto para a conclusão visualmente.
Visão geral dos gráficos de dados e itens gráficos
Para facilitar a exibição de dados graficamente, o Visio apresenta o conceito de gráficos de dados e um tipo de objeto Mestre chamado mestre gráfico de dados, que é representado na enumeração VisMasterTypes pelo valor visTypeDataGraphic. Para adicionar um objeto Mestre do tipo visTypeDataGraphic à coleção Masters , você deve usar o método Masters.AddEx .
O Visio inclui vários tipos de mestres, inclusive mestres de formas. Quando uma instância de mestre de forma é criada, ela se torna uma forma. O Visio também inclui mestres para padrão de preenchimento, padrão de linha e final de linha, para os quais não se pode criar instâncias. Esses mestres devem ser aplicados às formas para comunicar o padrão mestre. Os mestres gráficos de dados são mais como mestres de padrão, porque você não cria instâncias deles. Ao invés disso, eles devem ser aplicados às formas quando forem criados mestres para padrão de linha e padrão de preenchimento.
Os mestres de gráficos de dados correspondem aos gráficos que aparecem no painel de tarefas Gráficos de Dados na IU do Visio. Um mestre de gráficos de dados consiste em um ou mais itens gráficos. Os itens gráficos são formas Visio projetados para serem componentes visuais prontos que podem ser associados a dados de forma para exibir aqueles dados graficamente, com base em regras que você define, e em posição relativa à forma que você especificar.
O Visio fornece itens gráficos para os seguintes tipos:
- Texto Exibe dados como texto em uma chamada, em uma posição especificada em relação à forma.
- Cor por valor Altera a cor da forma com base em uma comparação entre dados de forma e um determinado valor ou intervalo de valores.
- Barra de dados Usa gráficos e gráficos de barras para exibir dados em uma posição especificada em relação à forma.
- Conjunto de Ícones Exibe um de um conjunto de ícones que representa um valor ou condição de dados, em uma posição especificada em relação à forma.
O Visio oferece vários gráficos de dados padrão já preenchidos com itens gráficos. Se houver necessidade de aplicar um gráfico de dados às suas formas que tiverem uma combinação diferente de itens gráficos, é possível criar um gráfico de dados personalizado. Recomendamos que seja usada a IU do Visio para criar um gráfico de dados e adicionar itens gráficos a ele.
Para criar gráficos de dados na interface do usuário
- Na guia Dados, clique em Gráficos de Dados.
- Clique em Criar Novo Gráfico de Dados e, na caixa de diálogo Novo Gráfico de Dados, clique em Novo Item.
- Na caixa de diálogo que abrir, personalize o item e use o mesmo método para adicionar itens personalizados.
Também é possível criar mestres para gráficos de dados e preenchê-los programaticamente com itens gráficos existentes. Você não pode criar itens gráficos por programação, mas pode personalizar o comportamento dos gráficos de dados existentes. Além disso, é possível usar código para alterar o comportamento e a posição de itens gráficos, bem como as regras, chamadas expressões, que definem como os itens gráficos individuais exibem os dados. As expressões podem ser fórmulas do ShapeSheet ou quaisquer outras expressões válidas do ShapeSheet, ou ainda rótulos de dados da forma (propriedade personalizada). Para definir uma expressão que é um rótulo de dados de forma, você deve incluir o rótulo em chaves ({}) e, em seguida, passá-lo como o segundo parâmetro ( Expression) do método GraphicItem.SetExpression .
Após criar um gráfico de dados que contém uma combinação personalizada de itens gráficos e definir o comportamento desses itens gráficos, é possível aplicar o gráfico de dados a formas vinculadas a dados programaticamente.
Objetos e membros dos gráficos de dados
Além dos objetos Master do tipo visTypeDataGraphic descritos na seção anterior, o Visio fornece os seguintes objetos e seus membros associados na API dos gráficos de dados:
Além desses objetos e membros especificamente relacionados a gráficos de dados, vários membros, mais convencionais de outros objetos do Visio, constituem parte da API dos gráficos de dados. Por exemplo, as propriedades Shape.DataGraphic e Selection.DataGraphic permitem que você aplique gráficos de dados a formas e seleções, respectivamente. A propriedade Shape.IsDataGraphicCallout somente leitura indica se uma forma específica está funcionando como um item gráfico de dados em seu desenho.
Aplicando gráficos de dados a formas vinculadas por dados
O exemplo a seguir mostra como usar a propriedade Selection.DataGraphic para aplicar um gráfico de dados personalizado existente, criado na interface do usuário, a uma seleção de formas do seu desenho. Para que esse código funcione, o gráfico de dados personalizados existente deve ser chamado de "MyCustomDataGraphic". Como alternativa, você pode substituir o nome de um gráfico de dados existente em seu desenho por "MyCustomDataGraphic" no código.
Public Sub ApplyDataGraphic()
Dim vsoSelection As Visio.Selection
ActiveWindow.SelectAll
Set vsoSelection = ActiveWindow.Selection
Set vsoSelection.DataGraphic = ActiveDocument.Masters("MyCustomDataGraphic")
End Sub
Personalizando o comportamento dos mestres de gráficos de dados
Use as propriedades Master.DataGraphicHidden e Master.DataGraphicHidesText para personalizar determinados aspectos do comportamento dos mestres gráficos de dados.
A propriedade DataGraphicHidden determina se um mestre de gráficos de dados é exibido na galeria Gráficos de Dados na interface de usuário do Visio. Quando for configurado o valor desta propriedade para True para um determinado mestre, este não é exibido na lista dos gráficos de dados na galeria. O valor padrão da propriedade é False.
A propriedade DataGraphicsHidesText determina se a aplicação de um mestre de gráficos padrão oculta o texto da forma à qual ele está aplicado (a primeira forma no caso de um grupo de formas). O valor padrão desta propriedade é False.
A propriedade GraphicItem.UseDataGraphicPosition determina se deve usar a posição de chamada padrão atual para itens gráficos do mestre gráfico de dados a cuja coleção GraphicItems um item gráfico pertence. A posição de chamada padrão para itens gráficos na coleção GraphicItems de um objeto Mestre do tipo visTypeDataGraphic é especificada pelas configurações das propriedades Master.DataGraphicVerticalPosition e Master.DataGraphicHorizontalPosition . Se o UseDataGraphicPosition for True, o item gráfico é posicionado de acordo com a configuração padrão. Se UseDataGraphicPosition for False, sua posição será determinada pelas configurações das propriedades Item Gráfico.VerticalPosition e GraphicItem.HorizontalPosition .
Além disso, se os valores das propriedades HorizontalPosition e VerticalPosition de um item gráfico forem iguais aos valores das propriedades DataGraphicHorizontalPosition e DataGraphicVerticalPosition, o valor da propriedade UseDataGraphicPosition para aquele item gráfico será automaticamente definido como True.
Observe, porém, que é possível reposicionar manualmente um gráfico de dados que tenha sido aplicado a uma forma usando o identificador de controle do gráfico de dados. A posição definida desta maneira prevalece sobre a posição especificada pelas configurações das propriedades.
A propriedade Master.DataGraphicShowBorder determina se uma borda é exibida em torno de itens gráficos que estão em posições padrão em relação à forma à qual um gráfico de dados é aplicado. Por padrão, o borda é oculta.
Montando gráficos de dados programaticamente
O exemplo a seguir mostra como criar um mestre de gráficos de dados, adicionar ao mesmo um item gráfico existente e modificar o item gráfico. Este exemplo usa o método Masters.AddEx para adicionar um novo mestre de gráficos de dados à coleção Masters do documento atual.
Em seguida, usa o método Master.Open para obter uma cópia do mestre de gráficos de dados existente que deverá ser editada. Para obter mais informações sobre porquê é necessário editar a copia de um mestre, em vez do próprio mestre, consulte Método Open. Em seguida, ele usa o método GraphicItems.AddCopy para adicionar uma cópia de um item gráfico existente à coleção GraphicItems do novo mestre e ao método GraphicItem.SetExpression para modificar o campo de dados que o item gráfico representa. Ele também define a propriedade GraphicItem.PositionHorizontal para modificar a posição horizontal do item gráfico relacionado à forma à qual ele é aplicado.
Finalmente, define a propriedade Master.DataGraphicHidesText como True para ocultar o texto da forma e fecha a cópia do mestre, que faz com que as alterações sejam aplicadas às formas existentes às quais este mestre de gráficos de dados é aplicado. É possível, então, aplicar o novo mestre de gráficos de dados a outras formas.
Public Sub AddNewDataGraphicMaster()
Dim vsoMaster As Visio.Master
Dim vsoMasterCopy As Visio.Master
Dim vsoMaster_Old As Visio.Master
Dim vsoGraphicItem As GraphicItem
Dim vsoGraphicItem_Old As Visio.GraphicItem
Set vsoMaster = ActiveDocument.Masters.AddEx(visTypeDataGraphic)
Set vsoMasterCopy = vsoMaster.Open
Set vsoMaster_Old = ActiveDocument.Masters("old_master_name")
Set vsoGraphicItem_Old = vsoMaster_Old.GraphicItems(1)
Set vsoGraphicItem = vsoMasterCopy.GraphicItems.AddCopy(vsoGraphicItem_Old)
vsoGraphicItem.SetExpression visGraphicExpression, "new_data_field_name"
vsoGraphicItem.PositionHorizontal = visGraphicLeft
vsoMasterCopy.DataGraphicHidesText = True;
vsoMasterCopy.Close
End Sub
O exemplo de código anterior presume que você saiba o nome do mestre de gráficos de dados existente que contém um ou mais itens gráficos que você deseja adicionar ao novo mestre, bem como as identificações de um ou mais itens gráficos que você deseja adicionar ao mestre. É possível determinar o nome de um mestre de gráficos de dados existente movendo o mouse sobre o mestre no painel de tarefas Gráficos de Dados. Também é possível definir nomes e identificações para os mestres iterando na coleção Masters no documento atual, conforme exibido no código a seguir.
For intCounter = 1 To ActiveDocument.Masters.Count
If ActiveDocument.Masters(intCounter).Type = visTypeDataGraphic Then
Debug.Print ActiveDocument.Masters(intCounter).Name, ActiveDocument.Masters(intCounter).ID
End If
Next
Da mesma forma, você pode iterar por meio da coleção GraphicItems de um mestre para determinar os valores das propriedades ID e Tag de um item gráfico existente, conforme mostrado no exemplo a seguir. A propriedade Tag é uma cadeia de caracteres que o Visio não utiliza. Está vazio por padrão. Porém, é possível definir seu valor para facilitar a identificação de itens gráficos individuais programaticamente.
For intCounter = 1 To (vsoMaster_Old.GraphicItems.Count)
Debug.Print vsoMaster_Old.GraphicItems(intCounter).ID, oldMaster.GraphicItems(intCounter).Tag
Next
Para ver um exemplo de código que mostra como personalizar os gráficos de dados de forma programática, baixe o SDK do Visio e consulte a Biblioteca de Exemplos de Código.
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.