Partilhar via


Demonstra Passo a passo: Vincular dados a controles em um painel de ações do Word

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

Versão do Microsoft Office

  • Word 2007

  • Word 2003

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Esta explicação passo a passo demonstra dados vinculando a controles em um painel de ações no Microsoft Office Word.Os controles demonstram a relação mestre/detalhes entre tabelas em um SQL Servidor banco de dados.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criando um painel de ações com controles Windows Forms que são Ligados a dados.

  • Usar um relacionamento mestre/detalhes para exibir dados nos controles.

  • Mostrar o painel de ações quando o aplicativo é aberto.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações 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ê possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações do Visual Studio.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

  • Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).

  • O Microsoft Office Word 2003 ou Microsoft Office Word 2007.

  • Acessar a um servidor com o banco de dados de exemplo Northwind SQL Server.

  • Permissões para ler e gravar para o SQL Servidor banco de dados.

Ferramentas do Visual Studio para o Office é instalado por padrão com as versões listadas do Visual Studio.Para Marcar se ele está instalado, Marcar Instalando o Visual Studio Tools para Office.

Criando o projeto

A Primeiro etapa é criar um projeto de documento do Word.

Para criar um novo projeto

  • Criar um projeto de documento do Word com o nome meu painel de ações do Word.No assistente, Selecionar Criar um documento novo.

    For more information, see Como: Criar o Visual Studio Tools para projetos do Office.

    O Visual Studio abre o novo documento do Word no designer e adiciona o projeto de meu painel de ações do Word para Gerenciador de Soluções.

Adicionando controles para o painel de ações

Para esta explicação passo a passo, você precisa um controle de painel de ações que contém dados-Ligado à controles Windows Forms.Adicionar uma fonte de dados ao projeto e arraste controles partir a janela de Data Sources para o controle do painel de ações.

Para adicionar um Controlarar de painel de ações

  1. Selecionar o projeto de meu painel de ações do Word no Gerenciador de Soluções.

  2. No menu Project, clique em Add New Item.

  3. No Adicionar Novo Item caixa de diálogo, Selecionar De controle do painel de ações, nomeá-la ActionsControle, em seguida, clique em Adicionar.

Para adicionar uma Novo Origem de dados para o projeto

  1. Se a janela de Data Sources não estiver visível, clique em do Show Data Sources no menu Dados.

    Observação:

    Se Mostrar fontes de dados não está disponível, clique no documento do Word e, em seguida, Marcar novamente.

  2. Clique em Adicionar Nova Origem de Dados para iniciar o Fonte de Dados Configuration Assistente .

  3. Selecione Database e clique em Next.

  4. Selecionar uma conexão de dados ao exemplo a Northwind SQL Servidor banco de dados ou adicionar uma Novo conexão usando o botão de Novo conexão.

  5. Clique em Next.

  6. Desmarque a opção para salvar a conexão se for Selecionado e clique em Avançar de .

  7. Expandirir o nó de tabelas na janela banco de dados de objetos.

  8. Selecionar o Caixa de Marcar próximo ao Fornecedores e Produtos tabelas.

  9. Clique em Finish.

O assistente adiciona a tabela de Fornecedores e Produtos tabela para a janela de fontes de dados.Ele também adiciona um dataset tipado ao seu projeto que está visível no Gerenciador de Soluções.

