русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Реализация циклов в макросах


Дата добавления: 2015-07-04; просмотров: 2105; Нарушение авторских прав


Для реализации циклов в макросах используется макрокоманда ЗапускМакроса. Рассмотрим примеры.

Пример 16. Выдать на экран три раза одно и то же сообщение. Для решения этой задачи можно три раза использовать макрокоманду ОкноСообщения, а можно это сделать с помощью цикла:

· создать макрос, содержащий единственную макрокоманду ОкноСообщения, в аргументах которой укажем повторяемое сообщение, например, слово Ура!. Сохранить макрос, задав ему имя, например, Сообщить.

· создать другой макрос по имени Запуск сообщения,который показан на рисунке 90:

Рисунок 90 – Макрос Запуск сообщения

· исполнить макрос Запуск сообщения.

 

Рассмотрим более сложные примеры.

Пример 17. Пусть имеем загруженную данными таблицу Det. Требуется отобрать в отдельную таблицу детали с ценой больше 100 руб., а в другую таблицу – остальные детали. Эту задачу можно решать несколькими способами.

 

 

Способ 1. С использованием запросов:

· создать запрос с именем Дорогие на создание таблицы по имени Дорогие детали, куда будут отбираться записи из таблицы Det, с условием отбора >100 для поля CENA;

· cоздать запрос с именем Дешевые на создание таблицы по имени Дешевые детали, куда будут отбираться остальные детали, в том числе и те, цена для которых не введена; запрос показан на рисунке 91;

!!! Талицы и запросы должны иметь разные имена

 

Рисунок 91 – Запрос на создание таблицы дешевых деталей и цена которых не введена

 

· создать макрос по имени Отбор деталей,который показан на рисунке 92:

 

Рисунок 92 – Макрос для отбора деталей в таблицы Дешевые детали и Дорогие детали

 

Макрокоманда УстановитьСообщения запрещает вывод системных сообщений.

Но тогда макрос выполнится «молча». Чтобы проинформировать пользователя БД, что макрос «сделал свое дело» нужно его завершить макрокомандой ОкноСообщения, как показано на рисунке 92.



· исполнить макрос Отбор деталей. В результате будут созданы две таблицы Дорогие детали и Дешевые детали с отобранными данными.

 

Способ 2. С использованием циклов в макросах.

Просматривая записи от первой до последней в таблице Det, будем копировать запись либо в одну таблицу, либо в другую в зависимости от значения поляCENA. Причем работу с данными таблиц будем осуществлять через формы. Последовательность шагов может быть такой:

· создать пустую таблицу для дорогих деталей. Назовем ее ДорДет. Ее структура должна быть такой же, как и структура таблицы Detза исключением ключевого поля, которое должно быть не счетчиком, а числовым:

¨ выделить таблицу Det в окне браузера объектов;

¨ скопировать ее в буфер обмена;

¨ вставить из буфера обмена, указав в открывшемся окне факт копирования только структуры (соответствующий переключатель);

¨ сохранить таблицу с именем ДорДет;

¨ открыть таблицу ДорДет в режиме конструктора, и, если ключевое поле – счетчик, то заменить его на числовое;

· аналогично создать пустую таблицу для дешевых деталей и деталей без цены по имени ДешДет;

· создать автоформы ДорДет и ДешДет, источником данных для которых являются соответствующие таблицы;

· создать условный макрос по имени Отбор, который буде выполняться в цикле при условии, что форма Det открыта (предполагается, что форма Det была заранее создана). Этот макрос в зависимости от значения поля CENA в форме Det будет копировать запись из таблицы Det в таблицу ДорДет или ДешДет через соответсвующие формы. Макрос Отбор приведен на рисунке 93:

 

Рисунок 93 – Макрос Отбор

 

· создать макрос Завершение отбора, который даст возможность убедиться в правильности заполнения данными таблиц ДорДет и ДешДет, а также закрыть все вспомогательные открытые объекты, то есть корректно завершить задачу (см. рисунок 94);

 

· создать макрос Отбор в цикле, который запускает два макроса: Отбор и Завершение отбора.

Макрос Отбор в цикле показан на ри-

сунке 95.

В этом макросе вместо аргумента Чис-

ло повторов можно указать Условие

повтора:

Not is Null (Формы![Det]![DIM]),

что означает“Пока не пусто значение

поля DIM в таблице Det”. Это условие можно использовать, если для всех де-

талей введено имя. Здесь поле DN ис

пользовать нельзя, так как DN – ключ.

Рисунок 94 – Макрос Завершение отбора

· на форму Det в режиме конструктора нанести кнопку, на которой написать

Отбор в цикле;

· связать событие Нажатие кнопки с макросом Отбор в цикле.

· открыть форму Det в режиме формы, по кнопке Отбор в цикле и убедиться, что поставленная задача решается правильно.

 

 

Рисунок 95 – Макрос Отбор в цикле

 



<== предыдущая лекция | следующая лекция ==>
Пояснения к рисунку 84 | Взаимодействие форм


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.039 сек.