Share via


¿Cómo utilizo los controles de visores de informes?

Los controles de visores de informes son controles .NET que se pueden agregar a un formulario en una aplicación para Windows o Web, con el fin de mostrar los informes en dicho formulario.

Al planear la creación de una aplicación con el SDK de Crystal Reports, una de las consideraciones más importantes es si se van a utilizar controles de visores de informes. Conocer los aspectos fundamentales del SDK que afectan a estos controles le ayudará a elegir la estructura más adecuada para el proyecto de Crystal Reports para Visual Studio.

¿Qué son los controles .NET?

Los controles de Microsoft .NET son un tipo especial de clases que se muestran en el Cuadro de herramientas de Visual Studio. Se agregan a Web Forms o Windows Forms como objetos GUI, y heredan de una clase base Control común. Los controles .NET típicos son: Button, DropDownList, CheckBox, TextBox o DataGrid.

Los controles de Microsoft .NET cumplen la siguiente práctica recomendada: separar la capa de presentación de la capa de lógica empresarial. Encapsulan la información de presentación dentro del propio control en Web Forms o Windows Forms. En la clase de código subyacente, el control .NET se genera como una instancia de nivel de clase. Esta variable de instancia proporciona acceso a las propiedades, métodos y eventos del control

Los controles de Microsoft .NET son funcionalmente idénticos tanto para Windows Forms como para Web Forms. .NET Framework ve cada página Web como un formulario que contiene controles, como ocurre en las aplicaciones para Windows.

¿Por qué Crystal Reports utiliza los controles .NET para la presentación de informes?

Uno de los puntos fuertes de las herramientas de creación de informes es que encapsulan los problemas complejos de estructura, diseño y presentación de informes en una herramienta GUI sencilla. De igual forma, los controles .NET encapsulan los problemas complejos de presentación y llenado de datos de un objeto GUI sencillo en un Web Form o Windows Form.

Mediante el uso de controles .NET, se unifican la creación y la presentación complejas de informes. Toda esta información compleja de informes, que se solía encapsular sólo en la versión independiente de Crystal Reports, ahora se encapsula en un control .NET como visor de informes.

¿Cuántos controles de visores de informes hay?

Crystal Reports para Visual Studio incluye dos versiones del control CrystalReportViewer: una para aplicaciones Web y otra para aplicaciones para Windows. Los proyectos Web ASP.NET utilizan el control CrystalReportViewer, situado en el espacio de nombres CrystalDecisions.Web. Los proyectos de Windows utilizan el control CrystalReportViewer, situado en el espacio de nombres CrystalDecisions.Windows.Forms.

Nota

Crystal Reports para Visual Studio incluye varias mejoras importantes del control CrystalReportViewer. Para obtener más información, vea Control CrystalReportViewer.

El control CrystalReportPartsViewer sólo se usa para mostrar elementos de informes en una página Web. Para aprender a usar el control de elementos de informes, vea Tutorial: Presentar secciones de informes con el control CrystalReportPartsViewer.

Presentación de un informe mediante el control CrystalReportViewer

El control CrystalReportViewer muestra sólo un informe a la vez. El informe que muestra el control lo determina el informe enlazado al código. Para indicar al control el informe que se va a mostrar, enlace la propiedad ReportSource del control a un informe en concreto. En tiempo de ejecución, el control carga el informe enlazado a la propiedad ReportSource y lo muestra.

En su forma más sencilla, la asignación tiene el siguiente aspecto:

crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt"
crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";

En este caso, el informe está enlazado al control directamente desde su ruta en el directorio de archivos.

De esta forma se muestra la forma más básica de enlazar un informe al control CrystalReportViewer. Para obtener una lista completa de los casos de enlace, vea ¿Cuál es el caso de enlace de informes que se debe utilizar?

¿El control CrystalReportViewer se enlaza a objetos de datos?

No. El control CrystalReportViewer se enlaza a un objeto de informe, no a un objeto de datos.

La razón es que el objetivo del control CrystalReportViewer es distinto al del resto de los controles .NET. Los demás controles .NET se enlazan a los datos y dan formato a los datos sin formato de la página. Puesto que Crystal Reports Designer incrustado lo hace automáticamente cada vez que crea un informe (un informe por definición encapsula la recuperación y presentación de datos), el control CrystalReportViewer sólo se ocupa de mostrar un objeto de informe.

En la siguiente tabla se comparan los enlaces a un control de datos .NET y a un control CrystalReportViewer.

Tipo de control
Se enlaza a
Conectividad del siguiente nivel
Control de datos .NET (como control DataGrid)
Un objeto de datos (DataSet, DataReader, DataView, IDictionary, ICollection, DataTable).
Ninguna
Control de visores de informes .NET (como control CrystalReportViewer)
Un objeto de informe (que encapsula un archivo de informe Crystal).
EL archivo de informe de Crystal dispone de conectividad de datos integrada, que se conecta a diversos orígenes de datos como ODBC y OleDb, así como a objetos DataReader y DataSet.

Para ayudarle a recordar que un control CrystalReportViewer enlaza a un objeto de informe, en vez de a un objeto de datos, la propiedad de origen del control de visor de informes se denomina ReportSource (no DataSource).

Enlace automático de informes

Otra diferencia del enlace de un control CrystalReportViewer es que no tiene que llamar manualmente a ningún método Bind, como haría para la mayoría de los controles .NET. En su lugar, el control enlaza automáticamente el visor de informes al objeto de informe. Para obtener más información sobre enlace de informes, vea ¿Cuál es el caso de enlace de informes que se debe utilizar?.

En esta sección