Tutorial: Usar un origen de datos de un objeto comercial con el control de Windows Forms de ReportViewer en el modo de procesamiento local

Este tutorial le mostrará cómo utilizar un origen de datos de objeto con objetos comerciales en un informe de una aplicación de Windows Forms de Microsoft Visual Studio.Para obtener más información sobre los objetos comerciales y los orígenes de datos de objeto, vea Binding to Business Objects.

Siga estos pasos para agregar un informe a un proyecto de una aplicación de Windows Forms.Para este ejemplo, creará una aplicación en Microsoft Visual C#.

Crear un nuevo proyecto de aplicación de Windows Forms

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

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas instaladas, elija Visual C# y, a continuación, elija la plantilla Aplicación de Windows Forms.El nodo C# puede estar debajo de Otros lenguajes, dependiendo de la configuración de inicio de Visual Studio.

  3. Escriba BusinessObject como nombre del proyecto y haga clic en Aceptar.

Crear objetos comerciales para utilizarlos como origen de datos

  1. En el menú Proyecto, seleccione Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, elija Clase, escriba BusinessObjects.cs como nombre de archivo y haga clic en Agregar.

    El archivo nuevo se agrega al proyecto y se abre automáticamente en Visual Studio.

  3. Reemplace el código predeterminado de BusinessObjects.cs por el siguiente código:

    using System;
    using System.Collections.Generic;
    
    // Define the Business Object "Product" with two public properties
    //    of simple datatypes.
    public class Product {
        private string m_name;
        private int m_price;
    
        public Product(string name, int price) {
            m_name = name;
            m_price = price;
        }
    
        public string Name {
            get {
                return m_name;
            }
        }
    
        public int Price {
            get {
                return m_price;
            }
        }
    }
    
    // Define Business Object "Merchant" that provides a 
    //    GetProducts method that returns a collection of 
    //    Product objects.
    
    public class Merchant {
        private List<Product> m_products;
    
        public Merchant() {
            m_products = new List<Product>();
            m_products.Add(new Product("Pen", 25));
            m_products.Add(new Product("Pencil", 30));
            m_products.Add(new Product("Notebook", 15));
        }
    
        public List<Product> GetProducts() {
            return m_products;
        }
    }
    
  4. En el menú Proyecto, seleccione Compilar solución.De esta forma se crea un ensamblado para el objeto que posteriormente podrá utilizar como origen de datos del informe.

Agregar un informe al proyecto con el Asistente para informes

  1. En el menú Proyecto, seleccione Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Asistente para informes.Escriba un nombre para el informe y haga clic en Agregar.

    Se iniciará el Asistente para informes con el Asistente para la configuración de orígenes de datos.

  3. En la página Elegir un tipo de origen de datos, seleccione Objeto y haga clic en Siguiente.

  4. En la página Seleccionar los objetos de datos, expanda la jerarquía de clases de BusinessObject hasta que vea Producto en la lista.Seleccione Producto y haga clic en Finalizar.

    Ahora se encuentra de nuevo en el Asistente para informes.Observe que el nuevo objeto de origen de datos se ha agregado al proyecto en el Explorador de soluciones.

  5. Compruebe que en el cuadro Origen de datos de la página Propiedades del conjunto de datos está seleccionado global.

  6. En el cuadro Conjuntos de datos disponibles, compruebe que está seleccionado Producto.

  7. Haga clic en Siguiente.

  8. En la página Organizar campos, haga lo siguiente:

    1. Arrastre Name desde Campos disponibles hasta el cuadro Grupos de filas.

    2. Arrastre Price desde Campos disponibles hasta el cuadro Valores.

  9. Haga clic en Siguiente dos veces y, a continuación, haga clic en Finalizar.

    De este modo, se crea el archivo .rdlc y, a continuación, se abre en el Diseñador de informes.El Tablix que ha creado se muestra ahora en la superficie de diseño.

  10. Guarde el archivo .rdlc.

Agregar un control ReportViewer al informe

  1. En el Explorador de soluciones, abra el formulario de Windows Forms en la vista Diseño.De forma predeterminada, el nombre del formulario es Form1.cs.

  2. En Cuadro de herramientas, en el grupo Informes, arrastre el icono de ReportViewer al formulario.

  3. En el control ReportViewer, abra el panel de etiquetas inteligentes haciendo clic en el glifo de la etiqueta inteligente de la esquina superior derecha.

  4. En la lista Elegir informe, seleccione el informe que acaba de diseñar.De forma predeterminada, el nombre es Report1.rdlc.Observe cómo se crea automáticamente un objeto BindingSource denominado ProductBindingSource correspondiente a cada origen de datos de objeto que se utiliza en el informe.

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

Proporcionar instancias de origen de datos al objeto BindingSource

  1. En el Explorador de soluciones, haga clic con el botón secundario en Form1.cs y seleccione Ver código.

  2. En Form1.cs, dentro de la definición de clase parcial, agregue el siguiente código en la primera línea, antes del constructor.

    // Instantiate the Merchant class.
    private Merchant m_merchant = new Merchant();
    
  3. En el método Form1_Load(), agregue el siguiente código en la primera línea, antes de la llamada a RefreshReport:

    // Bind the Product collection to the DataSource.
    this.ProductBindingSource.DataSource = m_merchant.GetProducts();
    

Ejecutar la aplicación

  • Presione F5 para ejecutar la aplicación y ver el informe.

Vea también

Referencia

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

Conceptos

Utilizar el panel de etiquetas inteligentes Tareas de ReportViewer

Otros recursos

Ejemplos y visitas guiadas