Passo a passo: associar dados a controles em um painel de ações do Word
Importante
O recurso Ações foi desativado no Office 2024.
Esse recurso só está disponível nas seguintes versões do Office:
- Microsoft 365
- Office LTSC Professional Plus 2021
- Office LTSC Standard 2021
- Office Professional Plus 2016, 2019
- Office Standard 2016, 2019
Este passo a passo demonstra a associação de dados aos controles em um painel de ações no Word. Os controles demonstram uma relação mestre/detalhe entre tabelas em um banco de dados do SQL Server.
Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento para o Word. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e pelo tipo de projeto.
Este passo a passo ilustra as seguintes tarefas:
Criando um painel de ações com controles do Windows Forms associados a dados.
Usando uma relação mestre/detalhe para exibir dados nos controles.
Mostrar o painel ações quando o aplicativo for aberto.
Observação
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizar o IDE do Visual Studio.
Pré-requisitos
Você precisa dos seguintes componentes para concluir este passo a passo:
Uma edição do Visual Studio que inclui as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte Configurar um computador para desenvolver soluções do Office.
Word 2013 ou Word 2010 .
Acesso a um servidor com o banco de dados de exemplo do Northwind SQL Server.
Permissões para ler e gravar no banco de dados do SQL Server.
Criar o projeto
A primeira etapa é criar um projeto do Documento do Word.
Para criar um novo projeto
Crie um projeto do Documento do Word com o nome Painel de Ações do Meu Word. Nesse assistente, selecione Criar um documento.
Para obter mais informações, consulte Como criar projetos do Office no Visual Studio.
O Visual Studio abre o novo documento do Word no designer e adiciona o projeto Painel Minhas Ações do Word ao Gerenciador de Soluções.
Adicionar controles ao painel ações
Para este passo a passo, você precisa de um controle de painel de ações que contenha controles do Windows Forms associados a dados. Adicione uma fonte de dados ao projeto e arraste os controles da janela Fontes de Dados para o controle do painel de ações.
Para adicionar um controle de painel de ações
Selecione o projeto painel Minhas Ações do Word no Gerenciador de Soluções.
No menu Project, clique em Adicionar Novo Item.
Na caixa de diálogo Adicionar Novo Item, selecione Controle do Painel de Ações, nomeie-o ActionsControl e clique em Adicionar.
Para adicionar uma fonte de dados ao projeto
Se a janela Fontes de Dados não estiver visível, exiba-a na barra de menus, escolhendo Exibir>Outras janelas>Fontes de dados.
Observação
Se mostrar fontes de dados não estiver disponível, clique no documento do Word e verifique novamente.
Clique em Adicionar nova fonte de dados para iniciar o assistente de configuração da fonte de dados .
Selecione Banco de dados e clique em Avançar.
Selecione uma conexão de dados com o banco de dados de exemplo do SQL Server Northwind, ou adicione uma nova conexão usando o botão Nova Conexão.
Clique em Próximo.
Desmarque a opção para salvar a conexão se ela estiver selecionada e clique em Avançar.
Expanda o nó Tabelas na janela Objetos do banco de dados.
Marque a caixa de seleção ao lado das tabelas Fornecedores e Produtos.
Clique em Concluir.
O assistente adiciona a tabela Fornecedores e a tabela Produtos à janela Fontes de dados. Ele também adiciona um conjunto de dados tipificado ao seu projeto que está visível no Gerenciador de Soluções.
Para adicionar controles do Windows Forms associados a dados a um controle de painel de ações
Na janela de Fontes de Dados , expanda a tabela Fornecedores.
Clique na seta suspensa do nó Nome da Empresa e selecione ComboBox.
Arraste CompanyName da janela Fontes de Dados para o controle do Painel de Ações.
Um controle ComboBox é criado no painel de controle de ações. Ao mesmo tempo, um BindingSource chamado
SuppliersBindingSource
, um adaptador de tabela e um DataSet são adicionados ao projeto na bandeja de componentes.Selecione
SuppliersBindingNavigator
na bandeja de Componentes e pressione Excluir. Você não usará oSuppliersBindingNavigator
neste passo a passo.Observação
Excluir o
SuppliersBindingNavigator
não remove todo o código que foi gerado para ele. Você pode remover esse código.Mova a caixa de combinação para que ela ficar embaixo do rótulo e altere a propriedade Tamanho para 171, 21.
Na janela de Fontes de Dados, expanda a tabela Produtos que é uma tabela filha da tabela Fornecedores.
Clique na seta suspensa no nó ProductName e selecione ListBox.
Arraste ProductName para o controle do painel de ações.
Um controle ListBox é criado no controle do painel de ações. Ao mesmo tempo, um BindingSource chamado
ProductBindingSource
e um adaptador de tabela são adicionados ao projeto na bandeja de componentes.Mova a caixa de listagem para que ela ficar embaixo do rótulo e altere a propriedade Tamanho para 171,95.
Arraste um Button da Caixa de ferramentas para o controle do painel de ações e coloque-o abaixo da caixa de listagem.
Clique com o botão direito do mouse no Button, clique em Propriedades no menu de atalho e altere as propriedades a seguir.
Propriedade Valor Nome inserir Text inserir Redimensione o controle do usuário para ajustar os controles.
Configurar a fonte de dados
Para configurar a fonte de dados, adicione código ao evento Load do controle do painel de ações para preencher o controle com dados do DataTablee defina as propriedades DataSource e DataMember para cada controle.
Para carregar o controle com dados
No manipulador de eventos Load da classe
ActionsControl
, adicione o código a seguir.No C#, você deve anexar o manipulador de eventos ao evento Load. Você pode colocar esse código no construtor
ActionsControl
, após a chamada paraInitializeComponent
. Para obter mais informações sobre como criar manipuladores de eventos, consulte Como criar manipuladores de eventos em projetos do Office.this.Load += new EventHandler(ActionsControl_Load);
Para definir as propriedades de associação de dados dos controles
Selecione o controle
CompanyNameComboBox
.Na janela Propriedades, clique no botão à direita da propriedade DataSource e selecione suppliersBindingSource.
Clique no botão à direita da propriedade DisplayMember e selecione CompanyName.
Expanda a propriedade DataBindings, clique no botão à direita da propriedade Texto e selecione Nenhum.
Selecione o controle
ProductNameListBox
.Na janela Propriedades, clique no botão à direita da propriedade DataSource e selecione productsBindingSource.
Clique no botão à direita da propriedade DisplayMember e selecione ProductName.
Expanda a propriedade DataBindings, clique no botão à direita da propriedade SelectedValue e selecione Nenhum.
Adicionar um método para inserir dados em uma tabela
A próxima tarefa é ler os dados dos controles associados e preencher uma tabela no documento do Word. Primeiro, crie um procedimento para formatar os títulos na tabela e adicione o método AddData
para criar e formatar uma tabela do Word.
Para formatar os títulos da tabela
Na classe
ActionsControl
, crie um método para formatar os títulos da tabela.
Para criar a tabela
Na classe
ActionsControl
, escreva um método que criará uma tabela se ainda não existir e adicione dados do painel ações à tabela.private void AddData(System.Data.DataRow row, string companyName) { object missing = System.Type.Missing; // Create a table if it doesn't already exist. if (Globals.ThisDocument.Tables.Count == 0) { try { // Create a table. Microsoft.Office.Interop.Word.Table tbl = Globals.ThisDocument.Tables.Add (Globals.ThisDocument.Application.Selection.Range, 1, 4, ref missing, ref missing); // Insert headings. SetHeadings(tbl.Cell(1, 1), "Company Name"); SetHeadings(tbl.Cell(1, 2), "Product Name"); SetHeadings(tbl.Cell(1, 3), "Quantity"); SetHeadings(tbl.Cell(1, 4), "Unit Price"); } catch (Exception ex) { MessageBox.Show("Problem creating Products table: " + ex.Message, "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error); } } // Add data from data row to the table. Microsoft.Office.Interop.Word.Selection selection = Globals.ThisDocument.Application.Selection; if (selection.Tables.Count > 0) { Microsoft.Office.Interop.Word.Row newRow = Globals.ThisDocument.Tables[1].Rows.Add(ref missing); newRow.Range.Font.Bold = 0; newRow.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft; newRow.Cells[4].Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight; newRow.Cells[1].Range.Text = companyName; newRow.Cells[2].Range.Text = row["ProductName"].ToString(); newRow.Cells[3].Range.Text = row["QuantityPerUnit"].ToString(); newRow.Cells[4].Range.Text = Math.Round(Convert.ToDouble(row["UnitPrice"])).ToString("#,##0.00"); } else { MessageBox.Show("Cursor must be within a table.", "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Para inserir texto em uma tabela do Word
Adicione o código a seguir ao manipulador de eventos Click do botão Inserir.
private void Insert_Click(object sender, System.EventArgs e) { System.Data.DataTable tbl = northwindDataSet.Products; System.Data.DataRow[] rows; // Check if a product is selected. if (this.productNameListBox.SelectedIndex >= 0) { System.Data.DataRowView productRow = (System.Data.DataRowView)this.productNameListBox.SelectedItem; string product = productRow.Row["ProductName"].ToString(); string company = this.companyNameComboBox.Text; // Return the data row from the selected product. rows = tbl.Select("[ProductName] = '" + product.Replace("'", "''") + "'"); this.AddData(rows[0], company); } else { MessageBox.Show("Please select a product.", "Actions Pane", MessageBoxButtons.OK); } }
No C#, você deve criar um manipulador de eventos para o evento Click do botão. Você pode colocar esse código no manipulador de eventos Load da classe
ActionsControl
.this.Insert.Click += new EventHandler(Insert_Click);
Mostrar o painel ações
O painel ações fica visível depois que os controles são adicionados a ele.
Para mostrar o painel ações
No do Gerenciador de Soluções, clique com o botão direito do mouse em ThisDocument.vb ou ThisDocument.cse clique em Exibir Código no menu de atalho.
Crie uma nova instância do controle na parte superior da classe
ThisDocument
para que ele se pareça com o exemplo a seguir.Adicione código ao manipulador de eventos Startup de
ThisDocument
para que ele se pareça com o exemplo a seguir.
Testar o aplicativo
Agora você pode testar seu documento para verificar se o painel de ações aparece quando o documento é aberto. Teste a relação mestre/detalhe nos controles no painel de ações e verifique que os dados são preenchidos em uma tabela do Word quando o botão Inserir for clicado.
Para testar seu documento
Pressione F5 para executar o projeto.
Confirme se o painel ações está visível.
Selecione uma empresa na caixa de combinação e verifique se os itens na caixa de listagem Produtos mudam.
Selecione um produto, clique em Inserir no painel ações e verifique se os detalhes do produto foram adicionados à tabela no Word.
Insira produtos adicionais de várias empresas.
Próximas etapas
Este passo a passo mostra as noções básicas de associação de dados a controles em um painel de ações no Word. Aqui estão algumas tarefas que podem vir a seguir:
Associando dados a controles no Excel. Para obter mais informações, consulte Passo a passo: associar dados a controles em um painel de ações do Excel.
Implantando o projeto. Para obter mais informações, consulte Implantar uma solução do Office usando o ClickOnce.