Compartir a través de


Visita guiada: Crear un informe de ReportViewer

Esta visita guiada muestra cómo crear un informe simple de tablas en un proyecto de aplicación para Windows de Microsoft Visual Studio 2008 basado en la base de datos de ejemplo AdventureWorks. Se agrega una plantilla de informe al proyecto, se configura información de conexión para la base de datos AdventureWorks, se define una consulta, se agrega una región de datos de tabla y se agrega un control de Windows Forms ReportViewer a un formulario de Windows para que los usuarios de la aplicación puedan ver el informe.

Requisitos previos

Para usar esta visita guiada, debe tener acceso a la base de datos de ejemplo AdventureWorks para SQL Server 2005. Si utiliza una versión anterior de AdventureWorks, la consulta no se realizará correctamente. Para obtener más información sobre cómo obtener la versión SQL Server 2005 de AdventureWorks, vea Visita guiada: Instalar la base de datos AdventureWorks.

En esta visita guiada se presupone que está familiarizado con las consultas Transaction-SQL y los objetos DataSet y DataTable de ADO.NET.

Para crear un nuevo proyecto de aplicación basada en Windows

  1. Abra Visual Studio. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto.

  2. En el panel Tipos de proyecto, elija Visual Basic.

  3. En el panel Plantillas, elija Aplicación para Windows para crear una aplicación basada en Microsoft Windows.

  4. En el cuadro Nombre, escriba SimpleReport.

  5. En el cuadro Ubicación, escriba el directorio en el que desea guardar el proyecto o haga clic en Examinar para navegar a él.

    Se abre el Diseñador de Windows Forms y se muestra Form1 del proyecto creado.

  6. Haga clic en el formulario. En el menú Ver, seleccione Ventana de propiedades. Expanda la propiedad Size para mostrar Width y Height. Establezca Width en 500 píxeles.

Para definir una conexión de origen de datos y una tabla de datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto denominado SimpleReport (no la solución), haga clic en Agregar y seleccione Nuevo elemento. Si la ventana Explorador de soluciones no está visible, en el menú Ver, haga clic en Explorador de soluciones.

  2. En Agregar nuevo elemento, haga clic en DataSet. Escriba un nombre para el conjunto de datos y haga clic en Agregar. El nombre predeterminado es DataSet1.xsd.

    Esto agrega un nuevo archivo XSD al proyecto y abre el Diseñador de DataSet.

  3. En el menú Ver, haga clic en Diseñador. Abra el cuadro de herramientas y arrastre un control TableAdapter hasta la superficie de diseño de DataSet.

    Esto inicia el Asistente para la configuración de TableAdapter.

  4. En la página Elegir la conexión de datos, haga clic en Nueva conexión.

  5. En la página Agregar conexión, realice los pasos siguientes:

    • En el cuadro Origen de datos, seleccione Microsoft SQL Server.

    • En el cuadro Nombre del servidor, especifique el servidor en el que se encuentra la base de datos AdventureWorks.

      La instancia de SQL Server Express predeterminada es (local)\sqlexpress.

    • En la lista desplegable, elija AdventureWorks.

    • Haga clic en Aceptar para regresar al asistente y, a continuación, haga clic en Siguiente.

  6. En la página Guardar cadena de conexión en el archivo de config. de la aplicación, escriba el nombre de la cadena de conexión o acepte el valor predeterminado AdventureWorksConnectionString. Haga clic en Siguiente.

  7. En la página Elija un tipo de comando, seleccione Usar instrucciones SQL y haga clic en Siguiente.

  8. En la página Escriba una instrucción SQL, escriba la siguiente consulta Transact-SQL para recuperar datos de ventas de la base de datos AdventureWorks y haga clic en Finalizar:

    SELECT  S.OrderDate, S.SalesOrderNumber, S.TotalDue AS TotalSales, 
            C.FirstName, C.LastName
    FROM    HumanResources.Employee E INNER JOIN
            Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
            Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    

    También puede hacer clic en el botón Generador de consultas y utilizar el Generador de consultas para crear una consulta y validarla con el botón Ejecutar consulta.

    El Diseñador de Dataset mostrará la definición DataTable para DataTable1 con campos cuyos nombres provienen de las columnas y los alias de columna de la consulta (OrderDate, SalesOrderNumber, TotalSales, FirstName y LastName). Utilizará estos campos desde la ventana Orígenes de datos cuando enlace datos a las regiones de datos del informe.

    Nota

    Si necesita cambiar los campos en la tabla de datos, haga clic con el botón secundario en el encabezado DataTable1 o DataTable1TableAdapter de la página del Diseñador de DataSet. Elija Configurar, lo que iniciará el Asistente para la configuración de TableAdapter.

