Report da codice [VB .Net 2005 Pro]

venerdì 21 aprile 2006 - 13.11

MarKonE Profilo | Guru

Ciao a tutto il Forum !

Nella mia applicazione visualizzo dei dati tramite una datagridview.

Ora avrei la necessità di stampare i dati presenti sulla griglia.

Non ho nessuna connessione dati impostata da IDE... alimento la griglia con una connessione da codice a cui passo una SELECT sql.


Qual è il sistema più semplice per creare un report ?
Conviene appoggiarsi a Crystal Report ?
E' la prima volta che mi capita di dover stampare da VB... credevo avrei avuto meno difficoltà..

Ho trovato molti esempi, purtroppo tutti si basano su una connessione "visuale" .... e non riesco a trovare le 4 (credo ..) righe di codice che servono per creare un report.

Qualcuno mi saprebbe gentilmente illuminare ?


Grazie mille !

freeteo Profilo | Guru

ciao,
puoi usare si 1oggetto Crystal se vuoi, dove ovviamente prima devi creare a design time il report come lo vuoi specificando il server da dove pescare i dati, poi puoi lavorare con 1oggetto reportdocument e carichi il report e gli passi la sorgente dati da codice (dato che probabilmente il percorso del db sara' diverso da quello che hai impostato mentre lo costruivi...)

cmq prova a dare 1occhiata qui: http://www.dotnethell.it/forum/messages.aspx?ThreadID=5078

ps:
----
cmq crystal è potentissimo e fai praticametne quello che vuoi,ma ha qualche limitazione per quanto riguarda il deploy suweb server:
http://www.businessobjects.com/products/reporting/crystalreports/net/licensing.asp

Percio io ti consiglierei di dare 1occhiata anche a sql reporting che adesso legato a SqlExpress lo puoi avere gratuito e senza problemi (se non ricordo male) ed ha 1deploy piu agile e meno pensante.
Sql Reporting ha 1a "pesante" mancanza pero', se lavori con LocalReport (simile a creare 1report di crystal) non puoi stampare...Pero' puoi esportare in Pdf e poi stampare da li...

Vedi te quale ti conviene dei due, guardali entrambi se puoi e trova quale fa al caso tuo...

ciao.

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

MarKonE Profilo | Guru

Ti ringrazio molto per la tua gentilissima risposta.


Ho seguito il tuo primo link e credo sia la strada giusta...anche se ora purtroppo non ho modo di provare perchè devo organizzare in tutta fretta il ponte lungo.


Così a prima vista credo di poter passare la stessa query sql che utilizzo per popolare la datagridview utilizzando però un OleDbDataAdapter.


Già che ci sono....secondo te , visto che i dati del report sono gli stessi della griglia, dovrei creare appositamente una seconda form che ospiti il reportviewer e richiamarla alla pressione del pulsante stampa ? L'ideale sarebbe poter vedere l'anteprima del report prima di stampare.

Grazie mille ancora !!

p.s: quanto lontano vivi da Vicenza ? Qui dalle mie parti il tuo cognome è molto diffuso !!

freeteo Profilo | Guru

>Così a prima vista credo di poter passare la stessa query sql che utilizzo per popolare la datagridview utilizzando però un OleDbDataAdapter.
lo puoi costruire a design e quando aggiungi 1database specifichi la query che vuoi

>gli stessi della griglia, dovrei creare appositamente una seconda form che ospiti il reportviewer e richiamarla alla pressione del pulsante stampa ? L'ideale sarebbe poter vedere l'anteprima del report prima di stampare.
si, puoi mettere 1bottone tu che ti ridirige sulla pagina del reportviewer e poi demandare a lui la stampa vera e propria e la visualizzazione dei dettagli dei dati se ad esempio raggruppi etc...

>Grazie mille ancora !!
di niente è sempre 1piacere

>p.s: quanto lontano vivi da Vicenza ? Qui dalle mie parti il tuo cognome è molto diffuso !!!
Ah si? io sono di Vicenza praticamente centro citta, tu di dove sei?


ciao.

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

MarKonE Profilo | Guru

>>Così a prima vista credo di poter passare la stessa query sql che utilizzo per popolare la datagridview utilizzando però un OleDbDataAdapter.
>lo puoi costruire a design e quando aggiungi 1database specifichi
>la query che vuoi

Ottimo!

>>gli stessi della griglia, dovrei creare appositamente una seconda form che ospiti il reportviewer e richiamarla alla pressione del pulsante stampa ? L'ideale sarebbe poter vedere l'anteprima del report prima di stampare.
>si, puoi mettere 1bottone tu che ti ridirige sulla pagina del
>reportviewer e poi demandare a lui la stampa vera e propria e
>la visualizzazione dei dettagli dei dati se ad esempio raggruppi
>etc...

Ottimo!

>>Grazie mille ancora !!
>di niente è sempre 1piacere

Grazie!!

>
>>p.s: quanto lontano vivi da Vicenza ? Qui dalle mie parti il tuo cognome è molto diffuso !!!
>Ah si? io sono di Vicenza praticamente centro citta, tu di dove
>sei?

..Schio

>
>ciao.
>

Ciao e grazie mille ancora!!

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

freeteo Profilo | Guru

ciao,
se hai risolto con qualcuna di queste risposte accettane 1a per marchiare il post come risolto, cosi' teniamo 1po in ordine...
Grazie, vicino di casa !

ciao.

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

Tempestaxmen Profilo | Newbie

Ciao, arrivo su questo argomento con un po' di ritardo (guardando la data dei vostri post!!), ma ho un problema simile.
Ho anche io un datagrid da dover stampare, solo che posso solo poggiarmi su Reporting Services.
Come posso fare?
Ho visto che l'unico modo di importare file in reporting è quello di creare un file mdb o adp, è vero?
O posso aggirare il problema in qualche modo?
Grazie mille per l'aiuto.

freeteo Profilo | Guru

>Ciao, arrivo su questo argomento con un po' di ritardo (guardando
>la data dei vostri post!!), ma ho un problema simile.
ciao, ottimo parliamone qui oppure apri un post nuovo,


