Procedura dettagliata: Associare dati ai controlli in un riquadro azioni di Word
Questa procedura dettagliata illustra il data binding ai controlli in un riquadro azioni in Word. I controlli mostrano una relazione master/detail tra le tabelle in un database SQL Server.
Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento per Word. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.
In questa procedura dettagliata sono illustrati i task seguenti:
Creazione di un riquadro azioni con controlli Windows Form associati ai dati.
Uso di una relazione master/dettaglio per visualizzare i dati nei controlli.
Visualizzare il riquadro azioni all'apertura dell'applicazione.
Nota
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE di Visual Studio.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:
Una versione di Visual Studio che include Microsoft Office Developer Tools. Per altre informazioni, vedere Configurare un computer per sviluppare soluzioni Office.
Word 2013 o Word 2010 .
Accesso a un server con il database di esempio northwind di SQL Server.
Autorizzazioni per la lettura e la scrittura nel database di SQL Server.
Creare il progetto
Il primo passaggio consiste nel creare un progetto Documento di Word.
Per creare un nuovo progetto
Creare un progetto di documento di Word con il nome My Word Actions Pane.Create a Word Document project with the name My Word Actions Pane. Nella procedura guidata selezionare Crea un nuovo documento.
Per altre informazioni, vedere Procedura: Creare progetti di Office in Visual Studio.
Visual Studio apre il nuovo documento di Word nella finestra di progettazione e aggiunge il progetto Riquadro azioni personali a Esplora soluzioni.
Aggiungere controlli al riquadro azioni
Per questa procedura dettagliata, è necessario un controllo riquadro azioni che contiene controlli Windows Form associati a dati. Aggiungere un'origine dati al progetto e quindi trascinare i controlli dalla finestra Origini dati al controllo riquadro azioni.
Per aggiungere un controllo riquadro azioni
Selezionare il progetto Riquadro azioni personali in Esplora soluzioni.
Dal menu Progetto fare clic su Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Controllo riquadro azioni, denominarlo ActionsControl e quindi fare clic su Aggiungi.
Per aggiungere un'origine dati al progetto
Se la finestra Origini dati non è visibile, visualizzarla nella barra dei menu scegliendo Visualizza>altre origini dati di Windows.>
Nota
Se Mostra origini dati non è disponibile, fare clic sul documento di Word e quindi selezionare di nuovo.
Fare clic su Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.
Selezionare Database e quindi fare clic su Avanti.
Selezionare una connessione dati al database di SQL Server di esempio Northwind oppure aggiungere una nuova connessione usando il pulsante Nuovo Connessione ion.
Fare clic su Avanti.
Deselezionare l'opzione per salvare la connessione, se selezionata, quindi fare clic su Avanti.
Espandere il nodo Tabelle nella finestra Oggetti database.
Selezionare la casella di controllo accanto alle tabelle Suppliers and Products .
Fare clic su Fine.
La procedura guidata aggiunge la tabella Suppliers e La tabella Products alla finestra Origini dati. Aggiunge anche un set di dati tipizzato al progetto visibile in Esplora soluzioni.
Per aggiungere controlli Windows Form associati a dati a un controllo riquadro azioni
Nella finestra Origini dati espandere la tabella Suppliers.
Fare clic sulla freccia a discesa nel nodo Nome società e selezionare ComboBox.
Trascinare CompanyName dalla finestra Origini dati al controllo riquadro azioni.
Viene creato un ComboBox controllo nel controllo riquadro azioni. Allo stesso tempo, un BindingSource oggetto denominato
SuppliersBindingSource
, un adattatore di tabella e un DataSet oggetto vengono aggiunti al progetto nella barra dei componenti.Selezionare
SuppliersBindingNavigator
nella barra dei componenti e premere Canc. In questa procedura dettagliata non verrà usato .SuppliersBindingNavigator
Nota
L'eliminazione
SuppliersBindingNavigator
di non rimuove tutto il codice generato per esso. È possibile rimuovere questo codice.Spostare la casella combinata in modo che si trova sotto l'etichetta e modificare la proprietà Size su 171, 21.
Nella finestra Origini dati espandere la tabella Products figlio della tabella Suppliers.
Fare clic sulla freccia a discesa nel nodo ProductName e selezionare ListBox.
Trascinare ProductName nel controllo riquadro azioni.
Viene creato un ListBox controllo nel controllo riquadro azioni. Allo stesso tempo, un BindingSource adattatore di tabella denominato
ProductBindingSource
e un adattatore di tabella vengono aggiunti al progetto nella barra dei componenti.Spostare la casella di riepilogo in modo che si trova sotto l'etichetta e modificare la proprietà Size su 171.95.
Trascinare un Button oggetto dalla casella degli strumenti nel controllo riquadro azioni e posizionarlo sotto la casella di riepilogo.
Fare clic con il pulsante destro del Buttonmouse su Proprietà dal menu di scelta rapida e modificare le proprietà seguenti.
Proprietà valore Nome Inserimento Text Inserimento Ridimensionare il controllo utente in base ai controlli.
Configurare l'origine dati
Per configurare l'origine dati, aggiungere codice all'evento Load del controllo riquadro azioni per riempire il controllo con i dati di DataTablee impostare le DataSource proprietà e DataMember per ogni controllo.
Per caricare il controllo con i dati
Load Nel gestore eventi della
ActionsControl
classe aggiungere il codice seguente.In C# è necessario collegare il gestore eventi all'evento Load . È possibile inserire questo codice nel
ActionsControl
costruttore, dopo la chiamata aInitializeComponent
. Per altre informazioni su come creare gestori eventi, vedere Procedura: Creare gestori eventi nei progetti di Office.this.Load += new EventHandler(ActionsControl_Load);
Per impostare le proprietà di data binding dei controlli
Selezionare il controllo
CompanyNameComboBox
.Nella finestra Proprietà fare clic sul pulsante a destra della proprietà DataSource e selezionare suppliersBindingSource.
Fare clic sul pulsante a destra della proprietà DisplayMember e selezionare CompanyName.
Espandere la proprietà DataBindings, fare clic sul pulsante a destra della proprietà Text e selezionare Nessuno.
Selezionare il controllo
ProductNameListBox
.Nella finestra Proprietà fare clic sul pulsante a destra della proprietà DataSource e selezionare productsBindingSource.
Fare clic sul pulsante a destra della proprietà DisplayMember e selezionare ProductName.
Espandere la proprietà DataBindings, fare clic sul pulsante a destra della proprietà SelectedValue e selezionare Nessuno.
Aggiungere un metodo per inserire dati in una tabella
L'attività successiva consiste nel leggere i dati dai controlli associati e popolare una tabella nel documento di Word. Creare prima di tutto una routine per formattare le intestazioni nella tabella e quindi aggiungere il AddData
metodo per creare e formattare una tabella di Word.
Per formattare le intestazioni di tabella
ActionsControl
Nella classe creare un metodo per formattare le intestazioni della tabella.
Per creare la tabella
ActionsControl
Nella classe scrivere un metodo che creerà una tabella se non ne esiste già una e aggiungere dati dal riquadro azioni alla tabella.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); } }
Per inserire testo in una tabella di Word
Aggiungere il codice seguente al Click gestore eventi del pulsante Inserisci .
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# è necessario creare un gestore eventi per l'evento Click del pulsante. È possibile inserire questo codice nel Load gestore eventi della
ActionsControl
classe .this.Insert.Click += new EventHandler(Insert_Click);
Visualizzare il riquadro azioni
Il riquadro azioni diventa visibile dopo l'aggiunta dei controlli.
Per visualizzare il riquadro azioni
In Esplora soluzioni fare clic con il pulsante destro del mouse su ThisDocument.vb o ThisDocument.cs, quindi scegliere Visualizza codice dal menu di scelta rapida.
Creare una nuova istanza del controllo nella parte superiore della
ThisDocument
classe in modo che abbia un aspetto simile all'esempio seguente.Aggiungere codice al Startup gestore eventi di
ThisDocument
in modo che abbia un aspetto simile all'esempio seguente.
Testare l'applicazione
È ora possibile testare il documento per verificare che il riquadro azioni venga visualizzato all'apertura del documento. Verificare la relazione master/dettaglio nei controlli nel riquadro azioni e assicurarsi che i dati vengano popolati in una tabella di Word quando si fa clic sul pulsante Inserisci .
Per testare il documento
Premere F5 per eseguire il progetto.
Verificare che il riquadro azioni sia visibile.
Selezionare un'azienda nella casella combinata e verificare che gli elementi nella casella di riepilogo Prodotti cambino.
Selezionare un prodotto, fare clic su Inserisci nel riquadro azioni e verificare che i dettagli del prodotto vengano aggiunti alla tabella in Word.
Inserire prodotti aggiuntivi di varie aziende.
Passaggi successivi
Questa procedura dettagliata illustra le nozioni di base sull'associazione dei dati ai controlli in un riquadro azioni in Word. Ecco alcune possibili attività successive:
Associazione di dati ai controlli in Excel. Per altre informazioni, vedere Procedura dettagliata: Associare dati ai controlli in un riquadro azioni di Excel.
Distribuzione del progetto. Per altre informazioni, vedere Distribuire una soluzione Office usando ClickOnce.