Dunque, ho una pagina aspx (pagina1.aspx) al cui interno ho inserito un button per la stampa di un report. Cliccando sul button viene infatti richiamata una funzione javascript "window.open" che apre una nuova pagina aspx (pagina2.aspx) che contiene il report.
Il report deve stampare delle informazioni riportate in pagina1.aspx, la cosa strana però è che queste informazioni vengono stampate solo al secondo click; la prima volta che stampo il report infatti non si vedono i dati, mentre se clicco una seconda volta si.
dalla pagina1.aspx io richiamo la pagina 2 in questo modo:
codice:
Dim proprieta As String = "left=10, top=10, height=650, width=1000, resizable=yes, scrollbars=yes"
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Commissione", "window.open('../private/Pagina2.aspx','_blank',""" & proprieta & """,true);", True)
mentre nella pagina 2 il report viene creato e stampato con queste istruzioni:
codice:
Dim reportType As String = "PDF"
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim fileNameExtension As String = Nothing
Dim deviceInfo As String = _
"<DeviceInfo>" + _
" <OutputFormat>PDF</OutputFormat>" + _
" <PageWidth>11.7in</PageWidth>" + _
" <PageHeight>8.5in</PageHeight>" + _
" <MarginTop>0.2in</MarginTop>" + _
" <MarginLeft>0in</MarginLeft>" + _
" <MarginRight>0in</MarginRight>" + _
" <MarginBottom>0in</MarginBottom>" + _
"</DeviceInfo>"
Dim warnings() As Warning = Nothing
Dim streams() As String = Nothing
Dim renderedBytes() As Byte
rep.Refresh()
renderedBytes = rep.Render( _
reportType, _
deviceInfo, _
mimeType, _
encoding, _
fileNameExtension, _
streams, _
warnings)
Dim nomefilePDFCommissione As String = "Commissione_"
Response.Clear()
Response.ContentType = mimeType
Response.AddHeader("content-disposition", "attachment; filename=" & nomefilePDFCommissione & "." & fileNameExtension)
Response.BinaryWrite(renderedBytes)
Response.End()
girando in rete ho trovato un post che parla del mio stesso problema (http://forums.microsoft.com/msdn/Sho...79537&SiteID=1 ) ma la soluzione proposta non so come applicarla al mio caso.
In pratica devo riuscire a resettare reportviewer prima che venga richiamata la generazione del report in modo che sia completamente rigenerato.
Qualche idea su come fare?