Para crear un nuevo archivo de definición de informe

  1. En el menú Proyecto, seleccione AgregarNuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, haga clic en Informe.

  3. En Nombre, escriba Sales Orders.rdlc y, a continuación, haga clic en Agregar para abrir una superficie de diseño gráfico.

    Dicha superficie forma parte del componente Diseñador de informes de Visual Studio 2008.

Para agregar una tabla al diseño de informe

  1. Con Sales Orders.rdlc en el modo de diseño gráfico, seleccione el cuadro de herramientas en el menú Ver.

    Se abrirá el cuadro de herramientas.

  2. En la sección Datos del cuadro de herramientas, haga clic en Tabla y, a continuación, en la superficie de diseño del informe.

    El Diseñador de informes muestra una tabla con tres columnas que ocupa todo el ancho del informe.

  3. Haga clic en la tabla para que aparezcan los controladores de columna y fila encima y al lado de la tabla.

  4. En la primera columna, haga clic con el botón secundario en el controlador y, a continuación, en Insertar columna a la izquierda.

  5. En la ventana de propiedades para table1, expanda el nodo Size. De forma predeterminada, la ventana de propiedades está acoplada debajo del Explorador de soluciones. También puede abrir esta ventana desde el menú Ver seleccionando Ventana de propiedades.

  6. Establezca la propiedad Width del nodo Size en 4.8 in. Esto establece el mismo espaciado en el ancho de la tabla y en el de las columnas para su visualización en el formulario.

  7. En el Diseñador de informes, haga clic en la superficie de diseño.

  8. En la ventana de propiedades, expanda el nodo Size y establezca la propiedad Width en 5 in.

  9. En la ventana Orígenes de datos, haga clic en el nodo DataTable1 para expandirlo y mostrar los campos de datos. A continuación, realice los pasos siguientes:

    • Arrastre el campo LastName desde la ventana Orígenes de datos hasta la fila central (detalle) de la primera columna de la tabla.

    • Al colocar el campo en la celda central, suceden dos cosas.

      En primer lugar, la celda de detalle incluye el texto siguiente: =Fields!LastName.Value. Este texto es una expresión de campo que especifica valores de datos para el campo LastName. Los campos que se agregan a una fila de detalle siempre se especifican como expresiones.

      En segundo lugar, un valor de encabezado de columna se colocará automáticamente en la primera fila, inmediatamente encima de la expresión de campo. De forma predeterminada, la columna se genera a partir del nombre del campo. Para los nombres de campo que utilizan las mayúsculas y minúsculas como en Pascal, los nombres de las columnas serán cada una de las palabras en mayúsculas y separadas por un espacio. Por ejemplo, LastName se convertirá en Last Name.

    • Arrastre el campo OrderDate desde la ventana de orígenes de datos hasta la fila central (detalle) de la segunda columna de la tabla.

    • Arrastre el campo SalesOrderNumber desde la ventana de orígenes de datos hasta la fila central (detalle) de la tercera columna de la tabla.

    • Arrastre el campo TotalSales desde la ventana Orígenes de datos hasta la fila central (detalle) de la última columna de la tabla.

    Este diagrama muestra una región de datos de tabla que se ha rellenado con los campos siguientes: LastName, OrderDate, SalesOrderNumber y TotalSales.

Para agregar el control ReportViewer al formulario

  1. En el Explorador de soluciones, haga clic en Form1.vb.

  2. En el menú Ver, haga clic en Diseñador.

  3. Desde la sección Datos del cuadro de herramientas, arrastre el control ReportViewer hasta el formulario.

  4. Haga clic en el formulario. En la ventana Propiedades, expanda Size. Establezca las propiedades de ancho y alto según sea necesario.

  5. Abra el panel de etiquetas inteligentes del control ReportViewer haciendo clic en el triángulo en la esquina superior derecha del control. Haga clic en la lista desplegable Elegir informe y seleccione SalesOrder.rdlc.

  6. En el panel de etiquetas inteligentes, elija Acoplar en contenedor principal.

    A lo largo del resto de esta visita guiada, podrá generar la aplicación y ver el informe en el formulario en cualquier momento. Si desea comprobar cómo afecta cada cambio en el diseño del informe al informe final, genere y visualice el informe como último paso en cada uno de los procedimientos siguientes.

  7. (Opcional) Presione F5 para generar la aplicación y ver el informe en el formulario.

    El diagrama siguiente muestra la definición de informe actual representado en el formulario. Verá una fila de encabezado, una fila de detalle para cada una de las filas de la tabla de datos y una fila de pie en la última página del informe, todas en el formato predeterminado.

