Tutorial: Enlace de datos simple en el proyecto de complemento de VSTO
Puede enlazar datos a controles host y controles de Windows Forms en proyectos de complemento de VSTO. En este tutorial se muestra cómo se agregan controles a un documento de Microsoft Office Word y cómo se enlazan los controles a datos en tiempo de ejecución.
Se aplica a: La información de este tema se aplica a los proyectos de complementos de VSTO para Word. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.
En este tutorial se muestran las tareas siguientes:
Agregar un elemento ContentControl a un documento en tiempo de ejecución.
Crear un BindingSource que conecta el control a una instancia de un conjunto de datos.
Permitir al usuario que se desplace por los registros y visualizarlos en el control.
Nota:
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.
Requisitos previos
Necesitará los componentes siguientes para completar este tutorial:
Una edición de Visual Studio que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea Configurar un equipo para desarrollar soluciones de Office.
Word 2013 o Word 2010 .
Acceso a una instancia en ejecución de SQL Server 2005 o SQL Server 2005 Express que tenga asociada la base de datos de ejemplo
AdventureWorksLT
. Puede descargar laAdventureWorksLT
base de datos desde el repositorio de GitHub ejemplos de SQL Server. Para obtener más información sobre cómo asociar una base de datos, vea los siguientes temas:Para adjuntar una base de datos mediante SQL Server Management Studio o SQL Server Management Studio Express, consulte How to: Attach a database (SQL Server Management Studio).
Para adjuntar una base de datos mediante la línea de comandos, vea Cómo: Adjuntar un archivo de base de datos a SQL Server Express.
Creación de un nuevo proyecto
El primer paso es crear un proyecto de complemento de VSTO de Word.
Para crear un nuevo proyecto
Cree un proyecto de complemento de VSTO para Word con el nombre Rellenar documentos desde una base de datos, mediante Visual Basic o C#.
Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre el archivo ThisAddIn.vb o ThisAddIn.cs y agrega los documentos rellenados desde un proyecto de base de datos a Explorador de soluciones.
Si el proyecto tiene como destino .NET Framework 4 o .NET Framework 4.5, agregue una referencia al ensamblado Microsoft.Office.Tools.Word.v4.0.Utilities.dll . Esta referencia es obligatoria para agregar mediante programación controles de Windows Forms al documento más adelante en este tutorial.
Creación de un origen de datos
Use la ventana Orígenes de datos para agregar un conjunto de datos con tipo al proyecto.
Para agregar un conjunto de datos con tipo al proyecto
Si la ventana Orígenes de datos no está visible, la muestra, en la barra de menús, elija Ver>otros orígenes de datos de Windows.>
Elija Agregar nuevo origen de datos para iniciar el Asistente para configuración de orígenes de datos.
Haga clic en Base de datosy luego en Siguiente.
Si ya tiene una conexión a la base de datos
AdventureWorksLT
, elija esa conexión y haga clic en Siguiente.De lo contrario, haga clic en Nueva conexióny use el cuadro de diálogo Agregar conexión para crear la nueva conexión. Para más información, consulte Adición de una nueva conexión.
En la página Guardar cadena de conexión en el archivo de configuración de la aplicación , haga clic en Siguiente.
En la página Elegir los objetos de base de datos expanda Tablas y seleccione Customer (SalesLT).
Haga clic en Finalizar
El archivo AdventureWorksLTDataSet.xsd se agrega a Explorador de soluciones. Este archivo define los siguientes elementos:
Un conjunto de datos con tipo denominado
AdventureWorksLTDataSet
. Este conjunto de datos representa el contenido de la tabla Customer (SalesLT) de la base de datos AdventureWorksLT.TableAdapter denominado
CustomerTableAdapter
. TableAdapter se puede usar para leer y escribir datos en .AdventureWorksLTDataSet
Para obtener más información, consulte Información general sobre TableAdapter.Estos dos objetos se usarán más adelante en este tutorial.
Creación de controles y controles de enlace a datos
La interfaz para ver los registros de base de datos en este tutorial es básica y se crea justo dentro del documento. Un elemento ContentControl muestra un registro único de la base de datos a la vez y dos controles Button le permiten desplazarse hacia delante y atrás por los registros. El control de contenido usa un elemento BindingSource para conectarse a la base de datos.
Para obtener más información sobre el enlace de controles a datos, vea Enlazar datos a controles en soluciones de Office.
Para crear la interfaz en el documento
En la clase
ThisAddIn
, declare los siguientes controles para mostrar y desplazarse por la tablaCustomer
de la base de datosAdventureWorksLTDataSet
.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;
En el método
ThisAddIn_Startup
, agregue el siguiente código para inicializar el conjunto de datos y rellenarlo con la información de la base de datosAdventureWorksLTDataSet
.Agregue el siguiente código al método
ThisAddIn_Startup
. Esto genera un elemento host que extiende el documento. Para obtener más información, vea Extender documentos de Word y libros de Excel en complementos de VSTO en tiempo de ejecución.Defina varios intervalos al principio del documento. Estos intervalos identifican dónde se insertará texto y se colocarán los 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;
Agregue los controles de interfaz a los intervalos definidos previamente.
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");
Enlace el control de contenido a
AdventureWorksLTDataSet
mediante el elemento BindingSource. Para los desarrolladores de C#, agregue dos controladores de eventos para los controles Button .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);
Agregue el código siguiente para navegar por los registros de la base de datos.
Probar el complemento
Cuando abre Word, el control de contenido muestra los datos del conjunto de datos AdventureWorksLTDataSet
. Desplácese por los registros de la base de datos haciendo clic en los botones Siguiente y Anterior .
Para probar el complemento de VSTO
Presione F5.
Se crea un control de contenido denominado
customerContentControl
y se rellena con datos. Al mismo tiempo, se agregan al proyecto un objeto de conjunto de datos denominadoadventureWorksLTDataSet
y un elemento BindingSource con el nombrecustomerBindingSource
. El elemento ContentControl se enlaza al elemento BindingSource, que a su vez se enlaza al objeto de conjunto de datos.Haga clic en los botones Siguiente y Anterior para desplazarse por los registros de la base de datos.
Contenido relacionado
- Datos en soluciones de Office
- Enlace de datos a controles en soluciones de Office
- Cómo: Rellenar hojas de cálculo con datos de una base de datos
- Cómo: Rellenar documentos con datos de una base de datos
- Cómo: Rellenar documentos con datos de servicios
- Cómo: Rellenar documentos con datos de objetos
- Cómo: Desplazarse por los registros de base de datos de una hoja de cálculo
- Cómo: Actualizar un origen de datos con datos de un control host
- Tutorial: Enlace de datos simple en un proyecto de nivel de documento
- Tutorial: Enlace de datos complejo en un proyecto de nivel de documento
- Uso de archivos de base de datos locales en la introducción a las soluciones de Office
- Agregar nuevos orígenes de datos
- Enlazar controles de Windows Forms a datos en Visual Studio
- Cómo: Rellenar documentos con datos de objetos
- Cómo: Actualizar un origen de datos con datos de un control host
- Uso de archivos de base de datos locales en la introducción a las soluciones de Office
- BindingSource component overview (Información general sobre el componente BindingSource)