DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

Como Exportar Reportes Crystal Reports en ASP.NET

Por royrojas | 10/3/2005 | Visitas 32,992 | Voto 4.00
En este ejemplo vamos a aprender como exportar nuestros reportes en Crystal Reports a documentos en PDF, Excel, Texto Enriquecido o Word, todo desde ASP.NET
Categorías : 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
Area de Comentarios
Por Anónimo - Fecha: 2005/10/25 12:00 AM
Gracias por la solucion, me parece excelente, pero aun tengo un problema
mi reporte usa parametros de entrada y cuando exporto intenta refresacrlos y me manda este error

Detalles de la excepción: CrystalDecisions.CrystalReports. Engine.ParameterFieldCurrentValueException: Falta el valor actual del campo de parámetro.

Error de código fuente:


Línea 125:
Línea 126: ''''se envia el reporte el stram y le indicamos el metodo de escritura o tipo de documento
Línea 127: rptStream = CType(CrDatos.ExportToStream(CInt(ddlTipos.SelectedValue)), System.IO.MemoryStream)
Línea 128:
Línea 129: ''''Limpiamos la memoria
Por royrojas - Fecha: 2005/10/31 01:45 AM
hola, voy a revisar ese error que mencionas y te aviso. saludos
Por Anónimo - Fecha: 2005/11/02 05:18 PM
Hola amigo quisiera que me ayudes me sale este error no se a que se debe. Te lo agradeceria mucho.

Error de servidor en la aplicación ''/Reportes Web''.
--------------------------------------------------------------------------------

No es posible conectar.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: CrystalDecisions.CrystalReports.Engine.LogOnException: No es posible conectar.

Error de código fuente:


Línea 214: Private Sub btnExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExportar.Click
Línea 215: Dim rptStream As New System.IO.MemoryStream
Línea 216: rptStream = CType(info.ExportToStream(Integer.Parse(Me.ddlTipos.SelectedValue)), System.IO.MemoryStream)
Línea 217: Response.Clear()
Línea 218: Response.Buffer = True

Espero que me puedas ayudar.

Atte. Jose. Mi correo es jrla2402@hotmail.com o rla@upnorte.edu.pe
Por Anónimo - Fecha: 2005/11/25 09:17 AM
Una consulta amigo:

Que consideraciones se debe tener cuando deseo colocar un reporte echo en Crystal Report para web en un serveridor web IIS ??. Debo tener alguna libreria extra o algo asi?
Por royrojas - Fecha: 2005/12/13 11:45 PM
no debes de hacer nada en especial, .Net en el bin incluye las librerias que necesitas para que funcione los reportes de crystal reports.
claro esto cuando estas utilizando el crystal que viene incluido en .net, si utilizas el crystal 10 el full pues si deberias registrar en la solucion las referencias correctas por la version. Pero en general no deberias hacer nada, deberia funcionar
Por Anónimo - Fecha: 2006/01/04 10:23 AM
Sobre el error del campo de parámetro ocurre cuando le pasas un parametro al reporte. si lo prueba con uno que no lleve paràmetro debe funcionar. Lastima que solo escriba para indicar el error y no su solución.
Por Anónimo - Fecha: 2006/01/04 10:26 AM
Sobre montar el reporte en un sitio, deberias llevar la carpeta de crystal junto con las paginas que forman tu proyecto pues no veras las imagenes de avanzar y retroceder, etc, asi como para ver los graficos si los ubieses. esa carpeta esta dentro de los archivos de .net, de crystal
Por Anónimo - Fecha: 2006/02/03 09:42 PM
hola yo soy freddy_cari@hotmail.com, mi problema es al utilizar bordes en crystal bajo asp.net, no lo puedo ajustar, si exporto a excel deja filas intermedias, si lo exporto a pdf se sobrepone una sobre otra creando pequeños rectangulos. No se si es un problema de l cristal el manejar bordes en los campos y se requiere de algun parche. Porfavor mandame una sugerencia.
Por Anónimo - Fecha: 2006/02/23 07:25 AM
Hola, sabes que tu solución la encontré buena porque difiere de otras que he visto, pero lamentablemente da el mismo problema: Cuando intentas exportar el reporte (que ha sido creado con datos traidos desde la base de datos, ya sea por dataset o directamente) tira el error de logon (que una persona nombró ya aquí)... Si encuentras la solución para ese bendito error serás famoso tío!!! he buscado incansablemente por muchas partes y absolutamente nadie ha dado en el clavo aún... Con el ejemplo, corre de las mil maravillas ya que creaste el dataset manualmente, pero como te digo, si los datos te los traes de la base de datos (SQL Server 2003 en mi caso), no hay por donde que funcione.. tira un tremendo ''logon failed'' en esta linea
Line 116: rptStream = CType(reportExport.ExportToStream(CInt(ddlTipos.SelectedValue)), System.IO.MemoryStream)

