Primero, creas el reporte en el que trae .NET integrado. Con su respectiva conexión a la base de datos. Luego cheka este código para llamarlo desde ASP net:
Código:
Try
Dim Report As New Reporte2
Dim exportOpts As New CrystalDecisions.Shared.ExportOptions
Dim diskOpts As New CrystalDecisions.Shared.DiskFileDestinationOptions
diskOpts.DiskFileName = "c:\Reporte.pdf"
Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize
Report.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation
Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim crTable As CrystalDecisions.CrystalReports.Engine.Table
Dim crConnInfo As New CrystalDecisions.Shared.ConnectionInfo
Dim crLogOnInfo As CrystalDecisions.Shared.TableLogOnInfo
crTables = Report.Database.Tables
For Each crTable In crTables
crConnInfo.DatabaseName = "DatabaseName"
crConnInfo.ServerName = "ServerName"
crConnInfo.UserID = "UserID"
crConnInfo.Password = "Password"
crLogOnInfo = crTable.LogOnInfo
crLogOnInfo.ConnectionInfo = crConnInfo
crTable.ApplyLogOnInfo(crLogOnInfo)
Next
exportOpts = Report.ExportOptions
exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
exportOpts.DestinationOptions = diskOpts
Report.Export()
'Con esto presentas el reporte por el browser...
Response.Write("<script>" & vbCrLf)
Response.Write("window.open('" & "c:/Reporte.pdf" & "');" & vbCrLf)
Response.Write("javascript:history.back();" & vbCrLf)
Response.Write("</script>")
Catch ex As Exception
lblMensaje.Text = ex.Message
End Try
¡Espero te funcione!