Access 2002

Процедуры с событиями разделов


Однако мы же можем связывать процедуры с событиями разделов в модуле отчета. Значит, это возможно, нужно только знать, как это сделать. Мы предположили, что в Access должен существовать общедоступный объект, генерирующий эти события, и не ошиблись. Щелкнув правой кнопкой мыши в окне

Object Browser и включив отображение скрытых объектов, мы нашли среди них объект _SectionInReport, у которого имеются все интересующие нас события. Обратите, что в VBA идентификатор _SectionInReport является недопустимым, поэтому его нужно заключать в квадратные скобки. Итак, перед вами  8.10 часть кода класса SkipLabels.

Эта процедура получает ссылку на отчет, который должен быть распечатай, и сохраняет ее в переменной mrpt. Затем она получает ссылку на область данных этого отчета и сохраняет ее в переменной msec. Переменная msec объявлена с ключевым словом WithEvents, чтобы в дальнейшем класс смог обрабатывать ее события. Точнее говоря, одно событие — Format:

В обработчике события Format код подсчитывает, сколько наклеек уже пропущено, и, насчитав mintToSkip штук, запускает процесс печати. Пока наклейки не печатаются, а пропускаются, свойствам раздела NextRecord и PrintSection присваивается значение False.

Функция GetLabel sToSki р, приведенная  8.11, делает большую часть работы класса. Она формирует строку передаваемых форме параметров, куда входят Rows, Cols, StartLabel и Across, а затем открывает форму с помощью метода DoCmd. Open Form в режиме acDialog, передав ей сформированную строку через параметр OpenArgs. Код формы разбирает эту строку и выводит кнопки, как в ней указано. Пользователь выбирает или не выбирает начальную наклейку, а затем закрывает форму нажатием кнопки ОК или Cancel.

Комментарии закрыты