Para adicionar controles de Windows Forms ligados a dados a um controle de painel de ações

  1. Na janela Dadosta Sources, Expandirir a tabela de fornecedores.

  2. Clique no Soltar - para baixo no nó nome da empresa e Selecionar Caixa de Combinação.

  3. Arraste CompanyName da janela de De fontes de dados de para o Controlarar do painel de ações.

    Um Controlarar de ComboBox é criado no Controlarar do painel de ações.Ao mesmo tempo, um BindingSource denominados SuppliersBindingSource, um adaptador de tabela e um DataSet são adicionados ao projeto na bandeja do componente.

  4. Selecionar SuppliersBindingNavigator na bandeja de Do componente de e Pressionarionar Excluir.Você não usará o SuppliersBindingNavigator nesta explicação passo a passo.

    Observação:

    Excluindo o SuppliersBindingNavigator não Remover Tudo o código que foi gerado por ele.Você pode remover esse código.

  5. Mover o Caixa de Combinação para que ele está sob o rótulo e alterar a propriedade de Tamanho para 171, 21.

  6. Na janela Dadosta Sources, Expandirir a tabela de De produtos que é um filho Dados tabela fornecedores.

  7. Clique no Soltar - para baixo no nó ProductName e Selecionar ListBox.

  8. Arraste ProductName para o Controlarar do painel de ações.

    Um Controlarar de ListBox é criado no Controlarar do painel de ações.Ao mesmo tempo, um BindingSourceProductBindingSource e um adaptador de tabela são adicionados ao projeto na bandeja do componente.

  9. Mover a caixa de listagem para que ele fique sob o rótulo e Alterar Propriedade de tamanho para 171,95.

  10. Arraste um Button de do Caixa de Ferramentas para o Controlarar de painel de ações e coloque-abaixo dCaixa de Listagem.

  11. Clique o Buttoncom o botão direito do mouse, clique em Propriedades no menu de atalho e alterar as propriedades a seguintes.

    Propriedade

    Value (Valor)

    Nome

    Inserir

    Texto

    Inserir

  12. Redimensionar o controle de usuário ajustar os controles.

Configuração Até a Origem de dados

Para configurar a Origem de dados, Adicionar código ao evento Load do Controlarar de painel de ações para preencher o Controlarar com dados da DataTablee definir as propriedades de DataSource para cada Controlarar e DataMember.

Para carregar o Controlarar com dados

  1. No manipulador de eventos da classe Load , ActionsControl Adicionar o código a seguir.

    Private Sub ActionsControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Load
    
        Me.SuppliersTableAdapter.Fill(Me.NorthwindDataSet.Suppliers)
        Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.Products)
    End Sub
    
    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers);
        this.productsTableAdapter.Fill(this.northwindDataSet.Products);
    }
    
  2. Em C#, você deve anexar o manipulador de eventos ao evento Load.Você pode colocar esse código no construtor ActionsControl , após a chamada para InitializeComponent.Para obter mais informações sobre como criar manipuladores de eventos, consulte Como: Criar manipuladores de eventos no Visual Studio Tools for Office.

    this.Load += new EventHandler(ActionsControl_Load);
    

Definir propriedades de vinculação de dados dos controles

  1. Selecione o controle CompanyNameComboBox.

  2. Na janela de A propriedades, clique no Botão Direito da propriedade de De fonte de dados de e Selecionar SuppliersBindingSource.

  3. Clique no Botão Direito do DisplayMember propriedade e Selecionar CompanyName.

  4. Expandira DataBindings propriedade, clique no Botão Direito do Texto propriedade e Selecionar Nenhum.

  5. Selecione o controle ProductNameListBox.

  6. Na janela de A propriedades, clique no Botão Direito da propriedade de De fonte de dados de e Selecionar ProductsBindingSource.

  7. Clique no Botão Direito do DisplayMember propriedade e Selecionar ProductName.

  8. Expandira DataBindings propriedade, clique no Botão Direito do SelectedValue propriedade e selecione Nenhum.

Adicionando um método para inserir dados em uma tabela

O Avançar tarefa é ler os dados dos controles Ligados e preencher uma tabela no seu documento do Word.Primeiro, crie um procedimento para formatar os títulos na tabela e, em seguida, Adicionar o método AddData para criar e formatar uma tabela do Word.

Para formatar os títulos de tabela

  • Na classe ActionsControl, Criar um método para formatar os títulos da tabela.

    Shared Sub SetHeadings(ByVal tblCell As Word.Cell, ByVal text As String)
    
        With tblCell.Range
            .Text = text
            .Font.Bold = True
            .ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter
        End With
    End Sub
    
    static void SetHeadings(Microsoft.Office.Interop.Word.Cell tblCell, string text)
    {
        tblCell.Range.Text = text;
        tblCell.Range.Font.Bold = 1;
        tblCell.Range.ParagraphFormat.Alignment = 
            Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
    }
    

