Seleziona una pagina

Ecco un semplice script che permette di generare un report in vari formati con un datasource e aprire il file creato:

 
Public Shared Function CreateOpenReport(ByVal ReportName As String, ByVal dsReport As DataSet, ByVal FileName As String, ByVal ExportType As CrystalDecisions.Shared.ExportFormatType) As Boolean
 
    Dim rep As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    Dim ReportPath As String = ""
  
    ReportPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\Reports"
    rep.Load(ReportPath + "\" + ReportName + ".rpt", CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
    rep.SetDataSource(dsReport)
 
    Dim FilePath As String = ""
    Dim ExportFileName As String = ""
 
    FilePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\DOCUMENTI"
 
    Select Case ExportType
        Case CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
            ExportFileName = String.Format("{0}\{1}.pdf", FilePath, FileName)
 
        Case CrystalDecisions.Shared.ExportFormatType.CrystalReport
            ExportFileName = String.Format("{0}\{1}.rpt", FilePath, FileName)
        Case CrystalDecisions.Shared.ExportFormatType.Excel
            ExportFileName = String.Format("{0}\{1}.xls", FilePath, FileName)
        Case CrystalDecisions.Shared.ExportFormatType.ExcelRecord
            ExportFileName = String.Format("{0}\{1}.xls", FilePath, FileName)
        Case CrystalDecisions.Shared.ExportFormatType.HTML32, CrystalDecisions.Shared.ExportFormatType.HTML40
            ExportFileName = String.Format("{0}\{1}.html", FilePath, FileName)
        Case CrystalDecisions.Shared.ExportFormatType.RichText
            ExportFileName = String.Format("{0}\{1}.rtf", FilePath, FileName)
        Case CrystalDecisions.Shared.ExportFormatType.WordForWindows
            ExportFileName = String.Format("{0}\{1}.doc", FilePath, FileName)
 
        Case Else
            ExportFileName = String.Format("{0}\{1}.rpt", FilePath, FileName)
 
    End Select
 
  
    If Not System.IO.Directory.Exists(FilePath) Then
        System.IO.Directory.CreateDirectory(FilePath)
    End If
    If System.IO.File.Exists(ExportFileName) Then
        System.IO.File.Delete(ExportFileName)
    End If
    rep.ExportToDisk(ExportType, ExportFileName)
 
    Dim Proc As New System.Diagnostics.Process
 
    Proc.StartInfo.FileName = ExportFileName
    Proc.Start()
 
End Function
 

Altri Articoli

ASP.Net Core, testare applicazioni con XUnit
views 178
Come tutti sappiamo con l’avvento di .Net Core tutto l’ecosistema sta subendo evoluzioni, fin dalla prima versione del progetto ASP.NET MVC Core è sta...
ASP.NET Core, Dependency injection
views 234
In questo articolo parleremo della Dependency Injection, un pattern che consente di creare applicazioni flessibili e semplifica la fase di unit test. ...
ASP.NET Core custom Middleware
views 82
Nel precedente articolo intitolato ASP.NET Core Middleware abbiamo parlato di cosa sono i middleware ed abbiamo visto come usare i middleware buit-in ...
ASP.NET Core Middleware
views 149
"Middleware are software components that are assembled into an application pipeline to handle requests and responses. Each component chooses whether t...

Sono uno sviluppatore specializzato nella realizzazione di applicazioni web ASP.NET. Mi ritengo una persona fortunata perchè il mio lavoro coincide con la mia passione: Sviluppare codice!!! Ho incominciato a sviluppare codice dall’età di circa dieci anni con il famigerato Commodore 64. La mia svolta epocale è stato l’avvento di internet e dal 1995 ho cominciato a sviluppare siti web prima statici e poi dinamici (ASP) per poi approdare alla piattaforma .NET, da allora… non mi sono piu’ fermato!