Para dar formato a un campo de fecha

  1. Haga clic con el botón secundario en la celda con la expresión del campo OrderDate y, a continuación, haga clic en Propiedades. Aparecerá el cuadro de diálogo Propiedades del cuadro de texto.

  2. Seleccione la ficha Formato y haga clic en el botón para examinar (...) para abrir el cuadro de diálogo Elegir formato.

    En el cuadro Formato, seleccione Estándar, Fecha y elija un formato de fecha.

  3. Haga clic en Aceptar para cerrar el cuadro de diálogo Elegir formato y, a continuación, vuelva a hacer clic en Aceptar para cerrar el cuadro de diálogo Propiedades del cuadro de texto.

  4. (Opcional) Presione F5 para generar la aplicación y ver el informe. En este caso, verá la columna de fecha con el formato que acaba de aplicar.

Para dar formato a un campo de moneda

  1. Haga clic con el botón secundario en la celda con la expresión del campo TotalSales y, a continuación, haga clic en Propiedades.

  2. Seleccione la ficha Formato y haga clic en el botón para examinar (...) para abrir el cuadro de diálogo Elegir formato.

  3. En el cuadro Formato, seleccione Estándar, Moneda y elija un formato de moneda.

  4. Haga clic en Aceptar y, a continuación, en Aceptar de nuevo para cerrar el cuadro de diálogo Propiedades del cuadro de texto.

  5. (Opcional) Presione F5 para generar la aplicación y ver el informe. En este caso, verá los valores de la columna Total Sales mostrados con un formato de moneda.

Para dar formato a encabezados de tablas

  1. Haga clic en la tabla para que aparezcan los controladores de columna y fila encima y al lado de la tabla.

    Nota

    Las asas son unos cuadros grises que aparecen encima y al lado de la tabla. Las asas se utilizan para realizar diversas acciones en las columnas, en las filas y en la propia tabla. Las asas situadas en la parte superior de la tabla son las de las columnas. Las asas situadas a lo largo del lateral de la tabla son las de las filas. El asa situada en el lugar donde se encuentran la asa de columnas y la de filas es el asa de esquina. Para ver un ejemplo de asas de tablas, vea Agregar regiones de datos de tabla (Diseñador de informes de Visual Studio).

  2. Seleccione los controladores de fila para la primera fila, que contiene las etiquetas de los encabezados de columna y, a continuación, haga clic en Negrita.

  3. Haga clic en la fila de encabezado de tabla y, a continuación, haga clic en Color de fondo. Haga clic en la ficha Web y seleccione RosaDifuminado. Haga clic en Aceptar.

  4. (Opcional) Presione F5 para generar la aplicación y ver el informe. El diagrama siguiente muestra el informe con formato.

Para definir un grupo para un informe tabular

  1. Haga clic en la tabla para que aparezcan los controladores de columna y fila encima y al lado de la tabla.

  2. Haga clic con el botón secundario en el asa de cualquier fila y, a continuación, haga clic en Insertar grupo.

  3. En la ficha General, en Agrupar por, seleccione =Fields!LastName.Value en la primera fila y =Fields!FirstName.Value en la segunda. Esto agrupará los datos por el nombre del representante de ventas. Tenga en cuenta que puede agrupar los datos por campos que no se usan en la región de datos de tabla pero que están disponibles desde los campos de DataTable1.

  4. Haga clic en Aceptar.

    Se agregan un encabezado de grupo y un pie de grupo a la tabla.

Para resumir datos por grupo

  1. Haga clic en la fila de encabezado de grupo y, a continuación, haga clic en Color de fondo. Haga clic en la ficha Web y seleccione CiánClaro. Haga clic en Aceptar.

  2. Reemplace el campo TotalSales que se repite en cada fila por una expresión del encabezado de grupo que sea un total combinado para el grupo.

    1. Haga clic con el botón secundario en el encabezado de grupo para Total Sales y seleccione Propiedades. Se abrirá el cuadro de diálogo Propiedades del cuadro de texto.

    2. Copie el texto mostrado a continuación y péguelo en la lista desplegable Valor.

      =Sum(Fields!TotalSales.Value)
      
    3. Aplique el formato de moneda a este cuadro de texto.

  3. Reemplace el nombre que se repite en cada fila por una expresión del encabezado de grupo que incluya dos líneas. La primera línea es el nombre y el apellido. La segunda línea es el número de ventas que fueron distintas de Null.

    1. Seleccione la expresión de la fila de detalle Last Name y elimínela.

    2. Haga clic con el botón secundario en la fila del encabezado de grupo para Last Name y seleccione Expresión. Copie el texto siguiente y péguelo en el área de diálogo Editar expresión.

      Fields!FirstName.Value + " " + Fields!LastName.Value + ": " + vbCrLf + Count(Fields!SalesOrderNumber.Value).ToString()
      

    El diagrama siguiente muestra el editor de expresiones después de este paso.

  4. (Opcional) Presione F5 para generar la aplicación y ver el informe. El diagrama mostrado a continuación muestra las filas de la tabla agrupadas por el nombre del representante de ventas. Cada encabezado de grupo resume las filas de detalle para el grupo, mostrando el nombre del representante, el número de ventas y la cantidad total vendida.

