lunes, agosto 8, 2022

Como Exportar Reportes Crystal Reports en ASP.NET

Descargar solución CrystalASP_Exportar.zip

En nuestras aplicaciones Web, y mostramos un Reporte en Crystal Reports, estos no cuentan con los mismo botones como si los tienen en nuestras aplicaciones Windows. Entonces para poder exportarlos PDF, Excel, Archivo de Texto Enriquecido o Word debemos agregarle esta funcionalidad.

Como base a este proyecto vamos a empezar con lo ya aprendido en otro artículo publicado en DotNetcr.com, Como crear reportes Crystal Reports con ASP.NET.

Ok, ahora que ya tenemos el reporte en Crystal Reports vamos a agregarle la funcionalidad para exportarlos al formato que nosotros le indiquemos.

Vamos a incluir en nuestra pantalla del reporte un Combo o DropDownList y un Botón.

<asp:Button ID=»btnExportar» Text=»Exportar Reporte» runat=»server» /><br>

<asp:DropDownList ID=»ddlTipos» runat=»server»>
<asp:ListItem Text=»Excel» Value=»4″/>
<asp:ListItem Text=»PDF» Value=»5″ Selected=»true» />
<asp:ListItem Text=»Texto Enriquecido» Value=»2″ />
<asp:ListItem Text=»Word» Value=»3″ />
</asp:DropDownList>

Para obtener un resultado como el siguiente:

Luego de agregar estos controles a nuestra página, vamos a indicarle en el evento del botón como exportar el reporte que tenemos en pantalla.

Private Sub btnExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click
'Se crea el documento de lectura y escritura
Dim rptStream As New System.IO.MemoryStream
'se envia el reporte el stram y le indicamos el metodo de escritura o tipo de documento
rptStream = CType(crDatos.ExportToStream(CInt(ddlTipos.SelectedValue)), System.IO.MemoryStream)

'Limpiamos la memoria
Response.Clear()
Response.Buffer = True

'Le indicamos el tipo de documento que vamos a exportar
Response.ContentType = FormatoDocumento()

'Automaticamente se descarga el archivo
Response.AddHeader(«Content-Disposition», «attachment;filename=» + Me.nombreReporte)

'Se escribe el archivo
Response.BinaryWrite(rptStream.ToArray())
Response.End()
End Sub

'Indicamos el Tipo de archivo que vamos a exportar,
'tambien le indicamos la extension
Private Function FormatoDocumento() As String
Dim tipo As String
Select Case Integer.Parse(ddlTipos.SelectedValue)
Case ExportFormatType.Excel
tipo = «application/vnd.ms-excel»
nombreReporte &= «.xls»
Case ExportFormatType.RichText
tipo = «application/rtf»
nombreReporte &= «.rtf»
Case ExportFormatType.WordForWindows
tipo = «application/msword»
nombreReporte &= «.doc»
Case Else
tipo = «application/pdf»
nombreReporte &= «.pdf»
End Select
Return tipo
End Function

El siguiente paso será ejecutar nuestra aplicación, y cuando le indiquemos «Exportar Reporte«, se debería mostrar una cuadro como el siguiente, para salvar el archivo en nuestro disco duro.

Descargar solución CrystalASP_Exportar.zip




Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

Flutter – Error: ADB exited with exit code 1

En este artículo vamos a explorar algunas posibles causas y solución al error en Flutter Error: ADB exited with exit code 1....

Calcular la distancia entre dos puntos geográficos en SQL Server

En este ejemplo mostramos como calcular la distancia en metros o kilómetros entre dos puntos geográficos, por latitud y longitud. El resultado lo obtenemos en metros o kilómetros.
SQL Server - Merge

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.

Últimos artículos

Flutter - Instagram Clone App

Instagram Clone App con Flutter

Marvin Stanley Valenzuela nos comparte un reto y genialidad a la vez, excelente práctica de la que podemos aprender mucho, diseñó en...

¿Cómo agregar una IP adicional en una VM Ubuntu en Azure?

Lo más común al momento de crear y configurar un nuevo servidor es que a este le asigne un solo IP, pero...
flutter one year

Después de un año con Flutter, esto es lo que aprendí

La historia comenzó cuando un día desperté pensando en tener un nuevo proyecto personal. Me dije a mí misma que hay muchas...
promocionar app

Cómo promocionar gratis tu app usando tappx

Como todos los que me siguen y mis redes sociales sabrán, recientemente lancé mi primera aplicación, pero más allá del desafío tecnológico de...