Разработка интерфейса для управления приложением
409
Главная форма
управления приложением
Создадим главную форму управления приложением, в которой будут представлены:
данные о невыполненных договорных обязательствах, за которые отвечает при-
ступивший к работе исполнитель;
данные о запасе товаров на складе;
ссылки на наиболее часто используемые документы и отчеты;
диаграмма стоимости товаров, не отгруженных по договорам.
Кроме того, предоставим возможность выбирать другого исполнителя и, соответст-
венно, отображать связанные с ним данные.
Такая форма управления приложением в окончательном виде приведена на
рис. 10.6.
Рис. 10.6.
Форма управления приложением
1.
Создайте пустую форму. Дополните открывшуюся в
режиме макета форму заго-
ловком, выполнив соответствующую команду на ленте
Конструктор
(Design)
в группе
Колонтитулы
(Header/Footer).
2.
Замените значение в надписи заголовка на
Поставка товаров
.
3.
Скопируйте поле со списком из созданной ранее формы
Регистрация исполни-
теля
, открыв ее в режиме конструктора. В разрабатываемой форме перейдите
в режим конструктора, увеличьте ширину заголовка формы и вставьте скопиро-
ванное поле со списком в заголовок. Чтобы в поле со списком отображался ис-
410
Глава 10
полнитель, выбранный в окне регистрации, в свойствах поля на вкладке
Данные
(Data)
измените
Значение по умолчанию
(Default Value) на:
=[TempVars]!
[ИД_исполнителя]
. Использованная здесь временная переменная была определена
в макросе кнопки
Вход
из формы
Регистрация исполнителя
.
4.
Дополните заголовок формы кнопками
Новый договор покупателя
и
Отгруз-
ки по невыполненным договорам
. Для каждой кнопки свяжите с событием
Нажатие кнопки
(On Click) вызов внедренного макроса с макрокомандой, от-
крывающей соответствующую форму. Для открытия формы в режиме ввода но-
вого договора установите в макрокоманде
ОткрытьФорму
(OpenForm)
Режим
данных
(Data Mode) —
Добавление
(Add).
Для формы
Отгрузки по невыпол-
ненным договорам
установите
Режим данных
(Data Mode) —
Только чтение
(Read Only).
Для вывода в форме управления приложением данных о невыполненных договорах
используйте подчиненную форму
Невыполненные договоры
, построенную на
запросе.
1.
Создайте запрос, в котором из таблиц ПОСТАВКА_ПЛАН, ДОГОВОР и ТОВАР
выбираются необходимые поля и рассчитывается недопоставка. Запрос
представлен на рис. 10.7. Условие отбора в поле
Недопоставка
позволит выбрать
только те строки спецификации
договора, в которых не выполнен план поставок.
В запросе, кроме отображенных на рисунке полей, используйте еще два поля:
•
в первом — для поля со сроком поставки
СРОК_ПОСТ
запишите условие отбора
<=Month(Date())
, что позволит выбрать только те записи, в которых срок по-
ставки просрочен или истечет в текущем месяце;
•
во втором — для вывода срока поставки в виде наименования месяца запи-
шите вычисляемое поле:
Выражение1: MonthName([СРОК_ПОСТ])
.
Рис. 10.7.
Запрос — источник записей подчиненной формы
Невыполненные договоры
Разработка интерфейса для управления приложением
411
2.
Создайте форму с помощью мастера. В диалоге с мастером определите в качест-
ве
источника записей запрос
Недопоставка
и выберите необходимые поля
(см.
Невыполненные договоры
на рис. 10.6). Выберите внешний вид формы
табличный
(datasheet). Задайте имя формы
Невыполненные договоры
. Соз-
данную форму закройте.
3.
Перетащите созданную форму из области навигации в область данных пустой
формы, открытой в режиме макета или конструктора.
4.
В свойствах вставленной подчиненной формы
Невыполненные договоры
на
вкладке
Данные
(Data) введите
ПолеСоСписком0
в свойство
Основные поля
(Link
Master Fields) и
Код исполнителя
в свойство
Подчиненные поля
(Link Child
Fields). Проверьте:
•
действительно ли поле со списком имеет указанное имя (в свойствах этого
поля, на вкладке
Другие
(Other));
•
включен
ли в список полей, доступных в данной подчиненной форме,
Код ис-
полнителя
. Этот список можно открыть кнопкой
Добавить поля
(Add Existing
Field) на ленте
Конструктор
(Design), если форма открыта в режиме конст-
руктора, а также на ленте
Работа с макетами форм | Режим конструктора
(Form Layout Tools | Design), если форма открыта в режиме макета.
После определения этих свойств в подчиненной форме будут выводиться только
записи, связанные с выбранным в поле со списком исполнителем.
5.
Создайте надпись
Невыполненные договоры
и настройте элементы подчинен-
ной формы, как показано на рис. 10.6.
Для вывода в форме управления приложением данных о
запасе товаров на складе
используйте подчиненную форму, построенную на таблице ТОВАР.
1.
Создайте форму с помощью мастера форм. В диалоге с мастером определите
в качестве источника записей таблицу ТОВАР. Выберите доступные поля:
Код
товара
,
Наличие товара
,
Остаток и наименование товара
. Выберите внешний вид
формы
ленточный
(Continuous Forms). Задайте имя формы
Наличие товара
.
Созданную форму закройте.
2.
Перетащите созданную форму из области навигации в область данных пустой
формы, открытой в режиме макета или конструктора.
3.
В созданной таким образом подчиненной форме измените заголовок, оставив
в нем только надписи полей.
4.
Оформите поля с кодом и наименованием товара как гиперссылки. Для этого
в свойстве макета
Отображать
как гиперссылку
(Display As Hyperlink) выбе-
рите значение
Только на экране
(Screen Only). Теперь поля на экране будут вы-
глядеть как гиперссылки. Однако по щелчку на такой "гиперссылке" никаких
действий выполняться не будет.
5.
Чтобы по щелчку на таком поле выполнялись нужные действия, создайте в окне
свойств поля для события
Нажатие кнопки
(OnClick) внедренный макрос
(рис. 10.8). В макросе предусмотрите открытие формы ТОВАРЫ с вкладками