Opzioni di collegamento dei report per Windows Forms Viewer
Gli scenari che seguono si applicano alle applicazioni Visual Basic .NET e C#, nonché alle applicazioni Managed C++ se non indicato diversamente.
Scenario 1: Report locale
Si supponga che esistano le seguenti condizioni e che un report di Crystal sia disponibile su un computer locale:
- La cartella C:\Reports su un computer locale contiene un report di Crystal, My Report.rpt.
In un'applicazione Visual Basic o C#
- È stato creato un progetto Applicazione Windows, MyProject, nella cartella predefinita per l'utente connesso come Administrator (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- È stato inserito un Windows Forms Viewer,
CrystalReportViewer1,
nel Windows Form, all'interno di MyProject.
È possibile collegare My Report.rpt a Windows Forms Viewer in base al nome di report, all'oggetto report o al componente di report non tipizzato.
In un'applicazione C++
- È stato creato un progetto Managed C++, MyProject, nella cartella predefinita per l'utente connesso come Administrator (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- È stato inserito un Windows Forms Viewer,
crystalReportViewer1
, in MyProject.cpp all'interno di MyProject.
È possibile collegare My Report.rpt a Windows Forms Viewer in base al nome del report o all'oggetto report.
Collegamento per nome di report
A seconda della lingua del progetto, è possibile specificare la proprietà ReportSource utilizzando la finestra delle proprietà o il codice:
In un'applicazione Visual Basic o C#
- Selezionare Windows Forms Viewer nella visualizzazione Progettazione del Windows Form. Nella finestra delle proprietà, selezionare "C:\Reports\My Report.rpt" per la proprietà ReportSource.
- Nell'Editor del codice impostare il nome del report nella proprietà ReportSource di Windows Forms Viewer.
In un'applicazione C++
Nell'Editor del codice impostare il nome del report nella proprietà ReportSource di Windows Forms Viewer.
Esempio
Impostare il nome del report nella proprietà ReportSource di Windows Forms Viewer.
[Visual Basic]
CrystalReportViewer1.ReportSource = _
"C:\\Reports\\My Report.rpt"
[C#]
crystalReportViewer1.ReportSource =
"C:\\Reports\\My Report.rpt";
[C++]
crystalReportViewer1->ReportSource =
"C:\\Reports\\My Report.rpt";
[VJ#]
crystalReportViewer1.set_ReportSource(
"C:\\Reports\\My Report.rpt");
Collegamento per oggetto report
È possibile creare un oggetto report, assegnare un report all'oggetto e collegare quest'ultimo a un Windows Forms Viewer. Attraverso l'oggetto report, è possibile accedere all'intero modello oggetto esposto da Crystal Reports per Visual Studio .NET.
Per collegare un oggetto report a Windows Forms Viewer in un progetto Visual Basic.
Aggiungere un riferimento a CrystalDecisions.CrystalReports.Engine.
Aprire Form1.vb nell'Editor del codice.
Aggiungere il seguente spazio dei nomi a Form1.vb:
Imports CrystalDecisions.CrystalReports.Engine
Creare un oggetto report come variabile ReportDocument pubblica in
Form1()
:Public WithEvents oRpt As ReportDocument
Nel metodo
New(),
utilizzare l'oggetto Report Document per caricare My Report.rpt e collegarlo a Windows Forms Viewer:Public Sub New() MyBase.New() 'Questa chiamata è richiesta dalla finestra di progettazione Windows Forms. InitializeComponent() 'Aggiungere una inizializzazione dopo la chiamata 'InitializeComponent() oRpt = New ReportDocument() oRpt.Load("C:\\Reports\\My Report.rpt") CrystalReportViewer1.ReportSource = oRpt End Sub
Per collegare un oggetto report a Windows Forms Viewer in un progetto C#.
Aggiungere un riferimento a CrystalDecisions.CrystalReports.Engine.
Aprire Form1.cs nell'Editor del codice.
Aggiungere il seguente spazio dei nomi a Form1.cs:
using CrystalDecisions.CrystalReports.Engine;
Creare un oggetto report come variabile ReportDocument pubblica in
Form1()
:public ReportDocument oRpt=null;
Nella funzione
Form1()
utilizzare l'oggetto Report Document per caricare My Report.rpt e collegarlo a Windows Forms Viewer:Public Form1() { // // Richiesto per il supporto della finestra di progettazione Windows Forms // InitializeComponent(); // // OBBLIGATORIO: Aggiungere codice costruttore dopo la chiamata InitializeComponent // // oRpt = new ReportDocument(); oRpt.Load("c:\\Reports\\My Report.rpt"); crystalReportViewer1.ReportSource = oRpt; }
Per collegare un oggetto report a Windows Forms Viewer in un progetto C++.
Fare doppio clic su MyProject.cpp in Esplora soluzioni per aprirlo nell'Editor del codice.
Aggiungere i seguenti componenti a MyProject.cpp:
#using <C:\Programmi\File Comuni\Crystal Decisions\1.1\Managed\CrystalDecisions.CrystalReports.Engine.dll> #using <C:\Programmi\File Comuni\Crystal Decisions\1.1\Managed\CrystalDecisions.Windows.Forms.dll>
Aggiungere i seguenti spazi dei nomi a MyProject.cpp:
using namespace CrystalDecisions::CrystalReports::Engine; using namespace CrystalDecisions::Windows::Forms;
Creare un oggetto report come variabile ReportDocument pubblica:
ReportDocument *oRpt = null;
Creare un Windows Forms Viewer come variabile CrystalReportViewer pubblica e collegarlo a un oggetto modulo.
Form* form1 = new Form(); CrystalReportViewer crystalReportViewer1 = new crystalReportViewer form1->Controls->Add(crystalReportViewer1);
Utilizzare l'oggetto Report Document per caricare My Report.rpt e collegarlo a Windows Forms Viewer:
oRpt = new ReportDocument(); oRpt->Load("c:\\Reports\\My Report.rpt"); crystalReportViewer1->ReportSource = oRpt;
Collegamento per componente del report non tipizzato
Si supponga di aver aggiunto un componente del report non tipizzato , reportDocument1, al Windows Form e di aver caricato il componente con c:\Reports\My Report.rpt.
È possibile collegare tale componente non tipizzato a Windows Forms Viewer specificando la proprietà ReportSource tramite codice:
[Visual Basic]
CrystalReportViewer1.ReportSource = reportDocument1
[C#]
crystalReportViewer1.ReportSource = reportDocument1;
[C++] È possibile aggiungere oggetti report all'applicazione C++ solo tramite codice. Per ulteriori informazioni vedere la precedente sezione Per collegare un oggetto report a Windows Forms Viewer in un progetto C++. 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(reportDocument1);
Scenario 2: Report locale aggiunto al progetto
Si supponga che esistano le seguenti condizioni e che un report di Crystal sia disponibile su un computer locale:
In un'applicazione Visual Basic o C#
- È stato creato un progetto Applicazione Windows, MyProject, nella cartella predefinita per l'utente connesso come Administrator (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
- È stato inserito un Windows Forms Viewer, CrystalReportViewer1
,
nel Windows Form, all'interno di MyProject. - È stato aggiunto il report My Report.rpt a MyProject.
È possibile collegare My Report.rpt a Windows Forms Viewer per oggetto report o componente del report con tipizzazione forte.
In un'applicazione C++
- È stato creato un progetto Managed C++, MyProject, nella cartella predefinita per l'utente connesso come Administrator (C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects).
Occorre aggiungere il Web Forms Viewer e il report tramite codice
Per oggetto report:
In un'applicazione Visual Basic o C#
Quando si aggiunge My Report.rpt a MyProject, la classe di report corrispondente, My_Report, viene generata automaticamente nel file di origine di My Report.rpt. È possibile collegare My Report.rpt al Windows Forms Viewer assegnando l'oggetto report corrispondente alla proprietà ReportSource tramite la visualizzazione del codice relativa a Windows Form:
In un'applicazione C++
Per i progetti C++ non viene generata automaticamente alcuna classe di report. È possibile aggiungere questa classe all'applicazione C++ tramite codice.
Esempio
[Visual Basic]
CrystalReportViewer1.ReportSource = new My_Report()
[C#]
crystalReportViewer1.ReportSource = new My_Report();
[C++]
public __gc Class MyWebClass{
public:
CrystalReportViewer* CrystalReportViewer1;
ReportDocument* oRpt;
void BindReport(){
CrystalReportViewer1 = new CrystalReportViewer();
oRpt = new ReportDocument();
oRpt->Load("c:\\Reports\\My Report.rpt");
CrystalReportViewer1->ReportSource = oRpt;
};
};
[VJ#]
crystalReportViewer1.set_ReportSource(new My_Report());
Collegamento per componente del report con tipizzazione forte
In un'applicazione Visual Basic o C#
Si supponga di aver aggiunto My Report.rpt come un componente con tipizzazione forte a MyProject.
È possibile collegare il report come componente a Windows Forms Viewer specificando la proprietà ReportSource tramite la finestra delle proprietà o la visualizzazione del codice di Windows Form1:
- Selezionare Windows Forms Viewer nella visualizzazione Progettazione del Windows Form. Nella finestra delle proprietà, per ReportSource, selezionare my_Report1 [MyProject.My_Report] dall'elenco a discesa.
- In alternativa, nella visualizzazione del codice di Windows Form, impostare la proprietà ReportSource di Windows Forms Viewer.
In un'applicazione C++
Per i progetti C++ non viene generata automaticamente alcuna classe di report. È possibile aggiungere questa classe all'applicazione C++ tramite codice.
Esempio
[Visual Basic]
CrystalReportViewer1.ReportSource = my_Report1
[C#]
crystalReportViewer1.ReportSource = my_Report1;
[C++]
public __gc Class MyWebClass{
public:
CrystalReportViewer* CrystalReportViewer1;
ReportDocument* oRpt;
void BindReport(){
CrystalReportViewer1 = new CrystalReportViewer();
oRpt = new ReportDocument();
oRpt->Load("c:\\Reports\\My Report.rpt");
CrystalReportViewer1->ReportSource = oRpt;
};
};
[VJ#]
crystalReportViewer1.set_ReportSource( my_Report1);