Теория и практика построения баз данных (1088289), страница 14
Текст из файла (страница 14)
Например, можно параметризовать запрос, изображенный на рис, 2.6, так, чтобы пользователь вводил значение 1)а!еОп! непосредственно перед выполнением запроса. В результате будет показан весь инвентарь, выданный на руки до указанной даты, но до сих пор не возвращенный. Третий тип запроса, более легкий для пользователей, называется запросозт из формы (с!негу Ьу 1огш). В этом случае пользователь вволит критерии запроса п форму для ввола данных и нажимает кнопку поиска. СУЬД находит псе данные, соответствующие заданным критериям. В нашем случае в форме на рис. 2А пользователь ввел бы <№9/1/2001№ в поле Оа!еОи! и 1з !ти!! п поле ОаГе1п, после чего нажал бы кнопку ОиепгВуРопп (Запрос по форме).
СУБД нашла бы записи лля всех капитанов, отвечающие указанным критериям запроса. Запрос по форме является более новым и современным способом зап!юса данных, чем запрос по образцу, и, скорее всего, заменит его по многих приложениях. Рис. 2.7. Результат запроса, приведенного на рис. 2.б Компоненты приложения 68 Отчеты СарьипМапо Мтуотоео, Магу 398.333.1220 Рйопе 47172001 1 Соесвее Мепоег 7 эоссег Вен 571072001 егпгю1 , .Сарве1пХагпе ИЬегпогйу, Магу 3ауве : Рйопе 223. 288. 3328 ТуагеОае !2иапдгйг 33езсйрг(оп ВагеТп Меню 68 Глава 2. Введение в разработку баз данных Отчет (герогг) — это форматированное отображение информации из базы данных. Отчет на рпс.
2.8 содержит по одному разделу на каждого капитана команды, и в каждом таком разделе приведен список инвентаря, выданного на руки данному капитану. Например, инвентарь, выданный капитану по имени Мэри Миямото (Магу М!уашого), показан в первом разделе отчета. Сарваш Едигртеп$ Яерор'$ ЕгаоеОаг (2иага77у 17ежч(Р»гоп ОаГаХп а1072071 25 Вие Эоссегэвгвв би 072001 32212001 5 Яоссег Веж Г7ЗГ2001 ЗГ2212001 14 5оссег Вьгт бсЗГ2001 Рис.
2.В. Пример отчета дпя колледжа Н10ыюе Разработка отчета напоминает разработку формы для ввода даннььх, хотя в некоторых случаях разработать отчет легче, поскольку он используется только для отображения данных. Иногда отчеты строить труднее, так как зачастую они имеют более сложную структуру, чем формы, На рис. 2.9 показан процесс разработки отчета, изображенного на рис. 2.8, в М!сгозо(г Ассезб.
Перед вами образец полосггого генератора отчетов (Ьапс!ес! герогт жг!бег), который называется так потому, что отчет делится на разделы, или полосы (Ьапс)5). Как видно из рисунка, в отчете имеется полоса заголовков (Ьеаг!ег Ьапс!), полоса содержимого (дегай Ьапс!) и полоса колонтитулов ((побег Ьапс!). Полоса заголовка отчета (герогг Ьеас!ег) содержит название отчета, а в полосе колонтитулов отображается время, когда отчет был напечатан, номер страницы и общее число страниц.
Заголовок страницы (райе Ьеас!ег) пуст, а заголовок САРТА1Н 10 содержит персональные данные капитагш и метки для раздела содержимого. В разделе содержимого отображается инвентарь, выданньш капитану, и пег Ей Е г ' ге»г 1«вд я» Х мг. г :Й- Я»2 агс.» 05 Е ВЯ Ос Рис. 2.9. Разработка отчета в Ьпсгово11 Аооевв 2002 Недостаток этого отчета в том, что два поля с датами оказываются разделенными, Отчет выглядел бы лучше, если бы мы поместили поле !)абеОи1 между полями (7ебспр11оп и !)а1е1п, Это делается путем элементарного перетаскивания меток и текстовых полей, и именно таковы типичные изменения, которые делаются с помощью подобных инструментов.
Вообще говоря, отчеты могут иметь много разделов, В более сложном примере, таком как распределение студентов по курсам, отчет мог бы быть сгруппирован по таблицам КОЛЛЕДЖ, КАФЕДРА, ДИСЦИПЛИНА и СТУДЕНТ. В этом случае он имел бы три полосы заголовков и строку содержимого. Меггю (гпеппз) предназначены для того, чтобы сделать компоненты приложения более доступнымн для конечного пользователя, а также для контроля действий пользователя. На рнс.
2.8 показан пример менкз для колледжа Н!8Ь!!пе. В полосе, находящейся в верхней части формы, изображены пункты мешо верхнего уровня: Ейе (Файл), Рогтб (Формы), ()нег!еб (Запросы), Керог25 (Отчеты) и Не!р (Помощь). Подчеркнутые буквы представляют егорячне» клавиши (Ьог!сеуб). Если удерживать клавишу <АИ>, нажимая при этом клавишу с подчеркнутой буквой, о~кроется соответствующее подменю. На рис. 2.10 пользователь нажал клавиши <Ай> + <5ж Выбранное подменю состоит из следующих пунктов: 5е!001 Ай кесогбб (Выбрать все записи), 5е1есГ Ьу Нате (Выбрать по имени) и 5е!ес1 Ьу РЬопе (Выбрать по номеру телефона).
В свою очередь, каждый из этих пунктов можно выбрать с помогцью «горячих» клавиш, нажимая <АИ и нужную клавишу. Меню делаю~ приложение более доступным Компоненты приложения 71 Рис. 2.10. Пример меню 70 Глава 2. Введение е разработку баз данных лггя пользовате.ля, показывая существующие варианты выбора и помогая выбрать желаемое действие. Меню могут также использоваться для управления доступом пользователей к формам, отчетам и программам.
Некоторые приложения пользуются этим, динамически изменяя меню после того, как пользователь зарегистрируется (з(яп оп). Прикладные программы Последний компонент приложения базы ланных — это прикладные программы (арр1ьсагюп ргодгашз), Как мы уже упоминали ранее, такие программы могут быть написаны на вхолном языке СУБД или на стандартном языке, работа кото- рого с СУБД обеспечивается через специальный программный интерфейс. Здесь мы будем пользоваться М1сгозой У1«па! Ваз(с в сочетании с Ассезз 2002.
Рис. 2.11. Перехват события е форме Сар1ал Снесноог Роггл Пусть деловой регламент колледжа Н1й)т1!пе солержит правило, гласящее, что капитаны, которые не живут в общежитии, не могут получать на руки руковод- ство тренера. Мы не знаем, чем обусловлено такое правило, — возможно, руководство тренера солержит секретные инструкции, которые дают Н12!11!не преимушество в соревнованиях, и колледж хочет контролировать, кому нылается это руководство.
А может быть, руковолства дорогие, и студентам, живущим в общежитии, легче прелъявить счет в случае потери. Какой бы ни была причина, Н(я!т!1пе хочет, чтобы приложение базы данных обеспечивало выполнение этого правила. Есть много способов сделать это. Один из способов, показанный на рис. 2.11,— перехват события, заключающегося в изменении текстового поля Оезспрбоп (Описание) в субформе 11егл (Инвентарь) формы Сар(а1п С!гес!гон1 Роггп, и обеспечение соблюдения указанного правила всякий раз, когда описание меняется.
На рпс. 2.9 разработчик открыл окно свойств для текстового поля ОезспрБоп и указал, что в случае изменения содержимого поля (Оп С!запое) следует перейти к процедуре обработки события (Счеп1 Ргоседнге). После этого Ассезз открыл окно лля ввола процелуры, изображенное на рис. 2.12. Рис. 2.12. Код Гдзиа! Вез~с, реализующий положение делового регламента Разработчик написал фрагмент кода на У!хна! Ваз(с, который будет запускаться при изменении оппсания. Сначала процедура определяет ситуацию, котла значение поля Сйу (Город) не равно строке «Саглрпз» («Общежитие»). В этом случае вызывается функция 1л5(г, проверяющая, содержится ли в поле описания инвентаря (Оезспр11оп.Тех() строка «Соас2!1ез Мапна!» («Руковолство Тренера»). Если ла, то генерируется звуковой сигнал и выдается предупреждающее сообщение, а поле Оезспрбоп очищается.
Этот код запускается всякий раз, когда пользователь изменяет значение текстового поля Оезспр(1оп. Есть и другие, более эффективные способы выполнения этого правила, но здесь нашей целью было показать, как кол приложения может быть связан с формами базы данных. 72 глава 2. Введение в разработку баз данных Процесс разработки базы данных 73 Разумеется, можно также написать код, работающий независимо от каких-либо форм или отчетов.
Можно написать программы, читающие и обновляющие данные в базе точно так жс, как это делается с файлами других типов. Примеры подобных программ вы увидите далее в этой кинге, в частности в главе 15, где мы продемонстрируем использование М1сгозо1г АРО для чтения и обновления данных на ъсЬ-сервере, и в главе 1б, где будет показано использование )ага для той же цели. Процесс разработки базы данных Многие тома были посвящены разработке информационных систем вообще и приложений баз данных в частности, поэтому здесь нам нет нужды сколько-нибудь глубоко обсуждать процессы системной разработки, В завершение этой главы мы лишь кратко рассмотрим процессы, используемые для разработки баз данных и их приложений. Общие стратегии База данных — это модель пользовательской модели деловой активности.