Добавление отчетов профессионального качества в приложение пользователя в Visual Studio


Кешированные ReportDocuments - часть 2


cvwMain.ReportSource = cbsMain

Запустив приложение, просмотрите отчет и обновите несколько раз страницу. При этом вы увидете, как будет изменяться элемент управления Data Time при каждом обновлении. Эта операция наглядно продемонстрирует вам основное различие между кешированными и некешированными отчетами: кэширование позволяет избежать лишних обращений к базе данных, когда уже есть требуемые данные.

Когда вы используете атрибуты DataDefinition или Database объекта cbsMain (экземпляр моего некешированного ReportDocument) для задания значений параметров или атрибутов входа в таблицы, обратите внимание, что ccbMain (экземпляр кешированного ReportDocument) не имеет таких атрибутов. Как использовать кешированные отчеты по отношению к защищенным таблицам и параметризованным хранимым процедурам? Ключ лежит в программе, расположенной позади строго типизированного отчета. Снова щелкните по кнопке Show All Files (Показать все файлы) в Solution Explorer, перейдите к CustomersBasic.rpt и откройте позади него файл программы. Вы уже были здесь, но сейчас вам следует открыть программу для класса CachedCustomersBasic, содержащуюся в этом файле.

Обратите внимание, что программа создает новый экземпляр некешированного класса CustomersBasic для своего метода CreateReport, поскольку CachedCustomersBasic в действительности содержит CustomersBasic. Таким образом, я могу написать настраиваемую программу в этом общедоступном методе, чтобы иметь доступ к атрибутам Database и DataDefinition как созданного экземпляра класса CustomersBasic, так и интерфейса с защищенными объектами базы данных и параметризованными хранимыми процедурами. Если я применяю этот метод, то при создании нового экземпляра кешированного отчета будет создаваться соответствующий сконфигурированный экземпляр некешированного строго типизированного отчета.

Теперь прокрутите несколько вниз, чтобы увидеть снабженную комментариями программу для другого важного метода, GetCustomizedCacheKey. Этот метод генерирует уникальный ключ, который определяет, будет ли использоваться копия кешированного отчета для выполнения запроса.


Начало  Назад  Вперед



Книжный магазин