Para ordenar grupos en un informe tabular

  1. Seleccione la región de datos de tabla y abra Propiedades de la tabla.

  2. Haga clic en la ficha Grupos. Se seleccionará automáticamente table1_Group1, el único grupo definido. Haga clic en Editar. Se abrirá el cuadro de diálogo Propiedades de agrupación y ordenación.

    Compruebe que el cuadro de diálogo abierto sea Propiedades de agrupación y ordenación, y no Propiedades de la tabla. La ficha Propiedades de agrupación y ordenación controla la forma en la que se ordenan las filas de detalle, no la forma en la que se ordenan los grupos. Establecerá la ordenación de las filas de detalle en el siguiente procedimiento.

  3. Haga clic en la ficha Ordenación. En el cuadro Ordenar por, seleccione <Expresión...> en la lista desplegable. Escriba la expresión por la que desea realizar la ordenación en el cuadro Editar expresión. Por ejemplo:

    =Count(Fields!SalesOrderNumber.Value)

  4. Haga clic en Aceptar.

  5. (Opcional) Presione F5 para generar la aplicación y ver el informe. El informe se ordenará por el número de ventas realizado por cada representante de ventas.

Para ordenar las filas de detalle dentro de un grupo en un informe tabular

  1. Haga clic en la tabla para que aparezcan las asas de columna y fila encima y al lado de la tabla.

  2. Haga clic con el botón secundario en el asa de esquina y, a continuación, haga clic en Propiedades. Se abrirá el cuadro de diálogo Propiedades de la tabla.

    Nota

    El asa de esquina es el asa situada en el punto donde se encuentran las asas de columna y fila.

  3. En la ficha Ordenación, en el cuadro Ordenar por, seleccione =Fields!TotalSold.Value. En el cuadro Dirección, seleccione Descendente. De esta forma, los datos de detalles se ordenarán por la cantidad vendida comenzando por los valores más altos.

  4. Haga clic en Aceptar.

    El cuadro de diálogo de propiedades de tabla debe tener un aspecto similar al siguiente diagrama.

  5. (Opcional) Presione F5 para generar la aplicación y ver el informe. El diagrama siguiente muestra la página 2 del informe resultante, con los grupos que tienen varias filas de detalle.

Para agregar datos de resumen al pie de página en un informe tabular

  1. Seleccione las celdas Sales Order y Total Sales en la fila de pie de tabla. Haga clic con el botón secundario en las celdas seleccionadas y elija Combinar celdas.

    De esta manera, tendrá más espacio parar dar formato a la suma de todas las ventas para la tabla.

  2. Haga clic con el botón secundario en la celda combinada y elija Propiedades.

  3. En la lista desplegable Zoom, escriba la expresión siguiente:

    =Sum(Fields!TotalSales.Value)

  4. Aplique el formato de moneda a la celda combinada.

  5. Haga clic en la celda de cuadro de texto que aparece junto a las celdas combinadas y cree una etiqueta. Por ejemplo, escriba Total Sold:. Tenga en cuenta que esta cadena no es una expresión, solamente texto.

  6. (Opcional) Establezca el color de fondo de la fila de pie para que coincida con el de la fila de encabezado.

    El diagrama siguiente muestra la definición de tabla.

  7. (Opcional) Presione F5 para generar la aplicación y ver el informe. En el informe representado, haga clic en el botón Última página de la barra de herramientas de informe para desplazarse a la última página del informe. Vaya a la parte inferior del informe y verá el valor de ventas totales.

Vea también

Referencia

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

Conceptos

Utilizar el panel de etiquetas inteligentes Tareas de ReportViewer

Otros recursos

Ejemplos y visitas guiadas