Si a estas alturas tienes la solución a este problema, te agradecería enormemente que la publicaras...

Muchos SalU2,
Por Anónimo - Fecha: 2006/03/08 05:23 PM
Al tigre que dejo su comentario el 23/02/2006: Tienes razon cuando el dataset es producto de una consulta a la base de datos aparece el mensaje de error : ''''logon failed'''' . La solución es que te conectes nuevamente a la base de datos (con autenticacion Windows o SQL Server, en caso utilices esta SGBD), tal y como lo haces para mostrar la consulta sobre el CrystalReportViewer. A mi tambien me regresaba el error que comentas pero lo solucione de esta manera. No hay pierde, funciona perfectamente. Ya lo implemente.

Salu2+
Por Anónimo - Fecha: 2006/03/08 05:36 PM
Tigre:
Hazme saber por este medio si te sirvio el consejo o no, puedo mandarte parte del codigo fuente.

Perrito de Chacra
Salu2+
Por Anónimo - Fecha: 2006/03/09 04:56 PM
Gracias por tu ayuda. Por favor si me puedes ayudar, utilicé tu ejemplo en el articulo "Como crear reportes Crystal Reports con ASP.NET" y es excelente, pero tengo un problema: en mi reporte tengo un subinforme, y necesito asignarle el dataset con datos al subinforme y no sé como hacerlo. He estado investigando y no encuentro la solución. De antemano muchas gracias. Saludos. dcerda@sdt.cl
Por Anónimo - Fecha: 2006/05/03 10:28 AM
Buenos dias, tengo serios inconvenientes al exportar un reporte en generado en cristarl al excel, cuando este contiene subreports, el pasaje al excel me trae columnas superpuestas inclusive usando las versiones extendidas
Tiene esto alguna solucion?
mbazanvera@sistemasbianchi.com
Por Anónimo - Fecha: 2006/05/05 04:10 PM
Tengo problemas con la exportacion a cualquiera de los formatos, cuando se hace la vista preliminar si hace el filtrado pero cuando lo exporto me exporta todo lo que contiene la tabla que uso, este es el codigo:
private void Button1_Click(object sender, System.EventArgs e)
{
//Se crea el documento de lectura y escritura
System.IO.MemoryStream rptStream = new System.IO.MemoryStream();

//Se envia el reporte el Stream y le indicamos el metodo de escritura o tipo de documento
if(Int32.Parse(DropDownList1.SelectedValue) == 5)
{
rptStream = ((System.IO.MemoryStream)(rd.ExportToStream(ExportFormatType.PortableDocFormat )));
}
else
{
if(Int32.Parse(DropDownList1.SelectedValue) == 4)
{
rptStream = ((System.IO.MemoryStream)(rd.ExportToStream(ExportFormatType.Excel )));
}
else
{
rptStream = ((System.IO.MemoryStream)(rd.ExportToStream(ExportFormatType.WordForWindows)));
}
}

//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=" + this.nombreReporte);

//Se escribe el archivo
Response.BinaryWrite(rptStream.ToArray());

//Response.Flush();
Response.End();
}