>Ho anche io un datagrid da dover stampare, solo che posso solo
>poggiarmi su Reporting Services.
>Come posso fare?
ok potresti farti un report, con le colonne che hai in quella datagrid, e poi passare i dati che hai passato alla datagrid, al report.
Per fare questo hai varie strade dipende da come hai impostato il tuo progetto, se ad esempio lavori con oggetti tuoi puoi agganciare come datasource del report l'oggetto, altrimenti il datatable tipizzato etc...
Se invece fai tutto a codice, allora puoi agganciarti ad un database e o tirare dentro la tabella, o cmq la query che usi poi per i dati della grdiview.
Costruisci il report (magari in maniera molto simile alla gridview) e poi demandi la gestione della stampa (o esportazione) al report che è la cosa migliore.

In poche parole, al report devi agganciare una datasource, operazione che puoi agilmente fare dalla finestra "Data Sources", dopo che hai aggiunto un report al tuo progetto, poi nella form ovviamente, lo visualizzi dentro ad un reportViewer, con un codice tipo:
LocalReport report = reportViewer1.LocalReport; report.ReportPath = @"c:\...\MioReport.rdlc"; report.DataSources[0].Value = #dataTable/Collection etc...# reportViewer1.RefreshReport();


>Ho visto che l'unico modo di importare file in reporting è quello
>di creare un file mdb o adp, è vero?
cosa intendi per "importare file" ? forse volevi dire importare dati...
ciao.

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

Tempestaxmen Profilo | Newbie

Intanto grazie per la risposta: sto cercando di vedere se posso risolvere usando quello che mi hai consigliato...
non so se puoi affinare la tua risposta se ti dico che il datagrid non è agganciato ad una semplice query e quindi non posso sfruttarla per creare il report, la datagrid viene costruita attraverso un DataRowCommand con dati che vengono elaborati da n query diverse.

Io avevo pensato di usare Access per importare la datagrid, visto che in reporting se vado su "import Reports" mi dà come unica opzione quella di importare un file di tipo mdb o adp. Quindi pensavo di trasformare il datagrid in un file access.

Se c'è un modo più sempilice e diretto: magari!!!!!

Grazie mille per il tuo aiuto.
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