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:
mentre nella pagina 2 il report viene creato e stampato con queste istruzioni: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)
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.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()
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?

Rispondi quotando