До сих пор все, что я сделал на клиентском компьютере, было выполнено в приложении Windows Forms, однако отчеты можно также представлять и в веб-приложениях ASP.NET. К счастью, Crystal Reports for Visual Studio .NET поддерживает технологию ASP.NET. Теперь я покажу, как представлять отчеты в виде документов HTML или документов Acrobat (PDF), используя элемент управления ASP.NET Web Forms CrystalReportViewer. Кроме того, я рассмотрю кэширование и использование кешированных данных.
Поскольку Web Forms CrystalReportViewer работает аналогично Windows Forms, изложение основных операций займет не слишком много времени. Для начала создайте в среде Visual Studio .NET новое веб-приложение ASP.NET Web Application и, используя функцию Add Existing Item, добавьте в проект CustomersBasic.rpt. Затем задайте местоположение данных для отчетов, вернувшись к таблице Customers, и в целях тестирования используйте вход с пустым паролем. Переименуйте WebForm по умолчанию в ViewReport.aspx и добавьте к нему элемент управления Web Forms CrystalReportViewer, задав для его атрибута ID значение cvwMain. Поскольку на этапе разработки элемент управления Web Forms CrystalReportViewer не имеет атрибута ReportSource, следует задать этот атрибут в событии Page_Load в ViewReport.aspx следующим образом:
cvwMain.ReportSource = Server.MapPath("CustomersBasic.rpt")
Запустив приложение, убедитесь в эффективности данной процедуры. Этот отчет является чистым HTML-документом несмотря на то, что в нем поддерживаются функции поиска, навигации, масштабирования и других элементов управления просмотром (кроме печати - об этом речь пойдет позже), хотя и с помощью переадресации (postback). Можно попробовать и другие способы загрузки отчета, которые я уже рассматривал: создание отчета из строго типизированного набора DataSet или из набора DataSet без контроля типов, из хранимой процедуры с помощью ReportDocument или разработчика компонентов ServerFileReport и т.п. Можно скопировать в событие Page_Load в ViewReport.aspx программу, которую я уже использовал для настройки учетной информации отчета и значений параметров, а также для манипулирования объектами ADO.NET. Это аналогично тому, что я уже делал, и я не буду повторяться, хотя опция ReportDocument требует некоторого объяснения.