В веб-приложениях мы не можем экспортировать отчеты, как в приложениях Windows, поскольку программа выполняется на стороне сервера. При выполнении экспорта результаты также находятся на стороне сервера. Как же нам добиться полного экспорта на стороне клиента? На самом деле это несложно. Метод заключается в следующем: экспортируйте отчет в заранее созданный временный файл отчета на определенном веб-сайте, а затем с помощью команды response.redirect() укажите URL-адрес браузера на местоположение отчета, чтобы Браузер пользователя попытается загрузить только что экспортированный файл, и файл будет загружен клиенту, тем самым достигнув нужного нам эффекта. Часть кода выглядит следующим образом:
публичная строка ExportReport().
{
ExportOptions creo = новый ExportOptions();
DiskFileDestinationOptions crdo = новый DiskFileDestinationOptions ();
string FileName = Request.PhysicalApplicationPath + «ExportFileExap.xls»
//Установить параметры экспорта
;
creo = Myrpt.ExportOptions;
creo.ТипЭкспортФормата = ТипЭкспортФормат.Excel;
creo.ExportDestinationType = ExportDestinationType.DiskFile
//Установка параметров дискового файла
;
crdo.DiskFileName = ИмяФайла;
creo.DestinationOptions = crdo
//Экспорт отчета;
МойRpt.Экспорт();
вернуть имя файла;
}
Private void buttonExport_Click (отправитель объекта, System.EventArgs e)
{
строка FileName = ExportReport();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
Следует отметить, что при экспорте в Интернет необходимо иметь права на создание файлов в каталоге экспорта. Если прав недостаточно, появится ошибка «Доступ к файлу отчета запрещен...». Просто дайте пользователю ASPNET (пользователю системы, автоматически создаваемому при установке .NET Framework) права на запись в файле каталога экспорта.