Udostępnij za pośrednictwem


Przewodnik: proste powiązanie danych w projekcie dodatku VSTO

Dane można powiązać z kontrolkami hosta i kontrolkami windows Forms w projektach dodatków VSTO. W tym przewodniku pokazano, jak dodać kontrolki do dokumentu programu Microsoft Office Word i powiązać kontrolki z danymi w czasie wykonywania.

Dotyczy: informacje w tym temacie dotyczą projektów dodatków VSTO dla programu Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

W instruktażu przedstawiono następujące zagadnienia:

  • Dodawanie elementu ContentControl do dokumentu w czasie wykonywania.

  • Utworzenie kontrolki BindingSource łączącej kontrolkę z wystąpieniem zestawu danych.

  • Umożliwia użytkownikowi przewijanie rekordów i wyświetlanie ich w kontrolce.

Uwaga

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

Tworzenie nowego projektu

Pierwszym krokiem jest utworzenie projektu dodatku VSTO programu Word.

Aby utworzyć nowy projekt

  1. Utwórz projekt dodatku programu Word VSTO o nazwie Wypełnianie dokumentów z bazy danych przy użyciu języka Visual Basic lub C#.

    Aby uzyskać więcej informacji, zobacz How to: Create Office projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).

    Program Visual Studio otwiera plik ThisAddIn.vb lub ThisAddIn.cs i dodaje dokumenty wypełniania z projektu Bazy danych do Eksplorator rozwiązań.

  2. Jeśli projekt jest przeznaczony dla programu .NET Framework 4 lub .NET Framework 4.5, dodaj odwołanie do zestawu Microsoft.Office.Tools.Word.v4.0.Utilities.dll . To odwołanie jest wymagane do programowego dodawania kontrolek Windows Forms do dokumentu w dalszej części tego przewodnika.

Utwórz źródło danych

Użyj okna Źródła danych, aby dodać typowany zestaw danych do projektu.

Aby dodać typowany zestaw danych do projektu

  1. Jeśli okno Źródła danych nie jest widoczne, wyświetl je według na pasku menu, wybierając pozycję Wyświetl>inne źródła danych systemu Windows.>

  2. Wybierz pozycję Dodaj nowe źródło danych, aby uruchomić Kreatora konfiguracji źródła danych.

  3. Kliknij pozycję Baza danych, a następnie kliknij przycisk Dalej.

  4. Jeśli masz istniejące połączenie z bazą AdventureWorksLT danych, wybierz to połączenie i kliknij przycisk Dalej.

    W przeciwnym razie kliknij przycisk Nowa Połączenie ion i użyj okna dialogowego Dodawanie Połączenie ion, aby utworzyć nowe połączenie. Aby uzyskać więcej informacji, zobacz Dodawanie nowych połączeń.

  5. Na stronie Zapisz ciąg Połączenie ion na stronie Plik konfiguracji aplikacji kliknij przycisk Dalej.

  6. Na stronie Wybieranie obiektów bazy danych rozwiń węzeł Tabele i wybierz pozycję Klient (SalesLT).

  7. Kliknij przycisk Zakończ.

    Plik AdventureWorksLTDataSet.xsd jest dodawany do Eksplorator rozwiązań. Ten plik definiuje następujące elementy:

    • Typowany zestaw danych o nazwie AdventureWorksLTDataSet. Ten zestaw danych reprezentuje zawartość tabeli Customer (SalesLT) w bazie danych AdventureWorksLT.

    • A TableAdapter o nazwie CustomerTableAdapter. Tego elementu TableAdapter można używać do odczytywania i zapisywania danych w obiekcie AdventureWorksLTDataSet. Aby uzyskać więcej informacji, zobacz Omówienie funkcji TableAdapter.

      Oba te obiekty będą używane w dalszej części tego przewodnika.

Tworzenie kontrolek i wiązanie kontrolek z danymi

Interfejs do wyświetlania rekordów bazy danych w tym przewodniku jest podstawowy i jest tworzony bezpośrednio w dokumencie. Jeden ContentControl wyświetla jeden rekord bazy danych jednocześnie, a dwie Button kontrolki umożliwiają przewijanie rekordów w przód i z powrotem. Kontrolka zawartości używa elementu , BindingSource aby nawiązać połączenie z bazą danych.

Aby uzyskać więcej informacji na temat powiązań kontrolek z danymi, zobacz Wiązanie danych z kontrolkami w rozwiązaniach pakietu Office.

Aby utworzyć interfejs w dokumencie

  1. W klasie zadeklaruj ThisAddIn następujące kontrolki, aby wyświetlić i przewinąć tabelę CustomerAdventureWorksLTDataSet bazy danych.

    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. W metodzie ThisAddIn_Startup dodaj następujący kod, aby zainicjować zestaw danych, wypełnij zestaw danych informacjami z AdventureWorksLTDataSet bazy danych.

    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Dodaj następujący kod do metody ThisAddIn_Startup: Spowoduje to wygenerowanie elementu hosta, który rozszerza dokument. Aby uzyskać więcej informacji, zobacz Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania.

    Word.Document currentDocument = this.Application.ActiveDocument;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
  4. Zdefiniuj kilka zakresów na początku dokumentu. Te zakresy określają, gdzie należy wstawić tekst i umieścić kontrolki.

    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. Dodaj kontrolki interfejsu do wcześniej zdefiniowanych zakresów.

    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. Powiąż kontrolkę AdventureWorksLTDataSet zawartości z przy użyciu elementu BindingSource. W przypadku deweloperów języka C# dodaj dwa programy obsługi zdarzeń dla Button kontrolek.

    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. Dodaj następujący kod, aby przejść przez rekordy bazy danych.

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

Testowanie dodatku

Po otwarciu AdventureWorksLTDataSet programu Word kontrolka zawartości wyświetla dane z zestawu danych. Przewiń rekordy bazy danych, klikając przyciski Dalej i Poprzednie .

Aby przetestować dodatek VSTO

  1. Naciśnij klawisz F5.

    Kontrolka zawartości o nazwie customerContentControl jest tworzona i wypełniana danymi. Jednocześnie do projektu dodawany jest obiekt zestawu danych o nazwie adventureWorksLTDataSet i BindingSource nazwany customerBindingSource . Element ContentControl jest powiązany z obiektem BindingSource, który z kolei jest powiązany z obiektem zestawu danych.

  2. Kliknij przycisk Dalej i Poprzednie, aby przewinąć rekordy bazy danych.