Condividi tramite


Meccanismo di memorizzazione nella cache

È possibile memorizzare nella cache i report e i componenti con tipizzazione forte con Web Forms Viewer. Questa sezione descrive i principi di memorizzazione dei report nella cache, illustrandoli con un report con tipizzazione forte.

Web Forms Viewer utilizza una memorizzazione nella cache supportata da ASP.NET, che migliora le prestazioni quando l'URL della stessa pagina dinamica (ad esempio, https://localhost/MyProject/MyWebForm.aspx) viene richiamato da diversi utenti.

Per applicare la memorizzazione nella cache a un report ospitato in un Web Forms Viewer

  1. Aggiungere il report al progetto Web.

    Quando si aggiunge il report al progetto, viene creata automaticamente una classe di report di cache (ad esempio, CachedMyReport per un report denominato MyReport.rpt), derivata dall'interfaccia ICachedReport, nel file di origine del report (ad esempio, MyReport.cs).

    Poiché la classe di report di cache deriva da ICachedReport, per impostazione predefinita, presenta i seguenti metodi e proprietà:

    • CreateReport

      Per impostazione predefinita, questo metodo crea un'istanza del report con tipizzazione forte.

    • GetCustomizedCacheKey

      Per impostazione predefinita, questo metodo restituisce la chiave della cache predefinita nella cache ASP.NET.

    • CacheTimeOut

      Questa proprietà restituisce un valore predefinito di CachedReportConstants.DEFAULT_TIMEOUT.

    • IsCacheable

      Questa proprietà restituisce il valore True per impostazione predefinita.

    • ShareDBLogonInfo

      Questa proprietà restituisce il valore False per impostazione predefinita.

  2. Creare un'istanza del report di cache.

    Ad esempio, è possibile creare un'istanza di CachedMyReport come indicato di seguito:

[Visual Basic]

Dim RDrpt As CachedMyReport
RDrpt = New CachedMyReport()

[C#]

CachedMyReport RDrpt = new CachedMyReport();

[C++] È possibile aggiungere componenti di report all'applicazione C++ e memorizzarli nella cache solo tramite codice. In C++ non è disponibile alcun esempio. Per un esempio di creazione di una classe di report con tipizzazione forte, vedere ICachedReport. Per visualizzare un esempio in C# o VB, fare clic sul pulsante Language Filter nell'angolo in alto a sinistra della pagina.

Poiché CachedMyReport deriva da ReportDocument, è possibile collegare l'istanza risultante con un Web Forms Viewer per memorizzarla nella cache. È possibile quindi utilizzare tale classe predefinita, oppure personalizzarla in base alle necessità.

[VJ#]

CachedMyReport RDrpt = new CachedMyReport();
  1. Collegare l'istanza del report di cache a Web Forms Viewer.

    Ad esempio, per collegare RDrpt creato in precedenza al Web Forms Viewer, CrystalReportViewer1:

[Visual Basic]

CrystalReportViewer1.ReportSource = RDrpt

[C#]

CrystalReportViewer1.ReportSource = RDrpt;

[C++] È possibile aggiungere componenti di report all'applicazione C++ e memorizzarli nella cache solo tramite codice. In C++ non è disponibile alcun esempio. Per un esempio di creazione di una classe di report con tipizzazione forte, vedere ICachedReport. Per visualizzare un esempio in C# o VB, fare clic sul pulsante Language Filter nell'angolo in alto a sinistra della pagina.

[VJ#]

CrystalReportViewer1.set_ReportSource(RDrpt);

Il controllo Web Forms Viewer inizializza tale istanza di report di cache con i dati e lo stato corrente del report (ad esempio, formato report). Quando si verifica il timeout della cache, quest'ultima viene cancellata e il controllo Web Forms Viewer la reinizializza con lo stato del report corrente.

Nota   L'aggiornamento di un report determina sempre un passaggio nel database. Per evitare di richiamare inutilmente il database, soprattutto se è stata selezionata l'opzione di memorizzazione nella cache, per impostazione predefinita sulla barra degli strumenti di Web Forms Viewer viene disattivata l'icona Aggiorna.

Vedere anche

Memorizzazione nella cache dei componenti dei report | Collegamento dei report a Web Forms Viewer