Применение макросов
Перемещение по данным
Эта группа макрокоманд связана с перемещением по записям и элементам управления. В качестве примера применения макрокоманд этой группы рассмотрим ситуацию, когда пользователь работает с формой "Клиенты" и хочет найти заказ текущего клиента, номер которого ему известен. Давайте вернемся к примеру, приведенному в разд. "Назначение макроса событию". Тогда мы создали.в форме "Клиенты" кнопку Заказы клиента для отображения заказов выбранного клиента. Попробуем усовершенствовать эти формы. Если номер заказа известен пользователю, он может ввести его в текстовое поле Поиск заказа, которое можно добавить в форму "Клиенты" (Customers). Тогда в открываемой форме "Заказы" (Orders) следует сразу показать запись, содержащую соответствующий счет. Добавим поле "Поиск заказа" в заголовок формы и сделаем так, чтобы при открытии формы "Заказы" (Orders) проверялось значение этого поля и, если оно не пустое, производился бы поиск счета с указанным номером и выполнялся переход на соответствующую запись. В противном случае текущей становилась бы первая запись из отфильтрованного набора записей. На рис. 11.17 показана форма "Клиенты" (Customers) с новым полем и макрос "Поиск заказа", который связан с событием Загрузка (On Load) формы "Заказы" (Orders).
Поскольку добавленный макрос обработки события ссылается на элемент управления в форме "Клиенты" (Customers), он должен выполняться только в том случае, если эта форма открыта, и, кроме того, поиск должен производиться только тогда, когда поле "Поиск заказа" не пусто. Исходя из этого формируются условия макроса. Прежде чем производить поиск записи по образцу в одном из полей, необходимо активизировать это поле, для чего используется макрокоманда КЭлементуУправления (GoToControl). С ее помощью устанавливается фокус на поле "КодЗаказа" (Orderld). Но это поле в форме "Заказы" (Orders) недоступно, поэтому сначала нужно изменить значение свойства Доступ (Enabled) этого поля. В противном случае выполнение макрокоманды КЭлементуУправления (GoToControl) приведет к возникновению ошибки.
Макрокоманда КЭлементуУправления (GoToControl) используется, как правило, если требуется изменить стандартный порядок перехода между полями в форме. Обычно переход между полями выполняется с помощью клавиши Таb, однако иногда требуется пропустить ряд полей и переместить фокус к определенному элементу управления. Это может зависеть от каких-либо условий, например от значения поля. В этом случае на событие После обновления (After Update) для данного поля назначается макрос, который перемещает фокус на нужный элемент управления в форме. В качестве аргумента для макрокоманды необходимо указать короткое имя элемента управления. В случае излишне длинного имени переход к элементу управления не произойдет и отобразится сообщение об ошибке.
Рис. 11.17. Пример макроса для перемещения по данным