Сильная сторона элемента управления Web Forms CrystalReportViewer заключается в том, что он представляет отчеты в виде документов HTML, но в этом и его слабость. С одной стороны, такое представление отчетов содействует максимальной совместимости Crystal Reports for Visual Studio .NET и клиентских обозревателей; с другой, язык HTML не предусматривает точное постраничное разбиение при выводе на печать.
Чтобы обойти проблемы, связанные с печатью, следует преобразовать отчет в формат Adobe Acrobat (PDF). Вы можете написать довольно простую программу ASP.NET, которая позволила бы программным способом преобразовать отчет в формат PDF и затем перенаправила бы ваш обозреватель на этот файл. Таким образом, пользователь может запросить отчет через событие Postback и получить адрес PDF-версии отчета, которую он будет печатать. На Figure 13 показана программа, позволяющая выполнить эту операцию. Для простоты я использую некешированный объект cbsMain компонента ReportDocument для генерирования отчета.
Если вы для представления отчетов собираетесь использовать PDF-файлы, вам следует узнать о недостатках этого метода. Во-первых, чтобы удовлетворить многочисленным пользователям, вы должны дать уникальные имена созданным PDF-файлам; программа на Figure 13 использует постоянную текстовую строку, поэтому она годится только для демонстрации предлагаемого метода. Во-вторых, в какой-то момент времени PDF-файлы должны быть окончательно отредактированы, и, в зависимости от количества готовых отчетов на вашем приложении, весь файловый ввод-вывод, связанный с созданием и доводкой PDF-файлов, может при неправильном управлении и настройке значительно замедлить функцию масштабируемости. При создании приложений ASP.NET с помощью Crystal Reports for Visual Studio .NET рекомендуется изучить программу просмотра со стороны клиента и составить стратегию печати, поскольку у каждой опции имеется свой набор значимых аргументов "за" и "против".