Поделиться через


Пошаговое руководство. Простая привязка данных в проекте уровня приложения

Обновлен: Июль 2008

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

  • Проекты уровня приложения

Версия Microsoft Office

  • Word 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

Начиная с Visual Studio 2008 с пакетом обновления 1 (SP1), можно привязать данные к элементам управления ведущего приложения и Windows Forms в проектах уровня приложения. В этом пошаговом руководстве демонстрируется добавление элементов управления в документ Microsoft Office Word и привязка элементов управления к данным во время выполнения.

В этом пошаговом руководстве представлены следующие задачи:

  • Добавление объекта ContentControl в документ во время выполнения.

  • Создание объекта BindingSource, соединяющего элемент управления с экземпляром набора данных.

  • Предоставление пользователю возможности пролистывать записи и просматривать их в элементе управления.

Cc668208.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Для выполнения примеров этого пошагового руководства необходимы следующие компоненты:

Создание нового проекта

Для начала следует создать проект надстройки Word.

Создание нового проекта

  • Создайте проект Надстройка Word 2007 с именем Заполнение документов данными из базы данных в Visual Basic или C#.

    Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.

    Visual Studio откроет файл ThisAddIn.vb или ThisAddIn.cs и добавит проект Заполнение документов данными из базы данных в обозреватель решений.

Создание источника данных

Чтобы добавить в проект типизированный набор данных, используйте окно Источники данных.

Добавление типизированного набора данных в проект

  1. В меню Данные выберите команду Добавить новый источник данных.

    Откроется Мастер настройки источника данных.

  2. Щелкните База данных и нажмите кнопку Далее.

  3. Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.

    В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение. Дополнительные сведения см. в разделе Практическое руководство. Создание подключений к базам данных SQL Server.

  4. На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.

  5. На странице Выбор объектов базы данных разверните узел Таблицы и выберите Customer (SalesLT).

  6. Нажмите кнопку Готово.

    Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений. Этот файл определяет следующие элементы:

    • Типизированный набор данных с именем AdventureWorksLTDataSet. Этот набор данных представляет содержимое таблицы Customer (SalesLT) в базе данных AdventureWorksLT.

    • Адаптер таблиц TableAdapter с именем CustomerTableAdapter. Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet. Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.

    Далее в пошаговом руководстве используются оба эти объекта.

Создание элементов управления и их привязка к данным

Интерфейс для просмотра записей базы данных в данном пошаговом руководстве является очень простым и создается внутри документа. Объект единовременно отображает ContentControl одну запись базы данных и два элемента управления Button, которые позволяют пролистывать записи назад и вперед. Элемент управления содержимым использует BindingSource для связи с базой данных.

Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления.

Создание интерфейса в документе

  1. В классе ThisAddIn объявите следующие элементы управления для отображения и прокрутки таблицы Customer базы данных AdventureWorksLTDataSet.

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    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 добавьте следующий код для инициализации набора данных, заполнении набора данных сведениями из базы данных AdventureWorksLTDataSet.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Добавьте следующий код в метод ThisAddIn_Startup. Этот код создает ведущий элемент, расширяющий документ. Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.

    Dim currentDocument As Word.Document = Me.Application.ActiveDocument
    Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
    Word.Document currentDocument = this.Application.ActiveDocument;
    Document extendedDocument = currentDocument.GetVstoObject();
    
  4. Определите несколько диапазонов в начале документа. Эти диапазоны указывают место вставки текста и размещения элементов управления.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    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. Добавьте элементы управления интерфейса для диапазонов, заданных на предыдущем этапе.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl( _
        range3, _
        "richTextContentControl1")
    
    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. Свяжите элемент управления содержимым AdventureWorksLTDataSet, используя BindingSource. При использовании языка C# также необходимо добавить два обработчика событий для элементов управления Button.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add( _
        "Text", _
        Me.customerBindingSource, _
        "CompanyName", _
        True, _
        Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    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. Добавьте следующий код для перемещения по записям базы данных.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Проверка надстройки

После запуска Word элемент управления содержимым отображает данные из набора данных AdventureWorksLTDataSet. Просмотрите записи базы данных, нажимая кнопки Далее и Назад.

Проверка надстройки

  1. Нажмите клавишу F5.

    Создается элемент управления содержимым с именем customerContentControl и заполняется данными. Одновременно в проект добавляется объект набора данных adventureWorksLTDataSet и BindingSource с именем customerBindingSource. ContentControl привязан к BindingSource, который, в свою очередь, связан с экземпляром набора данных.

  2. Просмотрите записи базы данных, нажимая кнопки Далее и Назад.

См. также

Задачи

Практическое руководство. Заполнение листов данными из базы данных

Практическое руководство. Заполнение документов данными из базы данных

Практическое руководство. Заполнение документов данными из служб

Практическое руководство. Заполнение документов данными из объектов

Практическое руководство. Прокрутка записей базы данных на листе

Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения

Пошаговое руководство. Простая привязка данных в проекте уровня документа

Пошаговое руководство. Сложная привязка данных в проекте уровня документа

Практическое руководство. Заполнение документов данными из объектов

Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения

Основные понятия

Привязка данных к элементам управления

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Общие сведения об источниках данных

Общие сведения об отображении данных

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Общие сведения о подключении к данным в Visual Studio

Ссылки

Общие сведения о компоненте BindingSource

Другие ресурсы

Данные в решения Microsoft Office

Журнал изменений

Дата

Изменения

Причина

Июль 2008

Добавленный раздел.

Изменение функции SP1.