19 messaggi dal 13 maggio 2017
Salve a tutti,
ho una applicazione web in Vb che crea due report distinti con CrystalReport13 (VisualStudio 2017).
L'utente deve fare il download dei due report nello stesso momento, ma dopo il primo, il secondo non viene scaricato. Questo il codice:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim formatType As ExportFormatType = ExportFormatType.NoFormat
formatType = ExportFormatType.PortableDocFormat
Dim myReport As rptUno = New rptUno ()
Dim dsUno As Uno= GetData(sSql, "dtAnagrafica")
myReport.SetDataSource(dsUno )
myReport.ExportToHttpResponse(formatType, Response, True, "Crystal1")

'---Il report 1 viene scaricato correttamente, ma il codice qui sotto, non viene eseguito

Dim myReport2 As rptDue = New rptDue ()
Dim dsDue As Due= GetData(sSql, "dtAltro")
myReport2.SetDataSource(dsDue )
myReport2.ExportToHttpResponse(formatType, Response, True, "Crystal2")
End Sub

La richiesta di download è una richiesta HTTP, pertanto dopo il primo download, la pagina chiude i suoi processi e non viene fatto il refresh.
La domanda è: c'è un modo per forzare il refresh della pagina dopo il primo download o, per chi conosce il CrystalReport, è possibile usare la funzione myReport.ExportToHttpResponse(formatType, Response, True, "Crystal1") in modo da permettere il download di due report contemporaneamente?
Grazie per l'attenzione
Vincenzo
256 messaggi dal 30 novembre 2004
Crea i due report, poi li metti dentro uno zip e fai scaricare quello.
19 messaggi dal 13 maggio 2017
Grazie, per la risposta. E' quello che poi ho fatto, ma mi rimane il problema: come faccio a dare il msg di download completato?
Questa riga di codice:
ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" & sMsg & "');", True)
non viene eseguito dopo il completamento del download.
grazie
Vincenzo
256 messaggi dal 30 novembre 2004
Dovresti avere questa eccezione quando parte il download perchè termina il thread

catch (System.Threading.ThreadAbortException) { }

prova a metterla qui dentro. Anche se il download lo vedono in teoria.
19 messaggi dal 13 maggio 2017
Purtroppo non funziona, oppure sbaglio io. Questo il codice:
sMsg = "Download completato."
Try
DownLoadZip("/public/Certificati/", sSampleNumber & "_Report.zip")
Catch ex As System.Threading.ThreadAbortException
ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" & sMsg & "');", True)
Catch ex As Exception
sMsg = "Errore nella preparazione del certificato: " & ex.Message
Finally
End Try

grazie
Vincenzo
256 messaggi dal 30 novembre 2004
Ciao il problema credo che la pagina non effettui nessun refresh.
Quindi quel codice è inutile. Io credo onestamente che non sia necessario il messaggio di avviso del download completato anche perchè non sarebbe nemmeno realistico perchè tu stai facendo scaricare un file ma in realtà non sai quando sarà terminato il download perchè è un operazione a cui non ha accesso.
Quindi lascerei perdere

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.