Share via


Collegamento del report e impostazione di DataSource nel DataSet compilato

In questa sezione viene descritto come creare un'istanza del report creato, compilare il DataSet del report e visualizzare il report nel controllo CrystalReportViewer. Viene eseguita la compilazione del report mediante l'assegnazione della proprietà SetDataSource al DataSet compilato, restituito dalla proprietà CustomerDataSet della classe DataSetConfiguration. Infine, il report compilato viene collegato al controllo CrystalReportViewer.

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

  • Come report incorporato.
  • Come report non incorporato.

Scegliere una delle seguenti procedure.

Per creare e collegare un'istanza di un report non incorporato al controllo CrystalReportViewer

  1. Aprire il Web Form o il Windows 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 customerReport. Impostare il modificatore di accesso su private.

<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>

``` vb
Private customerReport As ReportDocument
```

``` csharp
private ReportDocument customerReport;
```
  1. Nel metodo ConfigureCrystalReports() (aggiunto durante una delle procedure riportate in Configurazione di un progetto), creare un'istanza della classe ReportDocument.

    customerReport = New ReportDocument()
    
    customerReport = 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("Customer.rpt")
      
      string reportPath = Server.MapPath("Customer.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 & "\" &
      "Customer.rpt"
      
      string reportPath = Application.StartupPath + "\\" +
      "Customer.rpt";
      
  3. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

``` vb
customerReport.Load(reportPath)
```

``` csharp
customerReport.Load(reportPath);
```
  1. Dichiarare un DataSet e assegnargli la proprietà DataSetConfiguration.CustomerDataSet property.

    Dim myDataSet As DataSet = DataSetConfiguration.CustomerDataSet
    
    DataSet dataSet = DataSetConfiguration.CustomerDataSet;
    
  2. Chiamare il metodo SetDataSource() dell'istanza customerReport di ReportDocument e passargli l'istanza DataSet.

``` vb
customerReport.SetDataSource(myDataSet)
```

``` csharp
customerReport.SetDataSource(dataSet);
```
  1. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo CrystalReportViewer all'istanza ReportDocument.

    myCrystalReportViewer.ReportSource = customerReport
    
    crystalReportViewer.ReportSource = customerReport;
    

Per creare e collegare un'istanza di un report incorporato al controllo CrystalReportViewer

  1. Aprire il Web Form o il Windows Form.

  2. Dal menu Visualizza, scegliere Codice.

  3. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports"[Visual Basic] o "using"[C#] per lo spazio dei nomi System.Data, se non è già presente.

``` vb
Imports System.Data
```

``` csharp
using System.Data;
```
  1. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report Customer, utilizzando il nome di variabile customerReport.customerReport. Impostare il modificatore di accesso su private.

    Private customerReport As Customer
    
    private Customer customerReport;
    
  2. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

    NoteNota

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

    customerReport = New Customer()
    
    customerReport = new Customer();
    
  3. Nella riga successiva sotto la creazione dell'istanza del report, dichiarare un DataSet.

Questo passaggio e quello successivo separano la dichiarazione della variabile dall'assegnazione della stessa. Ogni riga di codice viene tenuta separata perché, in un'appendice di questa esercitazione relativa a un sito Web, l'assegnazione della variabile verrà riprogettata in un blocco di codice che memorizza il DataSet nell'oggetto Cache ASP.NET.

``` vb
Dim myDataSet As DataSet
```

``` csharp
DataSet dataSet;
```
  1. Assegnare l'istanza DataSet alla proprietà DataSetConfiguration.CustomerDataSet.

    myDataSet = DataSetConfiguration.CustomerDataSet
    
    dataSet = DataSetConfiguration.CustomerDataSet;
    
  2. Chiamare il metodo SetDataSource() dell'istanza CustomerReport e passargli l'istanza DataSet.

``` vb
customerReport.SetDataSource(myDataSet)
```

``` csharp
customerReport.SetDataSource(dataSet);
```
  1. Collegare la proprietà ReportSource del controllo CrystalReportViewer all’istanza CustomerReport.

    myCrystalReportViewer.ReportSource = customerReport
    
    crystalReportViewer.ReportSource = customerReport;
    

Per verificare il caricamento del report Customer e del suo DataSet compilato

A questo punto è possibile creare ed eseguire il progetto.

  1. Dal menu Genera, scegliere Genera soluzione.

  2. Se si verificano errori di generazione, correggerli.

  3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

    NoteNota

    Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è necessario salvare il report nella stessa directory dell'eseguibile.

  4. Dal menu Debug, scegliere Avvia.

  5. Il report Customer visualizza i dati compilati inseriti nel DataSet.

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

Se si crea un progetto Windows, l'esercitazione è terminata.

Se si sta creando un sito Web, passare a Memorizzazione in cache del DataSet in un sito Web.