Compartir a través de


Mecanismo de almacenamiento en caché

Puede almacenar en caché informes con tipos declarados y componentes de informe con tipos declarados con Web Forms Viewer. Esta sección explica los principios de almacenamiento en caché de informes, ilustrándolos con un informe con tipos declarados.

Web Forms Viewer utiliza un almacenamiento en caché compatible con ASP.NET, mejorando el rendimiento cuando varios usuarios llaman a la dirección URL de la misma página dinámica; por ejemplo, https://localhost/MyProject/MyWebForm.aspx.

Para aplicar el almacenamiento en caché en un informe almacenado en Web Forms Viewer

  1. Agregue un informe Crystal a un proyecto Web.

    Al agregar el informe al proyecto, una clase de informe en caché (por ejemplo, CachedMyReport para un informe denominado MyReport.rpt), derivada de la interfaz ICachedReport, se crea automáticamente en el archivo de código fuente del informe (por ejemplo, MyReport.cs).

    Puesto que la clase de informe en caché se deriva de ICachedReport, proporciona de forma predeterminada los métodos y las propiedades siguientes:

    • CreateReport

      De forma predeterminada, este método crea una instancia del informe con tipos declarados.

    • GetCustomizedCacheKey

      De forma predeterminada, este método devuelve la clave de la memoria caché predeterminada a la memoria caché ASP.NET.

    • CacheTimeOut

      Esta propiedad devuelve de forma predeterminada un valor predefinido de CachedReportConstants.DEFAULT_TIMEOUT.

    • IsCacheable

      Esta propiedad devuelve de forma predeterminada el valor True.

    • ShareDBLogonInfo

      Esta propiedad devuelve de forma predeterminada el valor False.

  2. Cree una instancia de informe en caché.

    Por ejemplo, puede crear una instancia de CachedMyReport como se indica a continuación:

[Visual Basic]

Dim RDrpt As CachedMyReport
RDrpt = New CachedMyReport()

[C#]

CachedMyReport RDrpt = new CachedMyReport();

[C++] Se pueden agregar componentes de informe a la aplicación de C++ y almacenarlos en caché únicamente mediante código. No hay ejemplos disponibles en C++. Vea ICachedReport para tener un ejemplo de cómo se crea una clase de informe con tipos declarados. Para ver un ejemplo de C# o VB, haga clic en el botón Filtro de lenguaje situado en la esquina superior izquierda de la página.

Dado que CachedMyReport se deriva de ReportDocument, se puede enlazar la instancia resultante a Web Forms Viewer para almacenarla en memoria. Posteriormente, se puede utilizar la clase de informe en caché como se define de forma predeterminada, o bien personalizarlo para que se adapte a las necesidades del usuario.

[VJ#]

CachedMyReport RDrpt = new CachedMyReport();
  1. Enlace la instancia de informe en caché a Web Forms Viewer.

    Por ejemplo, para enlazar el RDrpt creado anterior al objeto de Web Forms Viewer, CrystalReportViewer1:

[Visual Basic]

CrystalReportViewer1.ReportSource = RDrpt

[C#]

CrystalReportViewer1.ReportSource = RDrpt;

[C++] Se pueden agregar componentes de informe a la aplicación de C++ y almacenarlos en caché únicamente mediante código. No hay ejemplos disponibles en C++. Vea ICachedReport para tener un ejemplo de cómo se crea una clase de informe con tipos declarados. Para ver un ejemplo de C# o VB, haga clic en el botón Filtro de lenguaje situado en la esquina superior izquierda de la página.

[VJ#]

CrystalReportViewer1.set_ReportSource(RDrpt);

El control Web Forms Viewer inicia esta instancia de informe en caché con los datos y el estado actual del informe (por ejemplo, el formato del informe). Durante el tiempo de espera en caché, éste se vacía y el control Web Forms Viewer reinicia la memoria caché con el estado actual del informe.

Nota   La actualización de un informe siempre supone una visita a la base de datos. Para evitar el acceso innecesario a la base de datos, especialmente si se ha seleccionado el almacenamiento en caché, el icono Actualizar de la barra de herramientas de Web Forms Viewers se desactiva de forma predeterminada.

Vea también

Almacenar en caché componentes de informe | Enlazar informes a Web Forms Viewers