REPORTISTICA PER .NET

giovedì 11 giugno 2009 - 09.11

DINMAT Profilo | Newbie

Ciao a tutti,
mi sono cimentato per la prima volta nello studio della creazione di reports utilizzando da Visual Studio 2008 la Reportistica per .NET. Premetto che sto realizzando una applicazione web.
Il problema è il seguente:
Ho creato tramite il WIZARD un dataset (.xsd) con connessione ad un database SQL Server tramite ConnectionString dove poi ho inserito la mia query per estrarre i dati.
Ho creato un report (.rdlc)
Ho creato un form (.aspx) dove gli ho inserito l'oggetto ReportViewer che si occuperà di visualizzare il mio report.
A quest'ultimo form, passo tramite QueryString, il nome del mio file xsd
Ora nasce il mio problema ...
Da codice vorrei poter istanziare un oggetto dove gli passo in pasto il nome del mio file "dataset.xsd" e tramite questo oggetto dovrei riuscire ad ottenere sia il TableAdapters che il DataTable presenti all'interno del mio dataset.

E' possibile farlo???

Grazie in anticipo per l'aiuto che mi darete, spero di essere stato chiaro

DomA Profilo | Expert

Ciao,
secondo me conviene fare tutto da codice.
Prova a dare un'occhiata qui:

http://www.connectionstrings.com/

Esempio con access (in vb.net):

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

L'esempio sopra è di una win form e serve a caricare i dati della tabella clienti (da un db Access) in un datagridview.
Dovresti, quindi, apportare qualche modifica.
Questo è solo un modo per iniziare.
Domenico

freeteo Profilo | Guru

Ciao,
puoi lavorare con la reflection, per genrare la classe "Adapter" corretta in base a quello che vuoi:
DataSet ds = new DataSet(); IDataAdapter adapter = (IDataAdapter)Activator.CreateInstance("...nome corretto..."); adapter.Fill(ds);
e per determinare il nome corretto lavori con un case sulla querystring, oppure costruendo una stringa corretta in base al nome.
Il nome corretto è proprio il nome della classe che scriveresti a livello di editor di codice, compresa di namespace...


dopo esserti caricato l'adapter e riempito un DataTable/DataSet da visualizzare, al report puoi passare l'oggetto riempito con un codice di questo tipo:
ReportDocument report = new ReportDocument(); report.Load(@"...\report.rpt", OpenReportMethod.OpenReportByTempCopy); report.SetDataSource(...datatable riempito...);

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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