Однако мы выполнили еще не все необходимые действия. Если перейти к следующей записи в форме "Клиенты" (Customers), данные в форме "Заказы" (Orders) уже не будут правильно отражать ситуацию — они не меняются. Нужно сделать так, чтобы эти данные изменялись синхронно с переходом к другим записям в форме "Клиенты" (Customers) либо чтобы это окно просто закрывалось. Рассмотрим реализацию второго варианта. Форма "Заказы" (Orders) открывается, когда мы нажимаем кнопку
Заказы клиента,
и становится активной. Требуется сделать так, чтобы она закрывалась, когда активной становится форма "Клиенты" (Customers). Для этого нужно выбрать соответствующее событие и задать процедуру или макрос его обработки. Если вы откроете окно
Свойства
(Properties) формы "Клиенты" (Customers) и раскроете вкладку
События
(Event), то среди множества событий увидите событие
Включение
(On Activate). Это как раз то событие, которое нам нужно. Выберем это событие, но теперь мы не будем создавать новую группу макросов, а добавим новый макрос в группу макросов "Клиенты" (Customers), которая уже содержит макросы для формы "Клиенты" (Customers). Выберите эту группу макросов в раскрывающемся списке и нажмите кнопку Построителя. Откроется окно, в котором отобразятся два макроса. Добавим к ним еще один макрос. Назовем его "Закрытие" и введем макрокоманду Закрыть (Close) с соответствующими параметрами (табл. 11.4). Но перед закрытием формы необходимо проверить, открыта ли она. Для этого воспользуемся функцией isLoaded, которая возвращает значение Истина, если форма открыта, и Ложь — в противном случае. В качестве аргумента в функцию isLoaded нужно передать имя формы. Итак, в столбец
Условие
(Condition), напротив макрокоманды Закрыть (Close), введите IsLoaded("Заказы") (или IsLoaded ("Orders")).