Условие вводится в строку макрокоманды в столбец Условие, вызываемый в окно макроса нажатием соответствующей кнопки панели инструментов. Условие задается с помощью логического выражения.
Для образования набора макрокоманд, которые нужно связать с выполнением условия, в их условии записывается многоточие (...). Если выражение истинно, выполняется макрокоманда, находящаяся в той же строке, и все следующие за ней макрокоманды до следующей макрокоманды с условием. Если выражение ложно, то макрокоманда, находящаяся в той же строке и все следующие за ней макрокоманды, у которых вместо условия проставлено многоточие (...), будут пропущены.
Следующей будет выполняться макрокоманда с новым условием или с пустой ячейкой условия (см. блоксхему на рис.32). Ввод в столбец условия значения (Ложь) также позволяет пропустить выполнение макрокоманды. Этот прием может использоваться при отладке макросов.
Рисунок 32
Таким образом, условие позволяет пропускать некоторый набор макрокоманд из последовательности макрокоманд макроса.
|
|
Первое условие макроса (условие1) проверяет значение поля ГОРОД в текущей записи формы. Эта форма работает с данными о студентах. На момент получения управления макросом эта форма должна быть текущим объектом.
Если <условие1> истинно, т. е. студент не является жителем Петербурга, выполняются четыре первых макрокоманды. Пятая макрокоманда будет выполнена только в случае выполнения <условие2>.
При невыполнении <условие1> пропускаются первая макрокоманда с этим условием и следующие за ней, отмеченные многоточием.
Ветвления в программе. В программе, состоящей из макрокоманд, можно организовать ветвление. На рис. 33 приведена блок-схема макроса, в котором реализуется ветвление.
Рисунок 33
Для организации ветвлений в программе нужно наряду с условиями использовать макрокоманды "ОстановитьМакрос" и "ЗапускМакроса". Макрокоманда "ЗапускМакроса" позволяет создавать также циклы в программах.
Общий пример макроса, соответствующего блок-схеме с ветвлением, приведен на рис. 34.
Рисунок 34
Первое условие проверяет в текущей записи, заполнено ли поле ГОРОД.
Если поле ГОРОД не содержит значения (<условие1>), выполняется первая макрокоманда и следующие три макрокоманды с многоточием в условии, последняя из которых завершает макрос.
Если поле ГОРОД заполнено, то указанные четыре макрокоманды пропускаются и работа продолжатся по другой ветке, начиная с проверки условия (<условие2>) в пятой макрокоманде.
Замена макрокоманды "ОстановитьМакрос" на макрокоманду "ЗапускМакроса" позволит продолжить выполнение первой ветки. Таким приемом можно получить любое ветвление программы.