Tutorial: Crear una relación principal-detalle utilizando un conjunto de datos almacenado en caché
En este tutorial se muestra cómo crear una relación principal-detalle en una hoja de cálculo, así como a almacenar en memoria caché los datos para que la solución se pueda utilizar sin conexión.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento para Excel 2013 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
Durante este tutorial aprenderá a:
Agregar controles a una hoja de cálculo.
Configurar un conjunto de datos para almacenarlo en memoria caché en una hoja de cálculo.
Agregar código para habilitar el desplazamiento por los registros.
Probar el proyecto.
[!NOTA]
Es posible que su 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 tenga y la configuración que esté usando determinan estos elementos.Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
-
Una edición de Visual Studio 2012 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.110\).md).
Excel 2013 o Excel 2010.
Acceso a la base de datos de ejemplo Northwind de SQL Server.La base de datos puede estar en un equipo de desarrollo o en un servidor.
Permisos de lectura y escritura en la base de datos de SQL Server.
Crear un proyecto nuevo
En este paso, creará un proyecto de libro de Excel.
Para crear un nuevo proyecto
- Con Visual Basic o C#, cree un proyecto de libro de Excel con el nombre Mi principal-detalle.Asegúrese de que esté seleccionada la opción Crear un nuevo documento.Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre el nuevo libro de Excel en el diseñador y agrega el proyecto Mi principal-detalle al Explorador de soluciones.
Crear el origen de datos
Utilice la ventana Orígenes de datos para agregar un conjunto de datos con tipo al proyecto.
Para crear el origen de datos
Si la ventana orígenes de datos no está visible, muéstrela por, en la barra de menús, eligiendo Vista, Otras ventanas, orígenes de datos.
Elija Agregar nuevo origen de datos para iniciar Asistente para la configuración de orígenes de datos.
Seleccione Base de datos y, a continuación, haga clic en Siguiente.
Seleccione una conexión de datos a la base de datos de ejemplo Northwind de SQL Server o agregue una nueva conexión mediante el botón Nueva conexión.
Cuando haya seleccionado o creado una conexión, haga clic en Siguiente.
Si estuviera activada, desactive la opción de guardar la conexión y, a continuación, haga clic en Siguiente.
Expanda el nodo Tablas en la ventana Objetos de base de datos.
Seleccione la tabla Orders y la tabla Order Details.
Haga clic en Finalizar.
El asistente agrega las dos tablas a la ventana Data Sources.También agrega al proyecto un conjunto de datos con tipo, visible en el Explorador de soluciones.
Agregar controles a la hoja de cálculo
En este paso, agregará un rango con nombre, un objeto de lista y dos botones a la primera hoja de cálculo.Primero, agregue el rango con nombre y el objeto de lista desde la ventana Orígenes de datos para que se enlacen automáticamente al origen de datos.A continuación, agregue los botones del Cuadro de herramientas.
Para agregar un rango con nombre y un objeto de lista
Compruebe que el libro Mi Master-Detail.xlsx está abierto en el diseñador de Visual Studio, con Hoja1 mostrados.
Abra la ventana Data Sources y expanda el nodo de Orders.
Seleccione la columna OrderID y, a continuación, haga clic en la flecha de lista desplegable que aparece.
Haga clic en NamedRange en la lista desplegable y, a continuación, arrastre la columna OrderID hasta la celda A2.
En la celda A2 se crea un control NamedRange denominado OrderIDNamedRange.Al mismo tiempo, se agregan al proyecto un control BindingSource denominado OrdersBindingSource, un adaptador de tablas y una instancia de la clase DataSet.El control se enlaza a BindingSource, que, a su vez, se enlaza a la instancia de DataSet.
Desplácese hacia abajo, más allá de las columnas situadas bajo la tabla Orders.En la parte inferior de la lista se encuentra la tabla Order Details; está aquí porque es un elemento secundario de la tabla Orders.Seleccione esta tabla de Order Details, no la que está en el mismo nivel que la tabla de Orders; a continuación, haga clic en la flecha de lista desplegable que aparece.
Haga clic en ListObject en la lista desplegable y, a continuación, arrastre la tabla OrderDetails hasta la celda A6.
Se crea un control ListObject denominado Order_DetailsListObject en la celda A6 y se enlaza al objeto BindingSource.
Para agregar dos botones
Desde la ficha Controles comunes del Cuadro de herramientas, agregue un control Button a la celda A3 de la hoja de cálculo.
Este botón se denominará Button1.
Agregue otro control Button a la celda B3 de la hoja de cálculo.
Este botón se denominará Button2.
Luego, marque el conjunto de datos que se va a almacenar en memoria caché en el documento.
Almacenar en caché el conjunto de datos
Para marcar el conjunto de datos que se va a almacenar en memoria caché en el documento, haga público el conjunto de datos y establezca la propiedad CacheInDocument.
Para almacenar en caché el conjunto de datos
Seleccione NorthwindDataSet en la bandeja de componentes.
En la Ventana Propiedades, cambie la propiedad Modifiers a Pública.
Los conjuntos de datos deben ser públicos antes de que se habilite el almacenamiento en memoria caché.
Cambie la propiedad CacheInDocument a True.
El siguiente paso consiste en agregar texto a los botones y, en C#, agregar código para enlazar los controladores de eventos.
Inicializar los controles
Establezca el texto del botón y agregue controladores de eventos durante el evento Startup.
Para inicializar los datos y los controles
En el Explorador de soluciones, haga clic con el botón secundario del mouse en Sheet1.vb o Sheet1.cs y, a continuación, haga clic en Ver código en el menú contextual.
Agregue el código siguiente al método Sheet1_Startup para establecer el texto de los botones.
Me.Button1.Text = "<" Me.Button2.Text = ">"
this.button1.Text = "<"; this.button2.Text = ">";
En C# únicamente, agregue controladores de eventos para los eventos Click de los botones al método Sheet1_Startup.
this.button1.Click += new EventHandler(button1_Click); this.button2.Click += new EventHandler(button2_Click);
Agregar código para habilitar el desplazamiento por los registros
Agregue el código al controlador del evento Click de cada botón para desplazarse por los registros.
Para desplazarse por los registros
Agregue un controlador de eventos para el evento Click de Button1 y agregue el código siguiente para retroceder por los registros:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Me.OrdersBindingSource.MovePrevious() End Sub
private void button1_Click(object sender, EventArgs e) { this.ordersBindingSource.MovePrevious(); }
Agregue un controlador de eventos para el evento Click de Button2 y agregue el código siguiente para avanzar por los registros:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button2.Click Me.OrdersBindingSource.MoveNext() End Sub
private void button2_Click(object sender, EventArgs e) { this.ordersBindingSource.MoveNext(); }
Probar la aplicación
Ahora puede probar el libro para asegurarse de que los datos aparecen según lo previsto y que puede utilizar la solución sin conexión.
Para probar el almacenamiento de datos en caché
Presione F5.
Compruebe que el rango con nombre y el objeto de lista se han rellenado con datos del origen de datos.
Desplácese por algunos de los registros haciendo clic en los botones.
Guarde el libro y, a continuación, cierre el libro y Visual Studio.
Deshabilite la conexión a la base de datos.Desconecte el cable de red del equipo si la base de datos está en un servidor, o detenga el servicio de SQL Server si la base de datos está en el equipo de desarrollo.
Excel abra y, a continuación Mi Master-Detail.xlsx abierto de \bin \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C (\my master-detail\bin \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C \my master-detail\bin\debug \bin directory (\My Master-Detail\bin in Visual Basic or \My Master-Detail\bin\debug in C c#).
Desplácese por algunos de los registros para comprobar que la hoja de cálculo funciona normalmente cuando se está sin conexión.
Restablezca la conexión a la base de datos.Vuelva a conectar el equipo a la red si la base de datos está en un servidor, o inicie el servicio de SQL Server si la base de datos está en el equipo de desarrollo.
Pasos siguientes
En este tutorial se muestran los fundamentos de la creación de una relación de datos principal-detalle en una hoja de cálculo y del almacenamiento en memoria caché de un conjunto de datos.Éstas son algunas de las tareas que pueden venir a continuación:
- Implementar la solución.Para obtener más información, consulte Implementar una solución de Office
Vea también
Conceptos
Información general sobre elementos y controles Host