Compartir a través de


Tutorial: Conservar el modelo de objetos ReportDocument con Session

En este tutorial, usará el modelo de objetos ReportDocument y realizará cambios mediante programación en un informe en tiempo de ejecución. También aprenderá a usar Session para conservar estos cambios aunque se vuelva a cargar la página Web.

Puesto que sólo las aplicaciones Web requieren la persistencia de Session, este tutorial no se aplica a los proyectos de Windows.

Nota

Para obtener información general sobre la persistencia, vea ¿Cuál es el enfoque de persistencia que se debe utilizar con Crystal Reports? en aspectos fundamentales del SDK.

Introducción

El proyecto que creará en este tutorial usa un Web Forms que contiene un control CrystalReportViewer y dos botones que cambian la dirección de ordenamiento del informe dentro del modelo de objetos ReportDocument.

En primer lugar, va a construir el proyecto sin la persistencia de Session. Sin ella, puede comprobar que el cambio de la dirección de ordenamiento tan sólo dura un evento de clic de botón.

A continuación, va a agregar la persistencia de Session al proyecto. La instancia de ReportDocument se coloca en Session en la fase de creación, así como en cualquier momento en el que se cambie el estado de esta instancia de ReportDocument.

Siempre que se deba volver a mostrar el informe, la instancia de ReportDocument se obtiene de Session y se enlaza al control CrystalReportViewer. De esta forma, se garantiza que siempre que se muestra el informe, el usuario verá la versión más reciente de la instancia de ReportDocument.

Nota

En este tutorial usará Session, porque querrá conservar las modificaciones que realice en el modelo de objetos ReportDocument. Si sólo pretende usar el modelo de objetos limitado que contiene el control CrystalReportViewer, use ViewState exclusivamente.

Cuándo usar Session para conservar un objeto ReportDocument, ¿hay otros modelos de persistencia involucrados?

Cuándo usar Session para conservar un objeto ReportDocument, ¿hay otros modelos de persistencia involucrados?

Sí. En una aplicación Web ASP.NET, los objetos suelen utilizar Session para la persistencia, mientras que los controles de servidor Web usan ViewState. Como una aplicación Web de Crystal Reports para Visual Studio usa objetos y controles de servidor Web para interactuar con informes, Session y ViewState comparten la persistencia:

  • Session conserva el modelo de objetos ReportDocument, que interactúa con el informe mediante programación en tiempo de ejecución.
  • ViewState conserva el control CrystalReportViewer, que muestra el informe. En particular, ViewState conserva las propiedades de visualización, que se establecen en la barra de herramientas de CrystalReportViewer. ViewState también conserva los eventos (como zoom, NextPage) que se activan mediante botones de la barra de herramientas.

La persistencia de ViewState se administra automáticamente. Por ello, en este tutorial sólo codificará la persistencia de Session.

Código de ejemplo

Este tutorial incluye código de ejemplo de C# y Visual Basic que muestra la versión finalizada del proyecto. Siga las instrucciones de este tutorial para crear un nuevo proyecto o para abrir el proyecto de código de ejemplo y trabajar con una versión finalizada.

El código de ejemplo se almacena en carpetas que están clasificadas por idioma y tipo de proyecto. Los nombres de las carpetas de cada versión del código de ejemplo son los siguientes:

  • Sitio Web en C#: CS_Web_RDObjMod_Session
  • Sitio Web en Visual Basic: VB_Web_RDObjMod_Session

Para localizar las carpetas que contienen estos ejemplos, vea Directorio del código de ejemplo de los tutoriales.

En esta sección

Vea también