Глава 9
О
БРАТИТЕ ВНИМАНИЕ
Чтобы отобразить полный список макрокоманд, выполнение которых возможно только
в базе данных со статусом доверенной, щелкните на кнопке
Показать все действия
(Show All Actions). Когда доступен полный список макрокоманд, кнопка
Показать все
действия
(Show All Actions) выделена. Небезопасные макрокоманды помечены в спи-
ске каталога макрокоманд и в теле макроса значком
.
Управление последовательностью выполнения
макрокоманд
В макросе макрокоманды выполняются в порядке их расположения. Однако для
реализации алгоритма в программах часто необходимо нарушить последователь-
ность их выполнения в зависимости от некоторых условий. Условия позволяют оп-
ределить порядок передачи управления между макрокомандами в макросе и обес-
печивают выполнение определенных ветвей алгоритма. Например, в макросе про-
веряется значение поля в форме на соответствие заданным условиям, и для одних
значений может потребоваться вывести сообщение, а для других значений произве-
сти вывод отчета.
Для изменения порядка выполнения макрокоманд может быть использован управ-
ляющий блок:
Если
условное выражение
то
[
макрокоманды_то
]
иначе
[
макрокоманды_ иначе
]
Конец блока "Если"
(
If ... Then ... Else ... End If)
.
Блок обеспечивает выполнение одной или другой группы макрокоманд в зависимо-
сти от значения условного выражения.
Условное выражение
является логическим выражением, которое возвращает значе-
ние
Истина
(
True
) или
Ложь
(
False
). Если
условное выражение
имеет значение
Истина
, то выполняются
[
макрокоманды_то
]
, в противном случае —
[
макрокоман-
ды_ иначе
]
.
Для включения в макрос блока
Если
(If) нужно выбрать его из раскрывающегося
списка в поле
Добавить новую макрокоманду
(Add New Action) или перетащить в
нужное место из каталога макрокоманд. Блок для выполнения набора макрокоманд,
если условное выражение истинно, отобразится в макросе в виде, представленном
на рис. 9.11. В этом блоке отсутствует блок
Иначе
(Else). Если условное выражение
ложно, то набор макрокоманд не выполнится, и управление будет сразу передано
на макрокоманду следующую за блоком
Если
(If).
После выполнения
Добавить блок "Иначе"
(Add Else) (см. рис. 9.11) получим
блок
Если ... то
... иначе ... Конец блока "Если"
(If ... Then ... Else ... End If), кото-
рый позволит выполнить набор макрокоманд
то
, если условное выражение истин-
но, и набор макрокоманд
Иначе
в противном случае (рис. 9.12).
На рис. 9.11 и 9.12 видно, что можно
Добавить блок "Иначе если"
(Add Else If) и
тогда в набор макрокоманд
Иначе
будет включен новый блок
Если
, который по-
зволит организовать проверку нового условного выражения и выполнение нового
Разработка приложений с использованием макросов
379
Рис. 9.11.
Блок
Если ... то ...
Конец блока "Если"
Рис. 9.12.
Блок
Если ... то
... иначе... Конец блока "Если"
набора макрокоманд. Структура блока в этом случае может быть записана в сле-
дующем виде:
Если
условное выражение
то
[
макрокоманды_то
]
иначе
Если
условное
выражение
то
[
макрокоманды_то
]
Конец блока
"
Если"
Таким образом, условие позволяет пропустить или выполнить связанный с первым
условием набор макрокоманд и перейти к проверке следующего условия. Добавляя
новые логические блоки, можно реализовать самые сложные алгоритмы, связанные
с условными переходами к различной логике.
Допускается ввод в поле
Условное выражение
(Conditional expression) значений
Нет
(No),
Да
(Yes) или
Ложь
(False), (
Истина
(True). Этот прием может использо-
ваться при отладке макросов, например для того, чтобы пропустить выполнение
соответствующей группы макрокоманд.
Задача
Пусть необходимо по договору проверить текущее выполнение плановых поставок
конкретного товара. В форме ДОГОВОР, включающей подчиненную форму с пе-
речнем заказанных товаров, проверим для одного из заказанных товаров наличие
товара на складе. В случае отсутствия товара, выявим фактически произведенные
отгрузки по заказанному товару, отобразив отчет об отгрузках этого товара по на-
кладным, выписанным для просматриваемого договора.
В источник записей подчиненной формы
ПОСТАВКА_ПЛАН подчиненная форма
,
построенный на таблицах ПОСТАВКА_ПЛАН и ТОВАР, включите поле
380
Do'stlaringiz bilan baham: |