Exemplarische Vorgehensweise: Binden von Daten an Steuerelemente in einem Word-Aktionsbereich
In dieser exemplarischen Vorgehensweise wird die Datenbindung an Steuerelemente in einem Aktionsbereich in Word veranschaulicht. Die Steuerelemente zeigen eine Master/Detail-Beziehung zwischen Tabellen in einer SQL Server-Datenbank.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen eines Aktionsbereichs mit Windows Forms-Steuerelementen, die an Daten gebunden sind.
Verwenden einer Master-/Detailbeziehung zum Anzeigen von Daten in den Steuerelementen.
Zeigen Sie den Aktionsbereich an, wenn die Anwendung geöffnet wird.
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren von Visual Studio-IDE.
Voraussetzungen
Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Eine Edition von Visual Studio, die die Microsoft Office-Entwicklungstools umfasst. Weitere Informationen finden Sie unter Konfigurieren eines Computers zum Entwickeln von Office-Lösungen.
Word 2013 oder Word 2010 .
Zugriff auf einen Server mit der Northwind SQL Server-Beispieldatenbank.
Berechtigungen zum Lesen und Schreiben in die SQL Server-Datenbank.
Erstellen des Projekts
Im ersten Schritt wird ein Word-Dokumentprojekt erstellt.
So erstellen Sie ein neues Projekt
Erstellen Sie ein Word-Dokumentprojekt mit dem Namen "Meine Word-Aktionen". Wählen Sie im Assistenten " Neues Dokument erstellen" aus.
Weitere Informationen finden Sie unter How to: Create Office projects in Visual Studio.
Visual Studio öffnet das neue Word-Dokument im Designer und fügt das Projekt "Mein Word-Aktionsbereich" zu Projektmappen-Explorer hinzu.
Hinzufügen von Steuerelementen zum Aktionsbereich
Für diese exemplarische Vorgehensweise benötigen Sie ein Aktionsbereich-Steuerelement, das datengebundene Windows Forms-Steuerelemente enthält. Fügen Sie dem Projekt eine Datenquelle hinzu, und ziehen Sie dann Steuerelemente aus dem Fenster "Datenquellen " auf das Aktionsbereich-Steuerelement.
So fügen Sie ein Aktionsbereich-Steuerelement hinzu
Wählen Sie in Projektmappen-Explorer das Projekt "Mein Word-Aktionsbereich" aus.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Wählen Sie im Dialogfeld "Neues Element hinzufügen" die Option "Aktionsbereich-Steuerelement" aus, nennen Sie es "ActionsControl", und klicken Sie dann auf "Hinzufügen".
So fügen Sie dem Projekt eine Datenquelle hinzu
Wenn das Fenster "Datenquellen" nicht sichtbar ist, zeigen Sie es an, indem Sie auf der Menüleiste "Andere Windows-Datenquellen> anzeigen">auswählen.
Hinweis
Wenn "Datenquellen anzeigen" nicht verfügbar ist, klicken Sie auf das Word-Dokument, und aktivieren Sie es erneut.
Klicken Sie auf "Neue Datenquelle hinzufügen", um den Datenquellenkonfigurations-Assistenten zu starten.
Wählen Sie "Datenbank" aus, und klicken Sie dann auf "Weiter".
Wählen Sie eine Datenverbindung mit der SQL Server-Datenbank des Northwind-Beispiels aus, oder fügen Sie eine neue Verbindung mithilfe der Schaltfläche "Neue Verbinden ion" hinzu.
Klicken Sie auf Weiter.
Deaktivieren Sie die Option, um die Verbindung zu speichern, wenn sie ausgewählt ist, und klicken Sie dann auf "Weiter".
Erweitern Sie den Knoten "Tabellen " im Fenster "Datenbankobjekte ".
Aktivieren Sie das Kontrollkästchen neben den Tabellen "Lieferanten " und "Produkte ".
Klicken Sie auf Fertig stellen.
Der Assistent fügt die Tabelle "Lieferanten" und "Produkte" zum Fenster "Datenquellen" hinzu. Außerdem wird ihrem Projekt ein typisiertes Dataset hinzugefügt, das in Projektmappen-Explorer sichtbar ist.
So fügen Sie einem Aktionsbereich-Steuerelement datengebundene Windows Forms-Steuerelemente hinzu
Erweitern Sie im Fenster "Datenquellen " die Tabelle "Lieferanten ".
Klicken Sie auf den Dropdownpfeil auf dem Knoten "Firmenname", und wählen Sie "ComboBox" aus.
Ziehen Sie "CompanyName " aus dem Fenster "Datenquellen " in das Aktionsbereich-Steuerelement.
Ein ComboBox Steuerelement wird im Aktionsbereich-Steuerelement erstellt. Gleichzeitig wird ein benannter BindingSource
SuppliersBindingSource
, ein Tabellenadapter und ein DataSet Tabellenadapter dem Projekt im Komponentenschacht hinzugefügt.Wählen Sie in der Taskleiste "Komponente" aus, und drücken Sie
SuppliersBindingNavigator
ENTF. Sie verwenden dieSuppliersBindingNavigator
in dieser exemplarischen Vorgehensweise nicht.Hinweis
Durch das Löschen wird nicht
SuppliersBindingNavigator
der gesamte Code entfernt, der für ihn generiert wurde. Sie können diesen Code entfernen.Verschieben Sie das Kombinationsfeld so, dass es sich unter der Beschriftung befindet, und ändern Sie die Size-Eigenschaft auf 171, 21.
Erweitern Sie im Fenster "Datenquellen " die Tabelle "Produkte ", die ein untergeordnetes Element der Tabelle "Lieferanten " ist.
Klicken Sie auf den Dropdownpfeil auf dem Knoten "ProductName", und wählen Sie "ListBox" aus.
Ziehen Sie "ProductName " in das Aktionsbereich-Steuerelement.
Ein ListBox Steuerelement wird im Aktionsbereich-Steuerelement erstellt. Gleichzeitig werden dem Projekt im Komponentenbereich ein BindingSource benannter
ProductBindingSource
und ein Tabellenadapter hinzugefügt.Verschieben Sie das Listenfeld so, dass es sich unter der Beschriftung befindet, und ändern Sie die Size-Eigenschaft auf 171.95.
Ziehen Sie eine Button Aus der Toolbox auf das Aktionsbereich-Steuerelement, und platzieren Sie sie unter dem Listenfeld.
Klicken Sie mit der rechten Maustaste auf die ButtonSchaltfläche "Eigenschaften" im Kontextmenü, und ändern Sie die folgenden Eigenschaften.
Eigenschaft Wert Name Einfügen Text Einfügen Ändern Sie die Größe des Benutzersteuerelements so, dass es an die Steuerelemente angepasst wird.
Einrichten der Datenquelle
Um die Datenquelle einzurichten, fügen Sie dem Load Ereignis des Aktionsbereich-Steuerelements Code hinzu, um das Steuerelement mit Daten aus dem DataTableSteuerelement auszufüllen, und legen Sie die DataSource eigenschaften für DataMember jedes Steuerelement fest.
So laden Sie das Steuerelement mit Daten
Fügen Sie im Load Ereignishandler der
ActionsControl
Klasse den folgenden Code hinzu.In C# müssen Sie den Ereignishandler an das Load Ereignis anfügen. Sie können diesen Code im
ActionsControl
Konstruktor nach dem Aufruf vonInitializeComponent
. Weitere Informationen zum Erstellen von Ereignishandlern finden Sie unter How to: Create event handlers in Office projects.this.Load += new EventHandler(ActionsControl_Load);
So legen Sie datenbindungseigenschaften der Steuerelemente fest
Wählen Sie das
CompanyNameComboBox
-Steuerelement.Klicken Sie im Eigenschaftenfenster auf die Schaltfläche rechts neben der DataSource-Eigenschaft , und wählen Sie "suppliersBindingSource" aus.
Klicken Sie rechts neben der DisplayMember-Eigenschaft auf die Schaltfläche, und wählen Sie "CompanyName" aus.
Erweitern Sie die DataBindings-Eigenschaft , klicken Sie rechts neben der Text-Eigenschaft auf die Schaltfläche, und wählen Sie "Keine" aus.
Wählen Sie das
ProductNameListBox
-Steuerelement.Klicken Sie im Eigenschaftenfenster auf die Schaltfläche rechts neben der DataSource-Eigenschaft , und wählen Sie "productsBindingSource" aus.
Klicken Sie rechts neben der DisplayMember-Eigenschaft auf die Schaltfläche, und wählen Sie "ProductName" aus.
Erweitern Sie die DataBindings-Eigenschaft , klicken Sie rechts neben der SelectedValue-Eigenschaft auf die Schaltfläche, und wählen Sie "Keine" aus.
Hinzufügen einer Methode zum Einfügen von Daten in eine Tabelle
Die nächste Aufgabe besteht darin, die Daten aus den gebundenen Steuerelementen zu lesen und eine Tabelle in Ihrem Word-Dokument aufzufüllen. Erstellen Sie zunächst eine Prozedur zum Formatieren der Überschriften in der Tabelle, und fügen Sie dann die AddData
Methode zum Erstellen und Formatieren einer Word-Tabelle hinzu.
So formatieren Sie die Tabellenüberschriften
Erstellen Sie in der
ActionsControl
Klasse eine Methode zum Formatieren der Überschriften der Tabelle.
So erstellen Sie die Tabelle
Schreiben Sie in der Klasse eine Methode, mit der
ActionsControl
eine Tabelle erstellt wird, wenn sie noch nicht vorhanden ist, und fügen Sie der Tabelle Daten aus dem Aktionsbereich hinzu.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); } }
So fügen Sie Text in eine Word-Tabelle ein
Fügen Sie dem Ereignishandler der Schaltfläche "Einfügen" den Click folgenden Code hinzu.
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); } }
In C# müssen Sie einen Ereignishandler für das Click Ereignis der Schaltfläche erstellen. Sie können diesen Code im Load Ereignishandler der
ActionsControl
Klasse platzieren.this.Insert.Click += new EventHandler(Insert_Click);
Anzeigen des Aktionsbereichs
Der Aktionsbereich wird sichtbar, nachdem die Steuerelemente hinzugefügt wurden.
So zeigen Sie den Aktionsbereich an
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf ThisDocument.vb oder ThisDocument.cs, und klicken Sie dann im Kontextmenü auf "Code anzeigen".
Erstellen Sie eine neue Instanz des Steuerelements oben in der
ThisDocument
Klasse, damit sie wie im folgenden Beispiel aussieht.Fügen Sie dem Startup Ereignishandler
ThisDocument
Code hinzu, damit er wie im folgenden Beispiel aussieht.
Testen der App
Jetzt können Sie Ihr Dokument testen, um zu überprüfen, ob der Aktionsbereich angezeigt wird, wenn das Dokument geöffnet wird. Testen Sie die Master-/Detailbeziehung in den Steuerelementen im Aktionsbereich, und stellen Sie sicher, dass Daten in einer Word-Tabelle aufgefüllt werden, wenn auf die Schaltfläche "Einfügen " geklickt wird.
So testen Sie das Dokument
Drücken Sie F5, um das Projekt auszuführen.
Vergewissern Sie sich, dass der Aktionsbereich sichtbar ist.
Wählen Sie ein Unternehmen im Kombinationsfeld aus, und vergewissern Sie sich, dass sich die Elemente im Listenfeld "Produkte " ändern.
Wählen Sie ein Produkt aus, klicken Sie im Aktionsbereich auf "Einfügen ", und vergewissern Sie sich, dass die Produktdetails der Tabelle in Word hinzugefügt werden.
Fügen Sie zusätzliche Produkte aus verschiedenen Unternehmen ein.
Nächste Schritte
Diese exemplarische Vorgehensweise zeigt die Grundlagen der Bindung von Daten an Steuerelemente in einem Aktionsbereich in Word. Die folgenden Aufgaben könnten sich daran anschließen:
Binden von Daten an Steuerelemente in Excel Weitere Informationen finden Sie unter Walkthrough: Binden von Daten an Steuerelemente in einem Excel-Aktionsbereich.
Bereitstellen des Projekts. Weitere Informationen finden Sie unter Bereitstellen einer Office-Lösung mithilfe von ClickOnce.