Compartir a través de


Enlazar a una clase de informe incrustado almacenado en caché

Modelo de objetos

Este caso de enlace de informes utiliza ReportDocument (vea Enlazar informes al modelo de objetos ReportDocument).

Ubicación de los informes

Los informes se incrustan en el proyecto.

Descripción

Cuando se incrusta un informe en un proyecto de Visual Studio, se genera automáticamente una clase contenedora de informes que representa el archivo del informe en el proyecto. Al mismo tiempo, se genera automáticamente una clase de utilidad de administración de caché para ese informe.

El uso de la clase contenedora se describe en Enlazar a una clase de informe incrustado.

En este caso, enlace el control CrystalReportViewer a la clase de utilidad de administración de caché, para que se administre automáticamente el almacenamiento en caché en el objeto ASP.NET Cache.

Nota

Para obtener información detallada sobre el almacenamiento en caché de los informes y la clase de utilidad de almacenamiento en caché, vea Cuándo utilizar informes normales o almacenados en caché.

Uso del almacenamiento en caché

El almacenamiento en caché tiene un uso específico y limitado, que puede consumir demasiados recursos del sistema si no se administra con cuidado. Para obtener información sobre cuándo utilizar el almacenamiento en caché, vea Almacenar en caché informes con "alta compartibilidad".

Almacenamiento en caché de informes no incrustados

Si desea administrar el almacenamiento en caché de informes no incrustados, debe crear su propia clase de utilidad de administración de caché. Para obtener más información, vea Enlazar a un informe no incrustado cargado en una clase de utilidad de administración de caché.

Ventajas

  • Compartibilidad: es ideal para almacenar informes con compartibilidad alta y pocas permutaciones en los parámetros o en la información de inicio de sesión.
  • Optimiza el acceso a los datos: si los informes con compartibilidad alta son muy grandes, o tienen una consulta tan compleja que tarda varios minutos en recuperar la información, se puede tener acceso a los datos más rápidamente con la clase de utilidad d

Desventajas

  • Penalización de servidor: los informes que se conservan en el objeto ASP.NET Cache pueden sobrecargar los recursos de memoria del servidor.
  • Problemas de persistencia: el caché tiene algunas dependencias que le permiten buscar los cambios de una instancia de informe y volver a almacenarla en caché. Sin embargo, si cambia la base de datos, la instancia del informe de Cache no se actualiza para mostrar ese cambio.
  • Consume recursos: un informe con parámetros a los que se llama frecuentemente con distintas cadenas de parámetros (sobre todo si uno de esos parámetros es el id de usuario) implican un nuevo informe en caché cada vez. Este proceso consume los recursos del sistema. Si el informe no tiene compartibilidad alta, la instancia del mismo se debe asignar a un objeto Session. Vea Session y persistencia del modelo de objetos ReportDocument.

Para enlazar a una clase de utilidad de administración de caché

Nota

Este procedimiento sólo funciona con un proyecto creado a partir de la Configuración de proyectos. La configuración de proyectos contiene referencias específicas a espacios de nombres y configuración de códigos necesarios para este procedimiento, que no se podrá completar sin dicha configuración. Por lo tanto, antes de empezar con este procedimiento, primero debe seguir los pasos de Configuración de proyectos.

  1. En el método ConfigureCrystalReports() (creado en Configuración de proyectos), elimine las líneas de código existentes para reemplazar la clase contenedora de informes por la clase de utilidad de administración de caché.

  2. Cree una instancia de la clase de utilidad de administración de caché asociada con el informe Hierarchical Grouping.rpt.

``` vb
Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping
= New CachedHierarchical_Grouping()
```

``` csharp
CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new
CachedHierarchical_Grouping();
```
  1. Pase la instancia de la utilidad de administración de caché al control CrystalReportViewer.
``` vb
myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport
```

``` csharp
crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;
```
  1. Para ver el informe, cree y ejecute el proyecto.

Vea también