Report Viewer

martedì 27 gennaio 2009 - 14.26

maltra Profilo | Newbie

Salve a tutti,
La mia domanda è la seguente:
Ho un reportviewer che mi serve per visualizzare dei dati, il db è ibm quindi non posso usare dataset tipizzato ma posso passare come dataset tipizzato un object,
Io "tiro su" una dataTable contenente i dati da "stampare" ora esiste un metodo furbo per trasformare questa dataTable in un'oggetto che sia riconoscibile dal reporting service?
Grazie mille

http://blogs.dotnethell.it/maltra/

Jeremy Profilo | Guru

Certo...puoi usare il metodo WtiteXmlSchema....
Guarda qui
http://msdn2.microsoft.com/it-it/library/8bw9ksd6(VS.80).aspx

maltra Profilo | Newbie

Mi puoi dare qualche dritta in piu? please
Io ho La mia DataTable ora? come faccio a dire al report service prendi il dataset da quella determianata classe? grazie mille
http://blogs.dotnethell.it/maltra/

freeteo Profilo | Guru

Ciao,
se hai fatto un report con determinate proprietà ed hai sottomano la DataTable riempita, puoi girare sulle righe e ricrearti l'oggetto che vuoi:

List<TuoOggetto> lista = new List<TuoOggetto>(); DataTable table = ... foreach (DataRow riga in table.Rows) lista.Add(BuildObject(riga)); return lista;

dove il metodo "BuildObject" torna un oggetto settando le proprietà da quella riga della datatable:

private static TuoOggetto BuildObject(DataRow riga) { TuoOggetto obj = new TuoOggetto (); obj.Numero = Convert.ToInt32(riga["numero"]); obj.Descrizione = Convert.ToString(riga["descrizione"]); .... return obj; }

A parte che se la struttura è uguale, sei sicuro che settando direttamente come datasource del report la DAtaTable non funzioni lo stesso, senza passare per l'oggetto? Questo non lo ricordo, anche se ho un presentimento...

Ciao.

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

Jeremy Profilo | Guru

Credo che lui intendesse dire avere una datatable tipizzata come origine dati del report per poter inserire i campi in fase di design nel report...

maltra Profilo | Newbie

Ciao,
grazie per le risposte, ho fatto esattamente come matteo mi sembra l'unica via per tipizzare una data Table come oggetto e darla in pasto al Report Viewer considerando che lavoro su AS400 :). Per ora funziona, se avete altre idee son ben accette.
Grazie
http://blogs.dotnethell.it/maltra/

freeteo Profilo | Guru

Ok,DataTable tipizzata o oggetto è la stessa cosa, io preferisco sempre Oggetti per questione di pulizia.
Poi adesso che con Linq2Sql (o Entity Framework) ci sono i designer che te li fanno, a maggior ragione tengo sempre questa strada e metto nel dimenticatoio i dataset tipizzati...

Ciao.

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

maltra Profilo | Newbie

Ti do perfettamente ragione... la mia domanda è questa... ma se uno deve fare dei report... qual'è la "strada Migliore"?
Io sotto non ho un db access o sql server quindi devo fare tutto sto "giro" per "aggirare il problema"... strade migliori ne esistono?
Visto che è uscito EF ma perchè non integrarlo nelle funzioni di Reporting Service invece di usarea ancora dataset tipizzati? magari ho perso dei passaggi io...?
Grazie
http://blogs.dotnethell.it/maltra/

freeteo Profilo | Guru

Ciao,
io come concetto generale, nei report di SqlReporting gli imposto come sorgente dati degli oggetti miei, andando nella finestra datasource di visual studio a dargli in pasto un "object".
E poi ho una collection (che arriva dal mio strato di business) che gli passo come datasource.

E' praticamente la stessa cosa che fai con i DataSet tipizzati, ma almeno gli oggetti mi arrivano da una mia modellazione delle entità che voglio farmi sempre quando progetto un'applicazione...

Ciao.

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

maltra Profilo | Newbie

perfetto come ho fatto io
http://blogs.dotnethell.it/maltra/

Jeremy Profilo | Guru

>Ciao,
>io come concetto generale, nei report di SqlReporting gli imposto
>come sorgente dati degli oggetti miei, andando nella finestra
>datasource di visual studio a dargli in pasto un "object".
Che sarebbe lo stesso che creare una DataTable nel designer del dataset senza avere obbligatoriamente un origine dati connessa ad un DB...ma comunque tipizzata.
Giusto?

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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5