Итак, я пытаюсь экспортировать кристаллический отчет в pdf, не открывая отчет в средстве просмотра времени выполнения моего веб-приложения, используя
ExportToHttpResponse
метод. Кажется, все работает правильно, когда дело доходит до загрузки параметров, получения имени файла/пути загрузки отчета. Но когда я выполняю часть, которая должна создать всплывающее диалоговое окно, дающее пользователю возможность сохранить, запустить, отменить для любого типа загрузки, ничего не происходит. Ошибка не выдается. он не перешагивает через какую-либо часть кода, о которой я знаю. Кажется, он запускает строку ExportToHttpResponse, а затем ничего с ней не делает.
Так что я надеялся, что кто-нибудь может подсказать мне, что я могу делать неправильно с кодом, найденным ниже:
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);
}
}
}
Некоторые примечания:методы LoadParametersFields/LoadStaticTextFields, показанные выше, похоже, работают правильно, и при использовании для открытия отчета в crviewer отчет появляется и работает. Хотя, если вы хотите увидеть и эти методы, я вышлю их по запросу.
rptParams в начале является объявленным в частном порядкеList<ReportParameter>()
метод ConfigureCrystalReports используется для получения и загрузки пути к файлу отчета.
любая помощь или предложения очень ценятся. Спасибо.