- •Основные понятия
- •1.1.Состав субд
- •1.2. Классификация баз данных
- •1. 3. Архитектура баз данных
- •Глава 2 проектирование баз данных
- •2.1. Этапы проектирования базы данных
- •2.2. Моделирование локальных представлений
- •3.1 Иерархические модели
- •3.2. Сетевые модели
- •3.3. Реляционные базы данных
- •Реляционные основы концептуального проектирования
- •4.1. Нормализация отношений
- •4.2. Проектирование реляционных баз данных (рбд)
- •5. Агрегированные объекты могут быть сведены в одно реляционное отношение в том случае, если те объекты, с которыми связан каждый из них, полностью совпадают (рис.4.13).
- •Упражнения к главе 4
- •Операции над отношениями
- •5.1. Выполнение операций над отношениями
- •На рис.5.1 приведены примеры операций реляционной алгебры над отноше
- •Реляционные языки запросов
- •6.1. Язык sql (Structured Query Language)
- •6.2. Операторы манипулирования данными
- •Поставщики (s)Tаблица 6.1
- •6.3.Выборки
- •Результат: номер поставщикасостояние
- •Результат: номер_деталивес
- •Р6 Шайба Красный 19 Липецк
- •6.4.3Апросы, использующие соединения
- •6.5.Подзапросы
- •6.6. Подзапросы с несколькими уровнями вложения
- •6.7. Коррелированный подзапрос.
- •6.8. Квантор существования. Запрос, использующий exists
- •6.9. Стандартные функции
- •6.10. Использование группировок (group by)
- •6.11. Объединение с использованием union
- •6.12. Многоаспектный запрос
- •6.13. Операции обновления
- •6.14. Представления
- •Упражнения к главе 6
- •Субд foxpro 2.0
- •7.1. Системный интерфейс FoxPro, главное меню
- •7.2. Архитектура субд FoxPro 2.0
- •Типы и размеры полей (в байтах).
- •Поле дат 8.
- •7.3. Основные команды FoxPro 2.0
- •7.4. Создание и редактирование бд
- •Антонов 4
- •7.5. Команды просмотра и редактирования записей
- •7.6. Создание командных файлов
- •Сведения о сотрудниках
- •7.7. Команды управления
- •7.8. Циклы в FoxPro
- •7.9. Построение экранных форм
- •Карта ввода
- •Карта ввода
- •7.10. Работа с массивами
- •Фио Должность Оклад
- •7.11. Построение меню
- •Пример составления меню
- •7.12. Модульное программирование
- •7.13.Изобразительные средства субд
- •7.14. Функции в FoxPro
- •7.15. Работа с несколькими бд, связывание бд
- •7.16. Работа с окнами
- •Упражнения к главе 7
- •Создание базы данных в среде Microsoft Access
- •8.1. Создание и открытие базы данных
- •8.2. Конструирование форм в среде Microsoft Access
- •8.3. Связывание таблиц в Microsoft Access
- •8.4. Запросы к связанным таблицам
- •8.5. Отчеты
- •8.6. Рисунки и другие объекты в среде Microsoft Access
- •Приложение 1 База данных поставок
- •Приложение 2 Список вопросов для повторения учебного материала
- •Приложение 3 Задания для самостоятельного выполнения
- •Список литературы
- •Оглавление
- •Глава 7. Субд foxpro 2.0................................................…….........………… 54
- •Глава 8. Создание базы данных в среде Microsoft Access .........……................88
7.11. Построение меню
В FoxPro имеются две альтернативные технологии построения меню. концепция, продолжающаяся из предыдущей версии СУБД FoxBase и концепция, позаимствованная из СУБД dBASE4. Главное отличие между ними может быть определено терминами «меню-программа» и «меню-объект». Fox-меню является частью программы. dBASE-меню остается независимым объектом, к которому можно обратиться из любого места прикладной системы, и даже в командном окне уже после завершения программы.
В Fox-меню для поддержания постоянного возврата в меню, оно или команда активации меню, помещается в цикл вида DO WHILE .T. ... ENDDO. В Fox-меню различают:
1. LIGHTBAR-меню - меню с подсветкой и произвольным расположением элементов.
69
2. POPUP- меню вертикальное, всплывающее меню.
3.PULLDOWN-меню двухуровневое меню.
Меню FoxPro
Fox-меню dBASE-меню
LIGHTBAR POPUP-меню
POPUP BAR-меню
PULLDOWN Комбинированное
Рис.7.10. Классификация типов меню
LIGHBAR-меню:
Используются команды :
@ Y,X PROMPT, MENU
@ Y,X PROMPT <выражение> [MASSAGE <выражение>]
Пример 7.6. Меню с
подсветкой. DO
WHILE .T. CLEAR
@ 3,30 SAY "МЕНЮ СИСТЕМЫ"
@ 4,10 ТО 10,50 DOUBLE
@ 5,11 PROMPT "Ввод данных"
@ 6,11 PROMPT "Корректировка"
@ 7,11 PROMPT "Просмотр"
@ 8,11 PROMPT "Печать"
MENU TO N
DO CASE
CASE N = 0
EXIT
CASE N=1
DO VVOD CASE N=2
DO KORR CASE N=3
DO PROSM CASE N=4
DO PRINT ENDCASE ENDDO
70
POPUP-меню (вертикальное меню).
Здесь описание меню и активация разделены.
DIME <имя массива>
@ Y, X MENU <массив>, <выражение 1> [, <выражение 2>]
[TITLE <выражение>] READ MENU TO <переменная>
Выражение 1 - число элементов меню (до 128). Выражение 2 - число одновременно изображаемых строк на экране. TITLE - заголовок.
Пример 7.7.
CLEAR
D
МЕНЮ
А
Ввод данных
Редактирование
Удаление
А (2) = "Редактирование"
А (3) = "Удаление"
@ 5,10 MENU A, 3 TITLE ‘МЕНЮ’
READ MENU TO m
Двухуровневое PULLDOWN-меню. Такое меню состоит из главного го-ризонтального меню (меню заголовков) и нескольких вложенных в него вспо-могательных вертикальных меню.
Структура двухуровневого меню реализуется двумя командами: MENU BAR, MENU и командой активации:
READ MENU BAR TO
Главное меню определяется командой:
MENU BAR <массив>, <выражение N>
Здесь <выражение N> общее число пунктов меню;
<массив> двумерный символьный массив вида М (К,2). Первый столбец массива М (i, 1) содержит собственно пункты меню, второй столбец М (i, 2) комментарии к позициям меню, располагаемые в строке по команде
SET MESSAGE TO <номер строки>
Команда
MENU <выражение Nl>, <массив>, <выражение N2>, [, <выражение N3>]
Здесь:
<выражение Nl> номер элемента главного меню;
<массив> одномерный символьный массив, содержащий пункты меню; <выражение N2> число пунктов меню, обычно равно размерности массива; <выражение N3> - число одновременно показываемых пунктов меню.
Меню активирует команда:
READ MENU BAR ТО <переменная 1>, <переменная 2> [SAVE]
<переменная 1> номер пункта главного меню;
<переменная 2> номер пункта вспомогательного меню.
71
Пример.
ФАКУЛЬТЕТЫ
КАФЕДРЫ ГРУППЫ КОНЕЦ
Сведения
Преподаватели Специальности
Состав
ИТР Группы
Дисциплины
SET TALK OFF
SET TALK OFF
DIMENSION a (4,2)
a (1,1)='ФАКУЛЬТЕТ'
a (2,1)='КАФЕДРА'
а (3,1)='ГРУППА'
а (4,1)='КОНЕЦ'
а (1,2)="
а (2,2) = ' '
а (3,2) = ' '
DIMENSION b(2)
b(l)= 'Сведения'
b (2) = 'Состав'
DIMENSION c(3)
с (1) = 'Преподаватели'
с (2) = 'ИТР'
с (3) = 'Дисциплины'
DIMENSION d(2)
d (1) = 'Специальности'
d (2) = 'Студенты'
Формирование образа меню:
MENU
BAR
a,4
&& Главное меню MENU
1,b,2
&& Вспомогательное меню к
пункту ФАКУЛЬТЕТЫ MENU
2,c,3 MENU
3,d,2 g=2
&& Исходное
положение курсора в главном меню v=1
&& Положение
курсора во вспомогательном меню
DO WHILE .T.
READ MENU BAR TO g, v && Активация меню
DO CASE
………
CASE g=4
СANCEL
ENDCASE
ENDDO
72
72
DBASE-меню.
Имеются два типа меню: горизонтальное, вертикальное.
BAR-меню
PAD-пункт ....... PAD-пункт
POPменю
BAR-пункт
…..
BAR - пункт
Рис.7.11. Типы DBASE-меню
1. Горизонтальное меню (BAR-меню).
DEFINE MENU <имя> описание горизонтального меню.
DEFINE PAD <имя> OF <имя ВАR-меню> PROMPT <выражение> [AT Y,X]
Реакция меню:
ON SELECTION MENU <ВАR-меню> [<команда>]
ON SELECTION PAD <PAD-nyнкт> OF <ВАRменю> [<команда>]
Активация меню:
ACTIVATE MENU <имя>
•*»".
Подключение дополнительного меню к пунктам:
ON PAD <PAD-nyнкт> OF <ВАR-меню> [ACTIVATE POPUP <POPUP- меню>] [ACTIVATE MENU <ВАК-меню>]
Функции выбора из меню:
MENU() - возвращает имя активного BAR-меню.
PAD () - возвращает имя РAD-пункта.
PROMPT () - возвращает строку-предложение.
2. Вертикальное POPUP-меню.
DEFINE POPUP <имя>
[FROM Y1,X1][TO Y2,X2]
Описание элементов POPUP-меню:
DEFINE BAR <выpaжeниeNl> OF <РОРUР-меню> PROMPT <выражение>
Реакция меню:
ON SELECTION POPUP <РОРUР-меню> [<команда>]
Реакция на пункты меню:
ON SELECTION BAR <выражение N> OF <РОРUР-меню> [<команда>]
Активация меню:
ACTIVATE POPUP <имя РОРUР-меню>
Вызов другого POPUP-меню:
ON BAR <выражение N> OF <РОРUР-меню>
[ACTIVATE POPUP <РОРUР-меню> / ACTIVATE MENU <ВАР-меню>]
73
Функции выбора из меню: BAR() - возвращается номер ВАR-пункта, POPUP( ) возвращается имя POPUP-меню, PROMPT ( ) - возвращает строку
приглашение.
Двухуровневое PULLDOWN-меню.
Создается с помощью уже указанных команд. Командами DEFINE MENU и DEFINE PAD описывается главное горизонтальное меню. Командой
ON SELECTION PAD обычно описываются реакции тех пунктов, которые вызывают процедуры. Командой ON PAD с опцией ACTIVATE POPUP устанавливается связь горизонтального меню с вертикальным POPUP-меню, т. е. выход на второй уровень меню.
Командами DEFINE POPUP FIELD или DEFINE POPUP с командами DEFINE BAR описываются сами POPUP-меню, а их реакции – командой
ON SELECTION POPUP. Активация всей конструкции меню осуществляется командой ACTIVATE MENU.
Организация взаимодействия компонентов меню:
DEFINE MENU
DEFINE PAD DEFINE PAD DEFINE PAD
ON SELE CTION PAD ON PAD ACTIVATE POPUP
STRUCTURE
Меню
структуры
базы
ON
[SELECTION] Вызов
процедуры / команды обработки
отдельных строк POPUP
– меню или нового
меню низшего
уровня Факультет(fac)
Кафедра(kaf)
Выход
Деканат
Группы Студенты Специальность
Дисциплины
Кадры pfak pkaf
Преподаватели и
ИТР Учебная
деятельность Научная
деятельность
FIELD Меню из записей
базы FIELD Меню имен файлов
DEFINE
BAR ……………… DEFINE
BAR
Меню из
заданных
строк
Вызов процедуры,
команды
или нового
BAR
меню
ON
SELECTION POPUP
Вызов
процедуры
/
команды
обработки
POPUP
- меню