Refresh report

mercoledì 17 ottobre 2007 - 17.21

Dav-ide Profilo | Junior Member

Ciao a tutti... Domandona:
Come posso per fare il refresh a un report già visualizzato?
Mi succede che dopo aver visualizzato un report, se rilancio la visualizzazione del report, i nuovi dati vengono appesi ai precedenti... esiste un comando di refresh o clear del report?
Grazie

freeteo Profilo | Guru

>Ciao a tutti... Domandona:
>Come posso per fare il refresh a un report già visualizzato?
devi dire al viewer di farti il refresh : crystalReportViewer1.RefreshReport();
pero' questo non centra con i dati, se i dati cambiano e tu li passi con il metodo "setdatasource" allora devi rifare la query (o quello che è) per avere una sorgente dati che abbia i dati che sono cambiati


>Mi succede che dopo aver visualizzato un report, se rilancio
>la visualizzazione del report, i nuovi dati vengono appesi ai
>precedenti... esiste un comando di refresh o clear del report?
vengono appesi?
Prova a postare 1po di codice che magari vediamo dove sta l'inghippo...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Dav-ide Profilo | Junior Member

Questo è il mio codice....
Ho provato in svariati modi, ma ti confermo che quando ripero la generazione del report, i dati mi vengono appesi.
Come dici tu forse, devo svuotare il dataset, ma non ho la più pallida idea di dove e come farlo.
A questo punto mi consigli anche il refresh del report?
Grazie mille...


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

freeteo Profilo | Guru

ciao,
si allora non avevo intuito che usavi il "da.Fill" del dataAdapter.usando questa istruzione piu' volte, sulla stessa tabella i dati vanno in append, quindi ecco il motivo percui ti ritrovi sempre i dati.
Ti conviene evitare di farlo 2 volte, oppure puoi fare il "clear" delle datatable incluse nel dataset.

Se percaso sei in asp.net, attendo al fatto del postback (proprieta' IsPostBack della pagina) perche' si verifica ogni volta che premi un bottone nella webform...tutto questo perche' il web usa HTTP come protocollo, che è un protocollo passivo, quindi non c'e' mai connessione diretta tra il client e il server, ma un continuo postoback con risposta...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Dav-ide Profilo | Junior Member

Perfetto! Ho messo un
StructRpt(I).ds.clear()
prima di tutto e funziona che è una meraviglia!!!
Grazie mille ancora!!!!

P.S. ero in vb2005...

P.P.S. Ti chiedo un'altra cortesia:
Usando il codice che ho postato, mi capita che il primo report che visualizzo è lento, cosa dovuta probabilmente al fatto che non è ancora visualizzato.... i successivi sono invece rapidissimi... posso ovviare in qualche modo a questo "problema"?
Grazie ancora

freeteo Profilo | Guru

>Perfetto! Ho messo un
>StructRpt(I).ds.clear()
>prima di tutto e funziona che è una meraviglia!!!
>Grazie mille ancora!!!!
perfetto!


>P.P.S. Ti chiedo un'altra cortesia:
>Usando il codice che ho postato, mi capita che il primo report
>che visualizzo è lento, cosa dovuta probabilmente al fatto che
>non è ancora visualizzato.... i successivi sono invece rapidissimi...
>posso ovviare in qualche modo a questo "problema"?
mmm non saprei pero' penso che sia perche cmq il framework si tiene della cache degli oggetti e quindi sia qualcosa di "dietro alle quinte"...forse puoi provare a verificare se il problema sta nel report o nel caricamento dei dati da visualizzare, perche' sicuramente le operazioni di query su db sono lente la prima volta (ado.net usa pooling etc..)
ciao.

Matteo Raumer
[MCAD .net]
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