private string FormatoDocumento()
{
string tipo = null;

switch(Int32.Parse(DropDownList1.SelectedValue))
{
case 4:
tipo = "application/vnd.ms-excel";
nombreReporte += ".xls"; break;
case 3:
tipo = "application/msword";
nombreReporte += ".doc"; break;
default:
tipo = "application/pdf";
nombreReporte += ".pdf"; break;
}
return tipo;
}
Por Anónimo - Fecha: 2006/06/12 06:06 PM
Tengo un problema, he generado reportes en CR9 y ahora instale el CR10, y no me funcionan, cargue las referencias, pero nada, tampoco cuando trato de jalar del toolbox el control CrystalReportViewer no lo carga en el la pagina no se ve nada, como puedo hacer para q funciones reportes del 9 y 10 en una miama aplicacion web...., y como es q debo instalar el CR10 para q funcione en :net ya q a la fecha no me funciona adecuadamente

espero su ayuda

Gracias
Por Anónimo - Fecha: 2006/06/17 12:30 PM
Quien me puede colborarar para que al momento de abrir en reporte traiga una imagen predeterminada(cambia de acuerdo a una consulta sql).
Por Anónimo - Fecha: 2006/06/30 08:06 PM
Una solución rápida y facil es:
Poner todas las imágenes que quiero en el rpt y segun algun dato que lleve el dataset oculto las que no quiero y muestro las que si.

CP
Por Anónimo - Fecha: 2006/07/12 11:54 PM
Engel:
Me parece muy bueno, pero yo busco algo mas especifico, yo recien empiezo mañana a conocer el Crystal Report, lo he llevado como introduccion pero en VB.NET ahora lo hare en ASP.NET, y quisiera saber si la conexion con sqlserver2000 se puede precisar, quiero un ejemplo que me pueda orientar, realemente para mi es nuevo. Si alguien se apiada, por favor que me mande manuales o aplicaciones web. aqui o a mi correo rosariopereap@yahoo.es
Por Anónimo - Fecha: 2006/08/05 03:21 PM
brother, muy didactico tu ejemplo.. me sirvio de mucho.. pero tengo un problemilla... mira mi report esta paginado en la web.. y cuadno uso tu codigo de exportacion a excel se migra paginado.. es decir las cabeceras se repiten cada 20 registros por ejemplo.. esto debido a que en la web el reports esta paginado cada 20 registros.. asi se tiene k ver paginado en la web.. como haria para eliminar las cabeceras cuando lo migre a excel???? espero me puedas dar algunos consejos!!
Por Anónimo - Fecha: 2006/08/11 01:38 PM
creo q el problema del crystal con el logon es al momento de diseñar
el reporte hay un acasilla de seguridad deben deshabilitarla y lysto ;).
Por Anónimo - Fecha: 2006/09/21 03:26 AM
Muy bueno
Por Anónimo - Fecha: 2006/09/28 01:23 PM
Hola: gracias por la info. Quisiera saber si existe algun modo de (usuando asp.et y crystal 8) mostrar el resultado de un reporte en pdf en lugar de crystal. O sea, que cuando genero el reporte desde la pagina web en lugar de mostrarme el reporte en crystal y despues exportarlo desde ahi directamente me levante el reporte en PDF. No se si me explico bien. Desde ya agradezco sus comentarios. Saludos.
Por Anónimo - Fecha: 2006/10/19 12:57 PM
Hola. Muchas gracias, es bueno, y funciona, pero... ¿Alguien sabe como hacer que el reporte se exporte automáticamente, en un horario determinado y con un nombre especificado de antemano, en lugar de tener que hacerlo a mano? Creo que la primera parte de mi pregunta (el ejecutar el reporte) no es tan problemático. La bronca es que me quedo en el diálogo para asignar nombre...
Muchas gracias por su ayuda.
Por Anónimo - Fecha: 2006/11/07 03:56 PM
Hola, tengo un problema, y no se como solucionarlo, quiza es algo sencillo, pero no le doy. Yo de una manera parecida a la que aqui se describe creo un reporte en PDF, el problema se da cuando sale la ventana para abrir el archivo, en ese momento me sale una ventana para que ingrese la contraseña para acceder al equipo remoto (en este caso servidor), igual que cuando se configura un equipo para que los archivos se accedan remotamente en Windows. ¿Que estoy haciendo mal?
Por Anónimo - Fecha: 2006/11/20 10:09 AM
Tengo un problema con un informe que abro desde una aplicación asp.net:
Cuando el informe no tiene parámetros funciona bien, de forma que cuando selecciono "Imprimir" desde la barra de herramientas Crystal, me sale la ventana de abrir o guardar y se abre el documento en pdf. Pero cuando le inserto un parámetro al informe, al darle a imprimir me da un error:
"Falta el valor actual del campo de parámetro."
¿Podeis ayudarme? Gracias
Por Anónimo - Fecha: 2006/12/21 01:53 AM
Hola, buena e interesante solución.
Mi problema es como exportar a un excel cuando se necesitan generar varias solapas.