Para criar a tabela

  • Na classe ActionsControl, Gravar um método que criará uma tabela se um ainda não existir e adicionar dados do painel de ações para a tabela.

    Private Sub AddData(ByVal row As System.Data.DataRow, ByVal companyName As String)
    
        ' Create a table if it doesn't already exist.
        If Globals.ThisDocument.Tables.Count = 0 Then
    
            Try
                ' Create a table. 
                Dim tbl As Word.Table = Globals.ThisDocument.Tables.Add( _
                    Globals.ThisDocument.Application.Selection.Range, 1, 4)
    
                ' 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 ex As Exception
                MessageBox.Show("Problem creating Products table: " & ex.Message, _
                    "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    
        ' Add data from data row to the table.
        Dim selection As Word.Selection = Globals.ThisDocument.Application.Selection
    
        If selection.Tables.Count > 0 Then
    
            Dim newRow As Word.Row = Globals.ThisDocument.Tables(1).Rows.Add()
            With newRow
                .Range.Font.Bold = False
                .Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
                .Cells(4).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight
                .Cells(1).Range.Text = companyName
                .Cells(2).Range.Text = row.Item("ProductName").ToString
                .Cells(3).Range.Text = row.Item("QuantityPerUnit").ToString
                .Cells(4).Range.Text = Math.Round(row.Item("UnitPrice"), 2)
            End With
    
        Else
            MessageBox.Show("Cursor must be within a table.", _
                "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
    
    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

  1. Adicionar o código a seguir ao manipulador de eventos Click do botão de De inserir.

    Private Sub Insert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Insert.Click
    
        Dim tbl As System.Data.DataTable = NorthwindDataSet.Products
        Dim rows() As System.Data.DataRow
    
        ' Check if a product is selected.
        If Not Me.ProductNameListBox.SelectedIndex < 0 Then
    
            Dim product As String = Me.ProductNameListBox.SelectedItem.Row.Item("ProductName")
            Dim company As String = Me.CompanyNameComboBox.Text
    
            ' Return the data row from the selected Product in the list box.
            rows = tbl.Select("[ProductName] = '" & product.Replace("'", "''") & "'")
    
            AddData(rows(0), company)
    
        Else
            MessageBox.Show("Please select a product.", "Actions Pane", MessageBoxButtons.OK)
        End If
    End Sub
    
    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);
        }
    }
    
  2. Em 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 da classe LoadActionsControl.

    this.Insert.Click += new EventHandler(Insert_Click);
    

Mostrando o painel de ações

O painel de ações fica visível depois que controles são adicionados a ele.

Para mostrar o painel de ações

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.vb ou ThisDocument.cse clique em Exibir Code no menu de atalho.

  2. Criar uma Novo instância do Controlarar na parte superior do ThisDocument classe para que fique semelhante ao exemplo a seguir.

    Dim actions As New ActionsControl
    
    private ActionsControl actions = new ActionsControl();
    
  3. Adicionar código ao manipulador de eventos de StartupThisDocument para que fique semelhante ao exemplo a seguir.

    Me.ActionsPane.Controls.Add(actions)
    
    this.ActionsPane.Controls.Add(actions);
    

Testando o aplicativo

Agora você pode testar seu documento para Verifique se o painel de ações é exibido quando o documento for aberto.Testar a relação mestre/detalhes nos controles no painel de ações e certifique-se de que dados são preenchidos em uma tabela do Word quando se clica no botão de inserir.

Para testar seu documento

  1. Pressionarionar F5 para executar seu projeto.

  2. Confirme se o painel de ações é visível.

  3. Selecionar uma empresa na caixa de combinação e verificar se os itens em Produtos Caixa de Listagem alterar.

  4. Selecionar um produto, clique em Inserir no painel de ações e verifique se os detalhes do produto foram adicionados à tabela no Word.

  5. Inserir Produtos adicionais de várias empresas.

Próximas etapas

Esta explicação passo a passo mostra as noções básicas de ligação de dados a controles em um painel de ações no Word.Aqui estão algumas tarefas que podem vie em seguida:

Consulte também

Tarefas

Como: Adicionar um painel de ações a documentos do Word

Conceitos

Visão geral painel Ações

Vinculando dados a controles