Caricare un report Crystl Report da codice

lunedì 01 ottobre 2007 - 22.22

schumy80 Profilo | Newbie

Salve a tutti. Vi sapiego il mio problema. Hoostruito un report con Crsytal Report ed ho il file .rpt
Attualmente per vederlo devo creare una form, inserirci trascindando con il mouse il "CrystalReportViewer" collegandolo a mioreport.rpt

Avrei la necessità di specificare dinamicamente il report da caricare...
Quindi usare una sola form "VediReport" (che apro da pulsante) ma poi specificare quale aprire. Non sono molto pratico di VS 2005 di crystal report...se qualcuno può aiutermi.
Grazie

SSUPERPIPPO Profilo | Guru

>Salve a tutti.

Ciao

>Vi sapiego il mio problema. Hoostruito un report con Crsytal Report ed ho il file .rpt
>Attualmente per vederlo devo creare una form, inserirci trascindando con il mouse il "CrystalReportViewer" collegandolo a >mioreport.rpt

>Avrei la necessità di specificare dinamicamente il report da caricare...
>Quindi usare una sola form "VediReport" (che apro da pulsante) ma poi specificare quale aprire. Non sono molto pratico di VS 2005 >di crystal report...se qualcuno può aiutermi.

Ecco come ho faccio io:

Public Class FormAnteprima
Inherits System.Windows.Forms.Form

Public DsDocumento As DataSet
Dim StrFiltro As String
Dim StrReport As String

Public Sub Filtro(ByVal StrStringa As String, ByVal StrNomeReport As String)

' Memorizza la stringa di selezione da passare al report

StrFiltro = StrStringa

' Memorizza il nome del report da aprire

StrReport = StrNomeReport

End Sub

Private Sub Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RptAnteprima.Load

' Esegue la stampa anteprima

Dim IntCont As Integer
Dim Stampa As New ReportDocument
Dim Tabella As Table

' Carica il report

Stampa.Load(StrReport)

' Modifica dinamicamente il dataset di riferimento

For Each Tabella In Stampa.Database.Tables
Tabella.SetDataSource(DsDocumento)
Next Tabella

' RptAnteprima è il mio CrystalReportViewer. Imposto la proprietà ReportSource assegnandogli l'oggetto Stampa prima creato
' passo poi la Select come eventuale filtro (StrFiltro) ed avvio la stampa in anteprima

Me.RptAnteprima.ReportSource = Stampa
Me.RptAnteprima.SelectionFormula = StrFiltro
Me.RptAnteprima.Show()

End Sub

End Class

Quando istanzierai questa Form dovrai passargli attraverso il metodo Filtro, la stringa di selezione e il nome del report.
Devi poi impostare il Dataset (DsDocumento)
A questo punto puoi richiamare il metodo ShowDialog.

>Grazie

Prego, ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

schumy80 Profilo | Newbie

ma il ho creato il mio report con una sua connessione ADO già definita nel rpt.
Soltanto che io attualmente per farlo funzionare devo:
1) creare una form vuota
2) portarci dentro il reportviewer collegato al file .rpt
3) nella action del mio pulsante faccio:

Dim miaform as FormReport
FormReport.Show.

Il mio problema è quello di dover creare 10 report...che devo fare creare 10 form vuote?
Volevo farlo con una e cambiare dinamicamente il file collegato...

SSUPERPIPPO Profilo | Guru

Ma nooooo!!!

Basta che gli passi dinamicamente il Report da aprire come ti ho fatto vedere sopra. Se non ti interessa modificare la connessione al database basta che togli il codice relativo...

Se hai difficoltà fammi sapere che provo a spiegarmi meglio.

Ciao

Ale

http://blogs.dotnethell.it/alebadalin

Xnetus Profilo | Junior Member

>ma il ho creato il mio report con una sua connessione ADO già
>definita nel rpt.
>Soltanto che io attualmente per farlo funzionare devo:
>1) creare una form vuota
>2) portarci dentro il reportviewer collegato al file .rpt
>3) nella action del mio pulsante faccio:
>
>Dim miaform as FormReport
>FormReport.Show.
>
>Il mio problema è quello di dover creare 10 report...che devo
>fare creare 10 form vuote?
>Volevo farlo con una e cambiare dinamicamente il file collegato...
>

Un modo più semplice è quello di aprire un progetto "Crystal Reports Application" in modo da facilitare la gestione del Crystal Reports View.
Devi solamente inserire nella Load del Form:

CrystalReportViewer1.ReportSource = "C:\Percorso\report.rpt"

Se lo devi fare in modo dinamico puoi fare in questo modo:

' Crei una ComboBox con tutti i Report
' Fai un controllo per specificare il nome del Report
Dir="C:\"
Select case ComboBox1.SelectedIndex
Case 0
Dir=Dir + "Report1.rpt"
Case 1
Dir=Dir + "Report2.rpt"
Case 2
Dir=Dir + "Report3.rpt"
....
End Select

' Assegni il percorso
CrystalReportViewer1.ReportSource = Dir


Ovviamente Dir lo dichiari Public.



http://blogs.dotnethell.it/Xnetus/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5