si alguien sabe una solución, por favor reportela a miguel [arroba] macs68.net
Muchas gracias de antemano
Por Anónimo - Fecha: 2006/12/28 10:17 AM
Yo tengo un problema bien raro, cuando trabajo con los reportes en mi localhost, éste funciona sin nungún problema, pero cuando lo llevo al Servidor, éste me PIDE la autenticación de windows (sale una ventanita pidiendo el usuario y la clave.. le doy mi clave y mi usuario de RED, pq eso me pide y luego de 3 oportunidades me rebota, me manda al error).
Por Anónimo - Fecha: 2007/01/04 02:01 PM
Hola, soy el que ha escrito los últimos 2 comentarios.. aun tengo ese problema, ya le he dado la autenticacion por todas las tablas que éste tiene y el problema persiste, no aparece ni siquiera como "Error".
A ver si me pueden ayudar..

HH
Por daniel_lt - Fecha: 2007/04/07 07:12 PM
Yo tengo problema al momento de utilizar el objeto Response, osea el control btnExportar lo tengo dentro de un updatepanel y no me funciona, justamente se cae en sta linea de codigo
Response.Clear()
pero si lo pongo fuera del updatepanel del AjaxNet si lo hace bien
Spero me den una mano
Gracias
Salu2
Por Anónimo - Fecha: 2007/04/25 08:28 AM
Buen día! nececito ayuda con una exportacion a exel desde un aspx. Utilice el Response.ContentType = "application/vnd.ms-excel" para pasar a xls una pagina con un listado a un archio de exel y, por lo gneral no tengo problemas. El problema surge de vez en cuando el, cuando listado tiene alrededor de 250 lineas, en ese caso, lo exporo sin problemas, pero cuando quiero abrirlo me aparece un mensaje de error que dice "No se puede leer el archivo". Agradezco a cualquier persona queme pueda ayudar. Salutes!
Por luisfgarcia - Fecha: 2007/05/31 06:57 PM
Tengo un problema en la misma linea de codigo mencionada arriba, y me da el mismo error de LOGON, quisiera saber si alguien ya encontro la slucion a este problema, yo lleno el reporte con un daset el cual lleno con codigo, y asu vez me sirve para mandarlo al datasource del reporte. algo asi:
cr.SetDataSource(ds)
cr.SetParameterValue("MUN_DESCRIPTION", mundes)
Me.CrystalReportViewer1.ReportSource = cr

la linea que me manda el error es esta:
rptStream = CType(cr.ExportToStream(CInt(ddlTipos.SelectedValue)), System.IO.MemoryStream)
y el error el mismo que mencionan arriba: LOGON FAILED. SI ALGUIEN TIENE LA SOLUCION SE LES AGRADECERIA....
Por Anónimo - Fecha: 2007/06/14 03:04 PM
disculpen me sale este error, me podrian ayudar.... mil gracias

Error de servidor en la aplicación ''/maquinaria''.
--------------------------------------------------------------------------------

No es posible conectar.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: CrystalDecisions.CrystalReports.Engine.LogOnException: No es posible conectar.

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:


[LogOnException: No es posible conectar.]
.F(String  , EngineExceptionErrorID 
)
.A(Int16 , Int32 )
.@(Int16 )
CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestContext reqContext)
CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestContext pageReqContext)
CrystalDecisions.Web.ReportAgent.u(Boolean N)
CrystalDecisions.Web.CrystalReportViewer.OnPreRender(EventArgs e)
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()


