Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы 2 / ЛекцБазы данных.doc
Скачиваний:
59
Добавлен:
26.04.2015
Размер:
1.08 Mб
Скачать

Пример составления меню

Вуз

Рис.7.12.Схема меню

74

Программа меню, представленного на рис.7.12, будет следующей:

SET TALK OFF

CLEAR

DEFINE MENU VYZ

DEFINE PAD fac OF VYZ PROMPT 'Факультет' AT 1,10

DEFINE PAD kaf OF VYZ PROMPT 'Кафедра' AT 1,30

DEFINE PAD vixod OF VYZ PROMPT 'Выход' AT 1,50

ON PAD fac OF VYZ ACTIVATE POPUP pfac

ON PAD kaf OF VYZ ACTIVATE POPUP pkaf

ON SELECTION PAD vixod OF VYZ CANCEL

DEFINE POPUP pfac

DEFINE BAR 1 OF pfac PROMPT 'Деканат'

DEFINE BAR 2 OF pfac PROMPT 'Группы'

DEFINE BAR 3 OF pfac PROMPT 'Студенты'

ON SELECTION BAR 1 OF pfac DO P11

ON SELECTION BAR 2 OF pfac DO P12

ON SELECTION BAR 3 OF pfac DO P13

DEFINE POPUP pkaf

DEFINE BAR 1 OF pkaf PROMPT 'Специальность'

DEFINE BAR 2 OF pkaf PROMPT 'Дисциплины'

DEFINE BAR 3 OF pkaf PROMPT 'Кадры '

ON SELECTION BAR 1 OF pkaf DO P21

ON SELECTION BAR 2 OF pkaf DO P22

ON BAR 3 OF pkaf ACTIVATE MENU bkdr

DEFINE MENU bkdr

DEFINE PAD prep OF bkdr PROMPT 'Преподаватели' AT 7,50

DEFINE PAD itr OF bkdr PROMPT 'ИТР' AT 7,65

ON PAD prep OF bkdr ACTIVATE POPUP prep

ON SELECTION itr OF bkdr DO P232

DEFINE POPUP pprep

DEFINE BAR 1 OF pprep PROMPT 'Учебная деятельность'

DEFINE BAR 2 OF pprep PROMPT 'Научная деятельность'

ON SELECTION BAR 1 OF pprep DO P2311

ON SELECTION BAR 2 OF pprep DO P2312

ACTIVATE MENU VYZ

7.12. Модульное программирование

Вызов подпрограмм (модулей, процедур) осуществляется командой

DO <имя модуля> [WITH <список параметров>]

Оператор RETURN подпрограммы возвращает управление вновь в основную программу на команду , следующую за оператором DO.

Для корректной работы с модульной программой важно учитывать способ обмена информацией между модулями. 75

G

---

---

DO A

---

DO B

---

DO C

---

END G

B

---

DO B

---

---

DO E

б

а

Рис.7.13. а - схема взаимодействия модулей, б - схема вызова модулей

В FoxPro такой обмен возможен через параметры или через общие данные. Пример: DO ZARPLATA WITH "Иванов", "01/12/89"

Команда DO вызовет подпрограмму ZARPLATA.PRG и передаст ей два параметра: фамилию и дату, на которую производится начисление. Для получения этих параметров в подпрограмме нужно указать оператор:

PARAMETERS <список имен переменных>

Все переменные, определенные в вызывающем модуле, доступны и в вызываемом.. Переменные могут быть двух типов: локальные (PRIVATE) и общие (PUBLIC). Область действия локальных переменных - сам модуль и вызывае­мые им модули или процедуры. Область действия общих - весь связанный программой комплекс: PUBLIC a, b, с Локальные переменные определяются при присвоении значений:

а=0

PRIVATE x

х=0

A

Главный модуль Главный модуль

---

---

DO MOD

---

---

MOD

---

---

RETURN

---

---

DO A

---

---

PROC A

---

---

RETURN

а б

Рис.7.14. а - пример вызова подпрограммы, б – пример вызова процедуры

Недостатком обращения к подпрограмме ( рис.7.14, а) по оператору DO является большое время вызова, связанное с обращением к внешнему устройству и открытием файла.

Ч

76

асто используемые подпрограммы лучше было бы постоянно хранить в памяти компьютера и обращаться к ним непосредственно. С этой целью вDbase3 введено понятие процедуры. Процедура - это подпрограмма постоянно находящаяся в памяти (рис.7.14, б). Процедура оформляется операторами:

PROCEDURE <имя подпрограммы>

…………………..

RETURN

Процедуры загружаются в память командой

SET PROCEDURE TO <имя файла>

Пример вызова процедур.

Имеется файл сотрудников: SOTR (FIO, DOLG, ZARP, OTD). Необходимо начислить налоги и получить документ (налоги -13% от зарплаты).

SET PROCEDURE TO PFILE

CLEAR

USE SOTR

INDEX ON FIO TO OTR.NDX

GO TOP

STR=1

N =1

DO WHILE .NOT. EOF()

@ STR,1 SAY N pict '99'

@ STR,4 SAY FIO

@ STR,25 SAY DOLG

@ STR,35 SAY ZARP

DO NACH WITH ZARP,NAL

@ STR,40 SAY NAL

SKIP

STR = STR + 1

N = N+1

ENDDO

* Файл процедуры PFILE

PROCEDURE NACH

PARAMETERS Z,Y

Y = Z * 13/100

RETURN

содержит средства создания изображений, из элементов так

Соседние файлы в папке лабы 2