Отчет ExportToHttpResponse Crystal без запуска CRViewer

Итак, я пытаюсь экспортировать кристаллический отчет в 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 используется для получения и загрузки пути к файлу отчета.

любая помощь или предложения очень ценятся. Спасибо.

6
задан James213 25 July 2012 в 16:44
поделиться