Por Anónimo - Fecha: 2007/07/04 11:11 AM
Como puedo hacer, para que directamente me muestre en PDF y no tener que dar "Open" en la ventana File Download. para que recien me muestre la pagina.

Gracias
Por Anónimo - Fecha: 2007/08/13 08:11 AM
hola!

alguien ha conseguido solucionar el problema de "Falta el valor actual del campo de parámetro" ???

gracias
un saludo
Por Anónimo - Fecha: 2007/09/12 03:33 PM
Hola, tengo el mismo problema que varios usuarios, ''''logon failed'''' en la linea
rptStream = CType(cr.ExportToStream(CInt(DropDownTipoFormato.SelectedValue)), System.IO.MemoryStream), lleno el Dataset fuente del Report desde la base de datos, alguien ha solucionado el problema?

alguna ayuda por favor :d
mgugalde@hotmail.com
Por Anónimo - Fecha: 2007/09/13 05:43 PM
Hola, ya solucione el problema de "logon Failed" para mi caso, se los presento por si acaso a alguien le sirve

yo lleno la variable cr de tipo "mi reporte" en el pageload

luego en el boton exportar hacia lo que dice el codigo de esta pagina,
bueno lo que hice fue en el boton Exportar volver a llenar la variable cr con el dataset que se quiere mostrar antes de la linea del problema y ahi funciona ok

en mi caso:

Protected Sub ButtonExportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExportar.Click
''Se crea el documento de lectura y escritura
Dim rptStream As New System.IO.MemoryStream

'' aqui vuelvo a llenar el cr con los datos del dataset
Dim ds As New DSinout
ds.Merge(ReturnDataSet(Session("InOut")("dsInOut")), False,
System.Data.MissingSchemaAction.Ignore)
cr.SetDataSource(ds)

