Así que estoy tratando de exportar un informe de Crystal a pdf sin abrir el informe en el visor de tiempo de ejecución de mi aplicación web utilizando el ExportToHttpResponseExportToHttpResponse informe cristalino sin correr CRViewer
método
. Todo parece funcionar correctamente cuando se trata de cargar los parámetros, obtener el nombre de archivo/ruta de carga del informe. Pero cuando ejecuto la parte que se supone debe crear un cuadro de diálogo emergente que le da al usuario la opción de guardar, ejecutar, cancelar cualquier tipo de descarga, no pasa nada. No se arroja ningún error. no está pasando por encima de ninguna parte del código del que soy consciente. Parece ejecutar la línea ExportToHttpResponse y luego no hacer nada con ella.
así que estaba esperando que alguien me podría dar alguna dirección en lo que podría estar haciendo mal con el código que se encuentra a continuación:
protected void ExportRptButton_Click(object sender, EventArgs e)
{
if (null != SelectedReport)
{
rptParams.Clear();
rptParams = null;
// Get the report document
// string filePath = Server.MapPath(@"~\Reports\" + SelectedReport.FileName + ".rpt");
// Declare a new Crystal Report Document object and load the report file into the report document.
ReportDocument rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
ConfigureCrystalReports(rptDoc);
// repDoc.Load(rptFileName);
// AddParameters();
// Set the report parameters the report object.
LoadParameterFields(rptDoc);
// Set the static text fields in the report object.
LoadStaticTextFields(rptDoc);
try
{
if (rptDoc.IsLoaded)
{
// Stop buffering the response
Response.Buffer = false;
// Clear the response content and headers
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
// Export the Report to Response stream in PDF format and file name Customers
rptDoc.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "DirectAccessReport");
// rptDoc.ExportToDisk(ExportFormatType.PortableDocFormat, "~/PDF_Folder");
// There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports
}
}
catch (Exception ex)
{
logger.ErrorFormat("Could not export to pdf! {0}", ex);
}
}
}
Algunas notas: los LoadParametersFields/métodos LoadStaticTextFields mostradas anteriormente parecen estar funcionando correctamente y cuando se utiliza para abrir el informe en el crviewer, el informe aparece y funciona. Aunque, si deseas ver esos métodos también, los arrojaré a petición.
Los rptParams en el principio, una forma privada declararon List<ReportParameter>()
el método ConfigureCrystalReports se utiliza para obtener y cargar la ruta de archivo del informe.
cualquier ayuda o sugerencia es muy apreciada. Gracias.
trate de añadir 'Response.Flush();' 'después rptDoc.ExportToHttpResponse' – Icarus
@Icarus lo intenté, pero no hizo ningún cambio notable – James213