Compartilhar via


Demonstra Passo a passo: Vinculação de dados simples no projeto de suplemento VSTO

Você pode vincular dados a controles de host e controles do Windows Forms em projetos de suplemento VSTO. Este passo a passo demonstra como adicionar controles a um documento do Microsoft Office Word e vincular os controles a dados em tempo de execução.

Aplica-se a: As informações neste tópico se aplicam a projetos de suplemento VSTO para Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Este passo a passo ilustra as seguintes tarefas:

  • Adicionando um a um ContentControl documento em tempo de execução.

  • Criando um que conecta o controle a uma instância de um BindingSource conjunto de dados.

  • Permitindo que o usuário role pelos registros e os exiba no controle.

Observação

Seu computador pode mostrar diferentes nomes ou locais 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, confira Personalizar o IDE.

Pré-requisitos

Você precisará dos seguintes componentes para concluir este passo a passo:

Crie um novo projeto

A primeira etapa é criar um projeto de suplemento VSTO do Word.

Criar um novo projeto

  1. Crie um projeto de suplemento VSTO do Word com o nome Preenchendo documentos de um banco de dados, usando Visual Basic ou C#.

    Para obter mais informações, consulte Como: Criar projetos do Office no Visual Studio.

    O Visual Studio abre o arquivo ThisAddIn.vb ou ThisAddIn.cs e adiciona o Preenchendo documentos de um projeto de banco de dados ao Gerenciador de Soluções.

  2. Se o seu projeto tem como alvo o .NET Framework 4 ou o .NET Framework 4.5, adicione uma referência ao assembly Microsoft.Office.Tools.Word.v4.0.Utilities.dll Essa referência é necessária para adicionar programaticamente controles do Windows Forms ao documento posteriormente nesta explicação passo a passo.

Criar uma fonte de dados

Use a janela Fontes de Dados para adicionar um conjunto de dados digitado ao seu projeto.

Para adicionar um conjunto de dados tipado ao projeto

  1. Se a janela Fontes de Dados não estiver visível, exiba-a por, na barra de menus, escolher Exibir>Outras Fontes de Dados do Windows.>

  2. Escolha Adicionar Nova Fonte de Dados para iniciar o Assistente de Configuração de Fonte de Dados.

  3. Clique em banco de dados e, em seguida, clique em Avançar .

  4. Se você tiver uma conexão existente com o AdventureWorksLT banco de dados, escolha essa conexão e clique em Avançar.

    Caso contrário, clique em Nova Conexão e use a caixa de diálogo Adicionar Conexão para criar a nova conexão. Para obter mais informações, confira Adicionar novas conexões.

  5. Na página Salvar a Cadeia de Conexão no Arquivo de Configuração do Aplicativo, clique em Avançar.

  6. Na página Escolher Objetos de Banco de Dados, expanda Tabelas e selecione Cliente (SalesLT).

  7. Clique em Concluir.

    O arquivo AdventureWorksLTDataSet.xsd é adicionado ao Gerenciador de Soluções. Esse arquivo define os seguintes itens:

    • Um conjunto de dados digitado chamado AdventureWorksLTDataSet. Esse conjunto de dados representa o conteúdo da tabela Customer (SalesLT) no banco de dados AdventureWorksLT.

    • Um TableAdapter chamado CustomerTableAdapter. Este TableAdapter pode ser usado para ler e gravar dados no AdventureWorksLTDataSet. Para obter mais informações, consulte Visão geral do TableAdapter.

      Você usará esses dois objetos mais adiante nesta explicação passo a passo.

Criar controles e vincular controles a dados

A interface para exibir registros de banco de dados neste passo a passo é básica e é criada dentro do documento. Um ContentControl exibe um único registro de banco de dados por vez e dois Button controles permitem que você role para frente e para trás pelos registros. O controle de conteúdo usa um BindingSource para se conectar ao banco de dados.

Para obter mais informações sobre como vincular controles a dados, consulte Vincular dados a controles em soluções do Office.

Para criar a interface no documento

  1. ThisAddIn Na classe, declare os seguintes controles para exibir e rolar pela Customer tabela do banco de AdventureWorksLTDataSet dados.

    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. ThisAddIn_Startup No método, adicione o código a seguir para inicializar o conjunto de dados, preencha o conjunto de dados com informações do banco de AdventureWorksLTDataSet dados.

    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Adicione o seguinte código ao ThisAddIn_Startup método. Isso gera um item de host que estende o documento. Para obter mais informações, consulte Estender documentos do Word e pastas de trabalho do Excel em suplementos VSTO em tempo de execução.

    Word.Document currentDocument = this.Application.ActiveDocument;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
  4. Defina vários intervalos no início do documento. Esses intervalos identificam onde inserir texto e colocar controles.

    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Adicione os controles de interface aos intervalos definidos anteriormente.

    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. Vincule o controle de conteúdo a AdventureWorksLTDataSet usando o BindingSource. Para desenvolvedores de C#, adicione dois manipuladores de eventos para os Button controles.

    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Adicione o código a seguir para navegar pelos registros do banco de dados.

    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Testar o suplemento

Quando você abre o AdventureWorksLTDataSet Word, o controle de conteúdo exibe dados do conjunto de dados. Percorra os registros do banco de dados clicando nos botões Avançar e Anterior .

Para testar o suplemento VSTO

  1. Pressione F5.

    Um controle de conteúdo chamado customerContentControl é criado e preenchido com dados. Ao mesmo tempo, um objeto de conjunto de dados nomeado e um BindingSource nomeado adventureWorksLTDataSetcustomerBindingSource são adicionados ao projeto. O ContentControl está vinculado ao , que, por sua vez, está vinculado ao BindingSourceobjeto do conjunto de dados.

  2. Clique nos botões Avançar e Anterior para percorrer os registros do banco de dados.