Метод DiscardSavedData

Оценить
(0 голоса)

Отображая объект Report в Report Viewer или реализуя какой-то другой механизм вывода с одним и тем же объектом Report снова и снова, вы обязательно захотите сделать так, чтобы при запуске нового отчета все настройки, “оставшиеся” после обработки предыдущего отчета, сбрасывались. И хотя вы можете присваивать объекту Report значение Nothing и заново создавать его новый экземпляр, лучше будет вместо этого воспользоваться методом DiscardSavedData объекта Report и запускать отчет без постоянного присваивания объекту Report значения Nothing.

Пример применения этого метода хорошо показан в приложении Xtreme Orders. Объект Report объявляется в глобальном модуле, и форма Print Xtreme Orders остается загруженной до конца контекста приложения. Каждый раз, когда пользователь щелкает на кнопке ОК, приложение присваивает значения свойствам объекта Report на основании данных, указанных с помощью представленных на форме элементов управления, и затем либо выводит отчет на печать на принтере, либо экспортирует его, либо отображает форму, содержащую Report Viewer.

Необходимость в удалении предыдущих настроек возникает тогда, когда пользователь запускает отчет несколько раз, не закрывая и не перезапуская приложение. Поскольку объект Report никогда не освобождается и не создается заново, когда пользователь щел

кает на кнопке OK, значения всех его свойств остаются таким же, как и были. Если в коде Visual Basic не предусмотрена установка новых значений для этих свойств, поведение отчета может, вопреки вашим ожиданиям, оказаться таким же, каким оно было, когда отчет запускался в прошлый раз. Выполнение метода DiscardSavedData объекта Report сбросит настройки многих свойств, оставшиеся после предыдущей обработки отчета, и вернет их в состояние, в котором они были при проектировании.

Если вам нужно “очистить” какой-нибудь объект Report, просто выполните метод DiscardSavedData, как показано в следующем примере, взятом из приложения Xtreme Orders:

Report.DiscardSavedData 'требуется для получения корректных результатов.

Вас может удивить то, насколько важным является применение метода DiscardSavedData в RDC, особенно когда вы интегрируете разработанный в конструкторе ActiveX отчет, для которого не была установлена опция Save Data With Report (Сохранить данные с отчетом). Если вы используете внешний файл .RPT, который был сохранен после установки опции Save Data With Report, доступной путем выбора в меню File пункта Save Data With Report, скорее всего, потребуется, чтобы Visual Basic игнорировал сохраненные данные во время выполнения и обновлял отчет новыми данными из базы данных. Поскольку RDC интегрирует отчет, который полностью содержится в Visual Basic IDE (даже если файл .RPT был импортирован, его сохраненные данные не импортируются вместе с ним), у вас могут возникнуть сомнения по поводу того, как применяется метод DiscardsavedData. RDC, по сути, “сохраняет” данные в объекте Report, когда он просматривается в Report Viewer, распечатывается на принтере или экспортируется (или когда выполняется метод ReadRecords). Эти сохраненные данные остаются частью объекта Report до тех пор, пока они не будут удалены или пока не будет удалена ссылка на этот объект.

Работа с базой данных SQL
Подотчеты RDC
Создание нового отчета с помощью кода
Форматирование заголовка
Сохранение отчета

Добавить комментарий


Защитный код
Обновить