Desenvolvimento - Office
Visual Studio 2005 e VSTO – Visual Studio Tools for Office
O pacote Office sem dúvida é o aplicativo que mais pessoas sabem utilizar no mundo! E porque não ter as minhas aplicações utilizando o Office como interface com o usuário? A principal vantagem é que a facilidade na utilização do sistema com certeza faria do seu usuário uma pessoa mais feliz.
por Alexandre TarifaPodemos criar soluções simples onde utilizamos o Word ou o Excel aumentando muito a produtividade para o desenvolvedor e o usuário consegue utilizar os recursos que ele já conhece para aperfeiçoar o sistema da forma que ele preferir.
Acredito que muitas pessoas perdem muito tempo criando relatórios e mais relatórios com infinitas combinações de agrupamento, totalizadores, etc... Sendo que um simples exportar para o Excel facilitaria muito.
Até mesmo vejo sistemas com Grids ultra avançados tentando ao máximo trazer os recursos do Excel... E por que não usar o Excel?
Claro que não estou querendo que todas as aplicações, ou todas as funcionalidades de um sistema devam ficar no Office, mas sem dúvida em diversos casos é uma boa dica.
O VSTO (Visual Studio Tools for Office) trás uma facilidade na criação de aplicações utilizando o .Net utilizando como interface o Office... Seria uma evolução do VBA.
Podemos criar as regras tanto em assemblys DLL´s como em Web Services, criando as aplicações inteligentes (Smart Clients).
Na prática
Pré-requisitos:
- Visual Studio 2005 (com o VSTO instalado)
- Office 2003 com Service Pack 2
Abra o Visual Studio 2005 e clique em File > New Project.
Configure a criação do projeto conforme a imagem acima e clique em OK.
Um nova janela é aberta onde vamos configurar o nome do documento ou utilizar um já existente, vamos criar um novo chamado Planilha e clique em OK.
O Visual Studio cria o projeto e da mesma maneira que trabalhamos no Asp.Net ou no Windows Forms, a planilha é aberta para adicionarmos controles dentro da planilha... cuidado: você não está delirando, a planilha Excel está dentro do Visual Studio.
Vamos neste exemplo adicionar uma listagem de produtos na planilha. A configuração do Data Source funciona da mesma maneira que no Windows Forms, abra a janela de Data Source (Shift + Alt + D), e na janela clique em Add New Data Source.
Selecione Database e clique em Next. Na próxima janela selecione o caminho do banco de dados (Neste exemplo vamos selecionar o banco Access NortWind).
Na próxima opção selecionamos o nome que será dado a chave Connection String no App.config, clique em Next. E a última estapa selecionamos as tabelas envolvidas no exemplo: Categories e Products e clique em Finish.
Com o DataSource configurado, vamos criar a lista de produtos, é uma tarefa muito simples. Na janela de DataSources, selecione com o mouse Products e arraste para a planilha na primeira célula da planilha.
Execute a aplicação (F5) e a planilha é aberta com a listagem.
Vamos então adicionar um botão na planilha e neste botão abriremos um formulário com uma lista de categorias, e de acordo com a categoria selecionada, será filtrado os valores da planilha, ou seja, interagimos um Windows Form com uma planilha Excel.
Na Toolbar arraste um botão na planilha, conforme abaixo:
No Solution Explorer clique com o botão direito do mouse sobre o projeto, Add> New Item e selecione conforme abaixo e clique em Add, assim teremos o formulário criado.
Selecione na ToolBox um ListBox e arraste para o formulário. Selecione a Smart Tag e habilite use Data Bound Items.
Selecione em DataSource a tabela de Categories, conforme abaixo:
Em Display Member - CategoryName e Value Member - CategoryID. Com isso definimos que o campo a ser exibido ao usuário será a descrição, e o valor usado como chave será o ID.
Dê um duplo clique sobre o ListBox e será exibido o código fonte da aplicação. Antes de iniciar a programação do evento vamos criar uma propriedade pública para a passagem do valor selecionado para a planilha.
Private _id As Integer Public Property Id() As Integer Get Return _id End Get Set(ByVal value As Integer) _id = value End Set End Property
Agora no evento SelectedIndexChanged adicione o código para atribuir o valor:
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Me.Id = ListBox1.SelectedValue Me.Close() End Sub
Para finalizar basta o código no botão que adicionamos na planilha. Abra a planilha e dê um duplo clique no botão para codificarmos o evento click. Adicione o seguinte código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm As New Categoria frm.ShowDialog() ProductsBindingSource.Filter = "CategoryID = " & frm.Id End Sub
Veja que recuperamos o valor do ID selecionado, e passamos na propriedade Filter do controles BindingSource que é criado quando utilizamos os recursos de DataSource. Execute a aplicações, clique no botão e selecione uma categoria. Note que os produtos são filtrados.
Conclusão: O .Net nos oferece muitas possibilidades de soluções... criar aplicações fáceis para o usuário faz com que o tempo de treinamento seja reduzido e a aplicação fique muito mais intuitiva. O Produto VSTO é muito grande, este artigo foi apenas um exemplo simplista desta tecnologia. O site MSDN (www.msdn.com.br) trás muito material sobre este assunto.
- Data Bars para MS-AccessAccess
- Funcionalidades do Office usando Visual Studio for Office – Parte 3C#
- Funcionalidades do Office usando Visual Studio for Office - Parte 2C#
- Estenda as funcionalidades do Office com o Visual Studio for OfficeC#
- Como evitar processos pendurados na automação do ExcelOffice