Reporting services... come caricare un report da un form

lunedì 21 agosto 2006 - 23.54

ricky Profilo | Junior Member

Ciao, ho installato reporting services, ho visto come creare un report collegandomi direttamente con un DB SQL Server, ho però due problemi:

- come carico un determinato report da un winform?

secondo problema: con crystal, creavo un dataset (o un XML) che passavo al report per alimentarlo, da quel poco che ho potuto vedere, ora invece, è possibile creare una query direttamente all'interno del report (giusto???), quindi potrei passare solo dei parametri al report che poi verranno utilizzati nella query di costruzione?? (giusto???).... in caso affermativo come passo questi parametri da un winform? questo problema si collega al primo immagino

Grazie per l'aiuto!

freeteo Profilo | Guru

>Ciao, ho installato reporting services, ho visto come creare
>un report collegandomi direttamente con un DB SQL Server, ho
>però due problemi:
>- come carico un determinato report da un winform?
Allora per farlo lato client devi usare i file RDLC da design e poi associare questo file come "LocalReport" del visualizzatore, poi ci passi il datasource "analogamente" a Crystal in questo modo:

... LocalReport miorpt = ReportViewer1.LocalReport; miorpt .ReportPath = @"c:\..\..\Report.rdlc"; miorpt .DataSources.Add(new ReportDataSource("tabella", mioDataSetAdo)); ...
etcc... poi usando 1po di intellisense trovi tutti i vari metodi/proprieta' che ti servono

>come passo questi parametri da un winform?
>questo problema si collega al primo immagino
esatto ti ho risposto sopra


>Grazie per l'aiuto!
spero di avertelo dato
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

ricky Profilo | Junior Member

Grazie per l'aiuto! Quindi non è giusto creare il report applicando query create direttamente nel report, è possibile (e forse è consigliabile) utilizzare ancora la soluzione del dataset passato al report da codice??

Grazie

freeteo Profilo | Guru

esatto, per i report RDLC (dove la C sta per "client side") devi passare tramite dataset perche' è stato pensato cosi', se devi cambiare la query devi lavorare con i parametri per filtrare i dati ma ti consiglio di fare ttutto sul dataset a qeusto punto.

se hai risolto accetta 1 arisposta cosi' marchiamo il thread come risolto.
grazie
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

ricky Profilo | Junior Member

Perfetto chiarissimo!! Quindi RDLC viene utilizzato SOLO per WinForms (intendi questo con Client Side?) ... mentre per applicazioni web?

freeteo Profilo | Guru

no no intendo che non devi distribuirlo su 1 report server come fai invece con i classici progetti di BI di sql reporting servces [compresa la vers 2000].
Per il web è lo stesso, tale e quale di winforms (Reportviewer,datasource etc...) solo che viene visualizzato in html...

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

memmo77 Profilo | Expert

Ciao, ho convertito il file in rdlc rinominandolo in rdlc, poi ho aggiunto questo codice alla mia applicazione:
Passo DATASOURCE che è un dataset con i dati che poi dovrebbe visualizzare il report.

Public Sub ApriReport_Form(ByVal DATASOURCE As DataSet)
Dim reportDataSource As New Microsoft.Reporting.WinForms.ReportDataSource()
reportDataSource.Name = "DATASOURCE"
reportDataSource.Value = DATASOURCE.Tables(0)
Me.RptView.LocalReport.ReportPath = "mioreport.rdlc"
Me.RptView.LocalReport.DataSources.Clear()
Me.RptView.LocalReport.DataSources.Add(reportDataSource)
Me.RptView.RefreshReport()
'------------------------------
RptView.RefreshReport()
End Sub

Solo che quando lo avvio ottengo questo messaggio
Non è stata fornita un'istanza dell'origine dei dati "DS_REPORTING_SELECT" (che sarebbe il set dei dati del report)

Grazie ciao

freeteo Profilo | Guru

> reportDataSource.Name = "DATASOURCE"
come ti segnala l'errore quello è il nome della DataSource che si aspetta, il tuo codice è corretto, ma devi impostare il nome="DS_REPORTING_SELECT" ...

ps: se ne hai più di una usata nel report, chiaramente devi passargliele tutte...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

memmo77 Profilo | Expert

Perfetto. Risolto, grazie mille, ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5