Share via


Collegamento del report

Durante lo svolgimento delle istruzioni riportate nella sezione Configurazione di un progetto di preparazione a questa esercitazione, un controllo CrystalReportViewer è stato inserito nel Web Form, ma per visualizzare le parti del report è necessario utilizzare il controllo CrystalReportPartsViewer.

In questa sezione viene descritto come creare e collegare un'istanza del report Customers al controllo CrystalReportPartsViewer. e come verificare se il report visualizza le parti create nelle procedure precedenti.

Esistono due metodi per creare e collegare un'istanza del report:

  • Come report incorporato.
  • Come report non incorporato.

Scegliere una delle seguenti procedure.

  • Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report incorporato.
  • Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come report non incorporato.

Passare a Filtro dei dati nel report.

Per creare un'istanza del report Customers come report incorporato e collegarla al controllo CrystalReportPartsViewer

  1. Aprire il Web Form.

  2. Dal menu Visualizza, scegliere Finestra di progettazione.

  3. Eliminare il controllo CrystalReportViewer.

  4. Nella casella degli strumenti, aprire il nodo Crystal Reports per individuare il controllo CrystalReportPartsViewer.

  5. Trascinare il controllo CrystalReportPartsViewer nel Web Form.

  6. Nella finestra Proprietà, impostare la proprietà ID come segue:

    • Per i siti Web Visual Basic, su "myCrystalReportPartsViewer".
    • Per i siti Web C#, su "crystalReportPartsViewer".
  7. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante del Windows Form.

  8. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report Customers, utilizzando il nome di variabile customersReport. Impostare il modificatore di accesso su private.

    Private customersReport As Customers
    
    private Customers customersReport;
    
  9. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

    NoteNota

    Il metodo ConfigureCrystalReports() è stato creato in Configurazione di un progetto.

    customersReport = New Customers()
    
    customersReport = new Customers();
    
  10. Nella riga successiva, al di sotto della creazione dell'istanza del report, collegare la proprietà ReportSource del controllo CrystalReportPartsViewer alla classe del report di cui è stata creata l'istanza (nome variabile:customersReport).

    myCrystalReportPartsViewer.ReportSource = customersReport
    
    crystalReportPartsViewer.ReportSource = customersReport;
    
    NoteNota

    L'istanza del controllo CrystalReportPartsViewer è accessibile nel codice perché il controllo è stato aggiunto al Web Form o al Windows Form. Se IntelliSense non riconosce l'istanza del controllo CrystalReportPartsViewer, verificare che il controllo CrystalReportPartsViewer sia stato aggiunto come dichiarazione a livello di classe a questa classe di codice sottostante.

Per creare un'istanza del report Customers come report non incorporato e collegarla al controllo CrystalReportPartsViewer

A questo punto è possibile creare ed eseguire il progetto.

  1. Aprire il Web Form.

  2. Dal menu Visualizza, scegliere Codice.

  3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument, utilizzando il nome di variabile customersReport. Impostare il modificatore di accesso su private.

``` vb
Private customersReport As ReportDocument
```

``` csharp
private ReportDocument customersReport;
```

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\Aa983431.alert_note(it-it,VS.90).gif" alt="Note" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il quale è stata aggiunta una dichiarazione &quot;Imports&quot; [Visual Basic] o &quot;using&quot; [C#] in <a href="ms227453(v=vs.90).md">Configurazione di un progetto</a>. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.</p></td>
</tr>
</tbody>
</table>
  1. Nel metodo ConfigureCrystalReports() (aggiunto durante una delle procedure riportate in Configurazione di un progetto), creare un'istanza della classe ReportDocument.

    customersReport = New ReportDocument()
    
    customersReport = new ReportDocument();
    
  2. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di progetti Windows:

    • In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale al percorso della directory di file del disco rigido.

      Dim reportPath As String = Server.MapPath("Customers.rpt")
      
      string reportPath = Server.MapPath("Customers.rpt");
      
    • In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa directory dell'eseguibile Windows.

      NoteNota

      Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

      Dim reportPath As String = Application.StartupPath & "\" & "Customers.rpt"
      
      string reportPath = Application.StartupPath + "\\" + "Customers.rpt";
      
  3. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

``` vb
customersReport.Load(reportPath)
```

``` csharp
customersReport.Load(reportPath);
```
  1. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo CrystalReportPartsViewer all'istanza ReportDocument.

    myCrystalReportPartsViewer.ReportSource = customersReport
    
    crystalReportPartsViewer.ReportSource = customersReport;
    

Per verificare il caricamento del report Customers

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di report non incorporato, il nome di variabile utilizzato è sempre lo stesso: customersReport. Questo consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito negativo, poiché il codice per l'impostazione di un valore per campo parametro Città non è stato ancora scritto. Più avanti nel corso di questa esercitazione viene descritto come aggiungere un valore per il campo parametro Città.

  1. Dal menu Genera, scegliere Genera soluzione.

  2. Se si verificano errori di generazione, correggerli.

  3. Dal menu Debug, scegliere Avvia.

Il report Customers viene visualizzato nel browser.
  1. Fare clic su un paese per visualizzare un elenco di regioni.

  2. Fare clic su una regione per visualizzare i campi Nome cliente, Vendite anno precedente e Città.

  3. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.