Integrar o Visio 2007 e o Microsoft SQL Server 2005 Resumo: Saiba como pode integrar o Microsoft Office Visio 2007 com o Microsoft SQL Server 2005 para criar diagramas orientados por dados a partir de dados SQL armazenados. Visimation, Inc. Janeiro de 2007 Aplicável a: Microsoft Office Visio 2007, Microsoft SQL Server 2005 Índice Introdução Descrição Geral Aceder aos Dados do SQL Server Analysis Services Utilizando o Assistente Selector de Dados Utilizar Código de Automação para Gerar um Diagrama do Visio a partir de Dados de Forma e de Conectividade Armazenados em Tabelas SQL Conclusão Acerca do Autor Recursos Adicionais Descrição Geral Este artigo centra-se nas técnicas de integração específicas do Microsoft Office Visio 2007 e do Microsoft SQL Server 2005. O artigo Integrar o Visio 2007: Introdução à Integração do Visio com Outros Programas Microsoft apresenta uma análise geral da integração de dados entre o Office Visio 2007 e outras aplicações Microsoft. Um exemplo da integração de dados do SQL Server Reporting Services no Visio 2007 é apresentado no artigo Integrar o Visio 2007 e o MOM, Exchange e Reporting Services. Aceder a Dados do SQL Server Analysis Services utilizando o Assistente Selector de Dados O Visio 2007 permite-lhe ligar formas do Visio a dados gerados fora do Visio. É possível capturar um grande volume de dados numa base de dados do SQL Analysis Services. A possibilidade de analisar tais dados num contexto visual valoriza ainda mais a importância dos dados. No exemplo abaixo, os dados de vendas armazenados no cubo Analysis Services são utilizados na geração de um Diagrama Dinâmico do Visio para que possam ser explorados e melhorados graficamente. No Visio pode utilizar dois itens de menu no menu Dados para colocar os dados de SQL na janela Dados Externos do Visio. Pode utilizar o comando Ligar Dados às Formas para se ligar a uma base de dados relacional do Microsoft SQL Server. A ligação a dados de SQL é muito semelhante à ligação a outros tipos de dados. Estão disponíveis exemplos no artigo Integrar o Visio 2007: Introdução à Integração do Visio Com Outros Programas Microsoft. Figura 1. A caixa de diálogo Selector de Dados É apresentada uma caixa de diálogo Selector de Dados diferente se seleccionar Inserir Diagrama Dinâmico (também no menu Dados). A diferença é mostrada na Figura 2. Figura 2. A caixa de diálogo Selector de Dados para Diagramas Dinâmicos Repare no comando adicional no menu Dados, Microsoft SQL Server Analysis Services. Também pode utilizar este comando para ligar a dados de SQL (e a outros tipos de dados). É criado automaticamente um Diagrama Dinâmico baseado nos dados. Se seleccionar Microsoft SQL Server Analysis Services e, em seguida, clicar em Seguinte, é apresentada a caixa de diálogo Assistente de Ligação de Dados, como mostrado na Figura 3. Especifique o computador com o SQL Server que contém os dados do Analysis Services e quaisquer credenciais de início de sessão necessárias. Figura 3. A caixa de diálogo Assistente de Ligação de Dados Depois de especificar o computador com o SQL Server, é apresentada uma lista de conjuntos de dados do Analysis Services. A Figura 4 mostra um exemplo. Neste exemplo, Internet Sales encontra-se seleccionado. Figura 4. Seleccionar a base de dados e a tabela dos dados do Analysis Services Utilize o Visio para capturar o conjunto de dados num ficheiro. Se o ficheiro de dados for actualizado e existir um desenho do Visio ligado ao ficheiro, pode actualizar os dados no Visio sem ter de ligar novamente o desenho. As opções na página Guarde o Ficheiro de Ligação de Dados e Termine do Assistente de Ligação de Dados (mostrado na Figura 5) permitem-lhe especificar um ficheiro para guardar os dados. Quando clica em Concluir, é criado um Diagrama Dinâmico do Visio a partir dos dados seleccionados. Figura 5. Página Guarde o Ficheiro de Ligação de Dados e Termine A Figura 6 mostra um Diagrama Dinâmico do Visio criado a partir dos dados do Analysis Services. Figura 6. Diagrama Dinâmico Inicial do Visio Agora, pode explorar os dados. Clique com o botão direito do rato na forma dinâmica de nível superior ou seleccione a forma e escolha uma categoria na lista Adicionar Categoria à esquerda no ecrã. A Figura 7 mostra o resultado quando selecciona Customer:Gender. Figura 7. Diagrama Dinâmico que mostra os dados por sexo Pode melhorar visualmente o desenho aplicando uma forma a cada nó do diagrama. No lado esquerdo da imagem, em Acções, seleccione a forma e, em seguida, seleccione Aplicar Forma. A Figura 8 mostra o desenho resultante quando adiciona outra categoria para mostrar o Rendimento Anual e, em seguida, utiliza Aplicar Forma. Figura 8. O desenho terminado Nesta fase, os valores relativos dos números não processados não são fáceis de ver. Para adicionar um valor ao desenho e realçar os valores relativos dos números, modifique os gráficos de dados apresentados com as formas dinâmicas para visualizar uma imagem de medidor em vez do número propriamente dito. Figura 9. A caixa de diálogo Editar Gráfico de Dados Para modificar os gráficos de dados e visualizar uma imagem de medidor 1. No lado esquerdo da imagem, em Acções, clique em Outras Acções e, em seguida, seleccione Editar Gráfico de Dados. 2. Seleccione o item Internet Sales-Order Quantity e, em seguida, elimine-o. 3. Clique em Novo Item e, em seguida, seleccione Barra de Dados. É apresentada a caixa de diálogo Nova Barra de Dados, como mostrado na Figura 10. Figura 10. A caixa de diálogo Nova Barra de Dados 4. Na lista Campo de dados, seleccione Internet Sales-Order Quantity. 5. Na lista Chamada, seleccione Velocímetro. 6. Como os dados podem ter um valor entre 0 e cerca de 60.000, na caixa Valor Máximo, escreva 62000. Estas selecções são também mostradas na Figura 10. 7. Clique em OK para fechar a caixa de diálogo Nova Barra de Dados. 8. Clique em OK para fechar a caixa de diálogo Editar Gráfico de Dados. O resultado final é apresentado na Figura 11. Figura 11. Modificar o gráfico de dados Utilizar Código de Automação para Gerar um Diagrama do Visio a partir de Dados da Forma e de Conectividade Armazenados em Tabelas SQL O artigo Integrar o Visio 2007 e o Access 2007 descreve como gerar um diagrama do Visio utilizando código de Automação em dados de formas e de conectividade armazenados numa base de dados do Microsoft Office Access 2007. Para obter documentação completa sobre o código listado no fim deste artigo, consulte o artigo indicado. Os segmentos de código deste artigo documentam apenas as diferenças a implementar para que este código de Automação funcione com uma base de dados de SQL. O código de exemplo gera um diagrama de Visio a partir de dados armazenados em tabelas de bases de dados do SQL. A base de dados contém duas tabelas: uma tabela Itens que contém informação sobre as formas a incluir no desenho e uma tabela Ligações que contém informação sobre a conectividade entre as formas. As formas são colocadas no desenho a partir de um modelo. É utilizada uma conexão dinâmica do Visio para ligar as formas no desenho de Visio. A localização das formas na página de desenho não é armazenada nas tabelas do Access. Alternativamente, utilize o método Layout no Visio para posicionar as formas na página de desenho. Existem campos nas tabelas que foram copiados para os Dados da Forma das formas. As formas utilizam esta informação para definirem o texto e as propriedades de forma. Vantagens do modelo do Visio A integração de capacidades nas formas como, por exemplo, Dados da Forma e campos de texto, reduz a quantidade de código necessário à criação de soluções automatizadas. Por exemplo, não necessita de código neste exemplo para visualizar texto nas formas porque o texto é processado pelos campos de texto definidos nas formas mestre. Também não necessita de definir a cor da forma porque a cor deriva do campo Estado da forma. As fórmulas de derivação da cor também são integradas nas formas. Figura 12. Modelo do Visio com formas pré-configuradas Figure 13. Desenho terminado que mostra uma forma seleccionada Modificar o Código de Exemplo para Activar a Leitura de Dados de SQL É necessário implementar duas alterações ao código de exemplo do Access para que seja possível aceder aos dados do SQL e não aos dados do Office Access 2007. Primeiro, altere a cadeia de ligação que referencia os dados de SQL. É a primeira cadeia de ligação como definido para o SQL. C# Copy Code private const string _ADOConnectionString = @"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=localhost\sqlexpress;Initial Catalog=WhitePaperSamples"; É a primeira cadeia de ligação como definido para o Access. C# Copy Code private const string _ADOConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};User Id=admin;Password=;"; Modificar o Método readData A segunda alteração afecta o método readData. No Access, o nome de ficheiro é transmitido como um argumento ao método readData. Tal não ocorre na versão SQL de readData mostrada abaixo. No exemplo do Access, a cadeia de ligação tem um marcador de posição que é preenchido com o nome de ficheiro do método readData. C# Copy Code private static bool readData( Visio.Document visioDocument) { bool itemsReadSuccessful = false; bool connectionsReadSuccessful = false; try { // Ligar Itens ao documento do Visio adicionando um conjunto de registo de // dados com as informações de ligação e de comando. visioDocument.DataRecordsets.Add( _ADOConnectionString, string.Format(_ADOSelectString, _ItemsTableName), 0, _ItemsTableName); _ItemsDataRecordsetIndex = visioDocument.DataRecordsets.Count; itemsReadSuccessful = true; // Ligar Ligações ao documento do Visio adicionando um conjunto de registo de // dados com as informações de ligação e de comando. visioDocument.DataRecordsets.Add( _ADOConnectionString, string.Format(_ADOSelectString, _ConnectionsTableName), 0, _ConnectionsTableName); _ConnectionsDataRecordsetIndex = visioDocument.DataRecordsets.Count; connectionsReadSuccessful = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } return (itemsReadSuccessful && connectionsReadSuccessful); } Conclusão As técnicas de ligação aos dados de SQL a partir do Visio 2007 são muito semelhantes às técnicas de ligação de dados do Microsoft Office Excel, Office Access e outras origens. Para mais informações e exemplos, consulte os seguintes artigos: Integrar o Visio 2007 e o Access 2007 Integrar o Visio 2007 e o Excel 2007 Integrar o Visio 2007: Introdução à Integração do Visio Com Outros Programas Microsoft Neste artigo, aprendeu a utilizar os Diagramas Dinâmicos do Visio para explorar visualmente os dados de um cubo SQL Analysis Services. Também viu um exemplo da utilização de código de Automação para gerar desenhos a partir de dados armazenados numa base de dados de SQL. Acerca do Autor Desde 1997 que a Visimation tem ajudado as empresas a melhorarem a sua produtividade, fornecendo ferramentas de software visual que simplificam as tarefas empresariais e técnicas e prestando um diversificado conjunto de serviços de consultoria para o Microsoft Office Visio enquanto plataforma de desenvolvimento rápido de programas de Automatização eficientes. Recursos Adicionais Para mais informações, consulte os seguintes recursos: Visio 2007: Software Development Kit Microsoft Office Developer Center: Visio Developer Portal Para mais informações sobre a integração do Visio 2007, consulte os seguintes artigos: Integrar o Visio 2007: Introdução à Integração do Visio Com Outros Programas Microsoft Integrar o Visio 2007 e o Access 2007 Integrar o Visio 2007 e o Active Directory Integrar o Visio 2007 e o Excel 2007 Integrar o Visio 2007 e o MOM, Exchange e Reporting Services Integrar o Visio 2007 e o Project 2007 Integrar o Visio 2007 e os Produtos e Tecnologias SharePoint