Access 2002

Событие Retreat


Иногда при форматировании отчета возникает необходимость вернуться к предыдущему разделу. Так, если свойство KeepTogether уровня группировки имеет значение With First Detail Row, Access форматирует заголовок группы и первую строку данных, а затем проверяет, умещаются ли они на свободном пространстве текущей страницы. После форматирования этих двух разделов Access возвращается на два раздела назад, генерируя событие Retreat для каждого из этих разделов. Затем она снова форматирует указанные разделы и, наконец, выводит их на печать.

В процедуре обработки события Retreat можно отменить изменения, сделанные в процедуре обработки события Format. Так как при обработке события Format неизвестно, будет ли данный раздел печататься на текущей странице, в обработчике события Retreat следует отменить все изменения макета, сделанные во время обработки события Format.

Простейшим примером использования события Retreat является подсчет строк в процедуре обработки события Format. Если в процедуре обработки события раздела Format счетчик увеличивается с каждой новой строкой, то в процедуре обработки события Retreat он должен уменьшаться. Иначе, если для некоторой строки событие Format генерировалось несколько раз, счетчик будет иметь неправильное значение. (Решить данную проблему можно несколькими способами, включая проверку свойства FormatCount. Этот пример только поясняет, зачем может понадобиться событие Retreat.)

Событие Retreat генерируется, в частности, в двух легко предсказуемых ситуациях. Если вы создали уровень группировки и его свойству KeepTogether присвоили значение With First Detail Row, то Access пытается разместить на одной странице заголовок и первую строку данных каждой новой группы. Для этого она генерирует события Format и Retreat, а затем — события Format и Print для первой строки данных в группе.

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