''se envia el reporte el stram y le indicamos el metodo de escritura o tipo de documento
rptStream = CType(cr.ExportToStream(CInt(DropDownTipoFormato.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


eso es, ojala a alguien le sirva
saludos
Marcelo
Por Anónimo - Fecha: 2007/09/22 05:45 PM
Hola tengo un problema en la linea
rptStream = CType(crDatos.ExportToStream(CInt(ddlTipos.SelectedValue)), System.IO.MemoryStream)

me dice que ''ExportToStream'' is not a member of ''PRUEBAREPORT''. que es el ejemplo en el cual estoy trabajando.................que debo hacer para vincularlo a ese proyecto................o como puedo solucionar ese error.
Por Anónimo - Fecha: 2007/09/26 11:35 AM
CREO QUE ES UN EJEMPLO BUENO Y QUE SI ME SIRVIO, TENGO UN PROBLEMA COMO TODOS LO QUE ENTRAMOS AQUI, TENGO ALMACENADO EN UNA BASE DE DATOS sql sERVER un archivo de exel y no puedo abrilo me dice que el tipo de formato no es accesible.
Por Anónimo - Fecha: 2007/09/27 06:00 PM
Hola Buenas tardes, ojala alguien de ustedes me puedan ayudar

Migre mi reporte de crystal 7 al 10,, lo quise manda a llamar igual en web, pero me envia el error de unabled load report

podrina decimre como llamar un reporte desde una pagina asp? muchas gracias...
no se que rutinas lleva?
Por Anónimo - Fecha: 2007/10/03 02:33 PM
5
Por Anónimo - Fecha: 2007/10/05 10:51 AM
hola!

alguien ha conseguido solucionar el problema de "Falta el valor actual del campo de parámetro" ???

gracias
un saludo

Yo lo hice de esta manera

Primero hice una función que es la que se conecta a mi base de datos, y a la cual le envio los parametros esta función debe retornar un report document.

Private Function ReporteCR(ByVal lvlVariable As Long) As ReportDocument
Dim cr As New ReportDocument
Dim sPath As String = Request.ServerVariables("APPL_PHYSICAL_PATH")
cr.Load(sPath & "Reportes\reporte.rpt", OpenReportMethod.OpenReportByTempCopy)

Dim crParameterDiscreteValue As ParameterDiscreteValue
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldLocation As ParameterFieldDefinition
Dim crParameterValues As ParameterValues
Dim myConnectionInfo = New CrystalDecisions.Shared.ConnectionInfo

''Con esto me conecto al servidor

CR.SetDatabaseLogon("usuario", "contraseña","servidor","base de datos")

Dim i As Integer
Dim count As Integer

''Cuento las tablas que utiliza el Crystal

count = CR.Database.Tables.Count - 1

''Realizo las conexiones a las tablas

For i = 0 To count
CR.Database.Tables(i).LogOnInfo.ConnectionInfo.ServerName = "servidor"
CR.Database.Tables(i).LogOnInfo.ConnectionInfo.DatabaseName = "base de datos"
CR.Database.Tables(i).LogOnInfo.ConnectionInfo.Password = "contraseña"
CR.Database.Tables(i).LogOnInfo.ConnectionInfo.UserID = "usuario"
Next

crParameterFieldDefinitions = CR.DataDefinition.ParameterFields

crParameterFieldLocation = crParameterFieldDefinitions.Item("I_variable") ''Variable del Crystal Report
crParameterValues = crParameterFieldLocation.CurrentValues
crParameterDiscreteValue = New CrystalDecisions.Shared.ParameterDiscreteValue
crParameterDiscreteValue.Value = lvlVariable ''Parametro de entrada
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldLocation.ApplyCurrentValues(crParameterValues)

''Retorno del Crystal Report

Return CR
End Function

Luego utilizo la función mandandole el o los parametros cada vez que hago la consulta o al momento de imprimir, o al momento de exportar.

Ej:



Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim CR As New ReportDocument
'' Llamo a la función con sus parametros
CR = ReporteCR(Val(Me.txtVariable.Text))

''Se lo asigno al Crystal Report Viewer
crvReporte.ReportSource = CR
crvReporte.DataBind()
End Sub

Al momento que voy a hacer la exportación utilizo el mismo código que esta publicado en este foro, pero con unas pequeñas variaciones.

Ej:

Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
Dim rptStream As New System.IO.MemoryStream
'' Se exporta el reporte a un stream,
'' luego se hace una conversión para el tipo adecuado

Dim CR As New ReportDocument

CR = ReporteCR(Val(Me.txtVariable.Text))

Dim tipo As Integer

rptStream = CType(CR.ExportToStream(Integer.Parse(Me.ddlTipos.SelectedValue)), System.IO.MemoryStream)

Response.Clear()
Response.Buffer = True

TipoDocumento()

Response.AddHeader("Content-Disposition", "attachment;filename=" + nombreXdefecto)
Response.BinaryWrite(rptStream.ToArray())
Respo
Por Anónimo - Fecha: 2007/10/05 10:55 AM
El código que puse no me alcanzo completo, pero la idea se entiende, y no habia visto que marcelo habia publicado la misma idea pero con dataset.

gracias

cjb16
Por Anónimo - Fecha: 2007/10/10 06:22 AM
Buenos dias, no se si alguien me podrá ayudar...
Tengo unos informes en crystal 8 y necesito exportarlos a word 2003. El problema es que lo hace a word 2.0, ¿Me faltará algo por configurar?
Gracias, un saludo.
Por Anónimo - Fecha: 2007/10/11 11:17 AM
Hola,

Al igual q otro usuario tengo el problema q al exportar un informe a excel me genera tantas cabeceras como paginas tenia dicho informe, alguien puede decirme como solucionar este problema, para q solo me genere un vez la cabecera en el excel. Muchas gracias
Por Anónimo - Fecha: 2007/10/19 12:50 PM
hola a todos.

tengo el siguente problema con crystal report, utilizo reportes en una aplicacion elaborada en asp.net 2005 con c#, aparentemente despues de cierta cantidad de veces de generar los informes me envia este error:

Se ha alcanzado el límite máximo de tareas de procesamiento de informes configuradas por el administrador del sistema.

alguien me puede ayudar por favor

gracias por la ayuda
Por Anónimo - Fecha: 2008/03/12 06:22 PM
Saludos no sé si ha alguien mas le sucede o si alguien encontró la solucion, please pasemela, pero yo cambié el codigo de este ejemplo a c# y mi reporte tiene parametros y al exportarlo me sale el siguiente error: mi correo les dejo por si acaso alguien se apiada de mi rodrigo81mg@hotmail.com

Missing parameter values.

Este es mi codigo:

ReportDocument rpt = new ReportDocument();
String nombreReporte = "Reporte";

protected void Page_Load(object sender, EventArgs e)
{

string p1 = "@codProd";//crea el parametro del procedimiento almacenado
string p2 = Request.QueryString.Get("ItemId");
Crystal cr = new Crystal();
//ReportDocument rpt = new ReportDocument();
string reportPath = Server.MapPath("CrystalReport7.rpt");
//creo variable para el envio de parametros
ParameterField parametro = new ParameterField();//envio el nombre del parametro
parametro = cr.parameter(p1, p2);
rpt = cr.CreateCrystalReportDocument(reportPath);
CrystalReportViewer1.ParameterFieldInfo.Add(parametro);
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
}
protected void CrystalReportViewer1_Unload(object sender, EventArgs e)
{
rpt.Close();
rpt.Dispose();
}
protected void btn_exportar_Click(object sender, EventArgs e)
{
//Se crea el documento de lectura y escritura
System.IO.MemoryStream rptStream = new System.IO.MemoryStream();

//Se envia el reporte el Stream y le indicamos el metodo de escritura o tipo de documento
if (Int32.Parse(ddl_export.SelectedValue) == 1)
{
rptStream = ((System.IO.MemoryStream)(rpt.ExportToStream(ExportFormatType.PortableDocFormat)));
}
else
{
if (Int32.Parse(ddl_export.SelectedValue) == 2)
{
rptStream = ((System.IO.MemoryStream)(rpt.ExportToStream(ExportFormatType.Excel)));
}
else
{
rptStream = ((System.IO.MemoryStream)(rpt.ExportToStream(ExportFormatType.WordForWindows)));
}
}
//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=" + this.nombreReporte);

//Se escribe el archivo
Response.BinaryWrite(rptStream.ToArray());

//Response.Flush();
Response.End();
}

private string FormatoDocumento()
{
string tipo = null;
switch (Int32.Parse(ddl_export.SelectedValue))
{
case 4:
tipo = "application/vnd.ms-excel";
nombreReporte += ".xls"; break;
case 3:
tipo = "application/msword";
nombreReporte += ".doc"; break;
default:
tipo = "application/pdf";
nombreReporte += ".pdf"; break;
}
return tipo;
}
Por Anónimo - Fecha: 2008/05/12 06:05 PM
A la persona que solucionó el problema del logon de donde sacas el RETURNDATASET ya que puse el codigo y me dice que no esta declarado y (supongo que tu dsInOut es lo que nosotros usamos como DataSet1, que es InOut

ds.Merge(ReturnDataSet(Session("InOut")("dsInOut")), False,
System.Data.MissingSchemaAction.Ignore)

Saludos.

si pudieras responderme a zeta27@msn.com
Por Anónimo - Fecha: 2008/08/26 07:40 PM
A la persona que solucionó el problema del logon de donde sacas el RETURNDATASET ya que puse el codigo y me dice que no esta declarado y (supongo que tu dsInOut es lo que nosotros usamos como DataSet1, que es InOut

ds.Merge(ReturnDataSet(Session("InOut")("dsInOut")), False,
System.Data.MissingSchemaAction.Ignore)

Saludos.
Fernando - lferhs@hotmail.com ....te agradecere el apoyo
Por Anónimo - Fecha: 2008/09/10 01:05 PM
alguien podria ayudarme necesito exportar desde la web un archivo de cristal reports 8 cuando lo hago me sale un mensaje de error que la version esta bloqueada por politicas pero en si el problema es por el service packs 3 de office 2003 que causa este problema alguien tiene una solucion para esto.

saludos.
Por Anónimo - Fecha: 2008/10/16 08:29 AM
desde el entorno de desarrollo de visual estudio me funciona bien el crystal report, se ve el informe, se imprime y se exporta, pero cuando monto el sitio web en el IIS, se muestra el informe pero no se ven las imágenes de la barra (imprimir, exportar ...) y no se puede imprimir ni exporta. Ya incluí las dll del crystal y ya copié la carpeta del crystal que está dentro del visual estudio como alguien aconsejó aquí, pero sigue igual.
Mi correo es: meyling@ecmtz.cupet.cu
Por Anónimo - Fecha: 2008/10/21 10:40 AM
agosys@hotmail.com


hola
este articulo esta muy bueno quisiera tenerlo en c#
si alguien me colabora
Por Anónimo - Fecha: 2011/04/19 10:55 AM
fenomenal
Por Anónimo - Fecha: 2012/04/26 10:27 AM
It is recommended as they are culrentry offering it for free for that age group. They may start charging in a couple of years. I know it is $ 300 Australian for someone over 26 to get the injection.They have still not determined if a booster shot will be needed every 10yrs or so. So for a 9 yr old they may as well weight until they are 18 to get it in case they'll need a booster anyway.They basically give your body a tiny dose of hpv and your body learns to fight it- the same thorey of all other vaccines.I had the first one and my arm was sore and lumpy for a week, I had the second one 4 weeks ago and my arm is still sore and lumpy. The doctor advised me that they may not give me the 3rd one if my arm doesnt get better first.I guess this pain now is better than cervical cancer later.
Por Anónimo - Fecha: 2012/04/27 08:01 AM
zK730u , [url=http://zjjinbyqcrsc.com/]zjjinbyqcrsc[/url], [link=http://qyxakyphwniz.com/]qyxakyphwniz[/link], http://hrvgtdpabahu.com/
Por Anónimo - Fecha: 2012/04/29 01:15 AM
zVj3ya , [url=http://eivtxvjltsim.com/]eivtxvjltsim[/url], [link=http://dxoldocsixxx.com/]dxoldocsixxx[/link], http://qumpfgbjvqky.com/
Por Anónimo - Fecha: 2015/12/17 03:14 PM
I have managed to get PayPal erxpess working. After the user goes through the PayPal stages and is redirected to comersus_checkout2.asp the shipping address is marked as Same as billing but the shipping address should be different.The shipping address entered in PayPal is being displayed in the Billing information. This is OK as I can just change the Billing information title to Shipping information title. My problem is the Billing information name is not the correct name that is entered at the PayPal stage.In paypal if I choose Choose postal address and enter a name and address the address entered shows up under Billing information but the name under Billing information is not the name entered it is the name of the paypal account holder.How can I display the name entered ion paypal?I know this sounds very confusing but if you place a dummy order you will see what I'm talking about.[]
Por Anónimo - Fecha: 2015/12/19 02:48 AM
( 2012.02.21 14:59 ) : Youre so cool! I dont suppose Ive learn atnyhing like this before. So good to seek out anyone with some unique ideas on this subject. realy thank you for starting this up. this website is something that is wanted on the net, someone with a little bit originality. helpful job for bringing one thing new to the internet! http://nheadpdc.com [url=http://ahpxfhf.com]ahpxfhf[/url] [link=http://ftedyootf.com]ftedyootf[/link]
Por Anónimo - Fecha: 2015/12/20 02:21 PM
An impressive share, I meelry given this onto a colleague who was doing a little analysis for this. Anf the husband in truth bought me breakfast simply because I found it for him.. smile. So i want to reword that: Thnx for your treat! But yeah Thnkx for spending plenty of time to talk about this, I feel strongly regarding this and really like reading regarding this topic. If it is possible, as you grow expertise, can you mind updating your blog site with a lot more details? It’s highly useful for me. Huge thumb up with this writing! http://rgvqowljg.com [url=http://xsrkes.com]xsrkes[/url] [link=http://skojej.com]skojej[/link]
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
ricardo leppe t
pedrojavier
CALIN
willipinru
richard
ragomez
PER 238
MEX 236
CRI 188
COL 118
ESP 105
ARG 88