КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 1
1. Общие
сведения о
реляционной
модели данных.
2.
Дана база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. Работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
поля TAB, FIO, DATA, OBR первой
записи в БД
для работника,
проработавшего
на фирме не
менее 10 лет.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 2
1.
Структура
команд СУБД
FoxPro.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран количество
работников,
средняя зарплата
которых не
менее 250 грн.
3.
Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 3
1. Создание
и изменение
структуры
БД. Типы данных
(типы полей).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран количество
работников
фирмы, родившихся
позднее 1954 года.
3.
Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 4
1.
Средства
редактирования
данных. Команда
BROWSE. Ключи и опции
команды.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран количество
работников
(женщин), имеющих
высшее образование.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 5
1.
Средства просмотра
содержимого
БД (DISPL, LIST, их отличие).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран количество
работников
(женщин), владеющих
навыками работы
на ПК.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 6
1.
Средства
редактирования
и добавления
новых записей
в БД (EDIT, CHANGE и APPEND).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран среднюю
зарплату для
работников
фирмы (женщин),
имеющих 3-х и
более детей.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 7
1.
Логическое
упорядочивание
БД. Создание
и использование
индексных
файлов.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран среднюю
зарплату на
фирме.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 8
1.
Последовательный
поиск информации
в БД (LOCATE, CONTINUE).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
в BROWSE-окне список
работников
со стажем 10 лет.
Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 9
1.
Средства создания
и отладки программ
(MODI COMM, DO).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран «средний
стаж» работников
фирмы.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 10
1.
Средства
алгоритмического
языка в FoxPro. Команды
присваивания
и STORE. Работа с
массивами.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и вывести на
экран содержимое
полей FIO,
DATA, SRZAR, COMP записи для
самого
молодого работника
фирмы.
3.
Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 11
1.
Средства
алгоритмического
языка FoxPro. Команды
IF и CASE.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
в BROWSE-окне список
работников
с высшим образованием.
Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 12
1.
Средства
алгоритмического
языка FoxPro. Команды
DO – WHILE, LOOP, EXIT.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Написать
фрагмент
программы,
реализующей
обработку
меню, которое
содержит следующие
пункты: ввод
новой записи
в БД, просмотр,
удаление, выход.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 13
1.
Использование
встроенных
функций FoxPro. Функции
работы со
строками. (LEN(),
AT(), ALLTRIM(), SPACE() ).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и удалить
(логически и
физически)
из БД все записи,
содержащих
в поле дата
рождения ссылку
на 1966 год.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 31
1.
Использование
встроенных
функций FoxPro. Функции
проверки файлов
и дисков (FILE
( ), EOF ( ), FOUND ( ), RECNO ( ), RECCOUNT ( )
) .
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
в BROWSE-окне список
всех работников,
которые владеют
иностранными
языками. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 14
1.
Изобразительные
средства FoxPro.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
в BROWSE-окне список
работников,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски,
предусмотреть
видимый размер
поля FIO – 15 символов.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 15
1.
Команды перемещения
в БД. (GO TOP/BOTTOM, SKIP)
, привести
примеры.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Определить,
каков процент
работников
фирмы не владеет
иностранными
языками.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 16
1.
Удаление записей
в БД (логическое
и физическое).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Определить,
каков процент
работников
фирмы владеет
навыками работы
на ПК.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 17
1.
Средства
разработки
меню (LIGHTBAR – меню).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Найти
и удалить
(логически и
физически)
из БД все записи
для работников,
не владеющих
навыками работа
на ПК.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 19
1.
Структура
программы,
реализующая
обработку
меню.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Определить,
каков процент
работников
фирмы (женщин)
достиг пенсионного
возраста.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 20
1.
Неформатированный
ввод/вывод,
команды INPUT, ACCEPT,
WAIT, «?».
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Определить,
каков процент
работников
фирмы получает
в месяц более
500 грн.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 21
1.
Средства
форматированного
ввода/вывода.
Команды @…SAY…GET.
Использование
их опций и
шаблонов.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Отобразить
содержимое
БД по возрастанию
среднемесячной
зарплаты.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 22
1.
Команды установки
SET. (DATE, TALK, MESSAGE, FILTER, PROCEDURE).
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести на
экран каждую
четную запись
БД.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 23
1.
Структура
окна FoxPro. Работа
с окнами. Команды
описания,
активизации,
перемещения.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Отобразить
содержимое
БД в алфавитном
порядке фамилий
работников.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 24
1.
Модульность
программ.
Последовательность
поиска процедур.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести
в BROWSE-окне список
работников
(мужчин). Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 25
1.
Модульность
программ. Работа
с процедурами.
Описание и
вызов процедур
с параметрами
и без параметров.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Вывести на
экран каждую
пятую запись
БД.
3. Задача
Зав.
кафедрой
Преподаватель
|
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 26
1. Работа
с несколькими
БД. Понятие
рабочей области.
Использование
псевдонимов.
Составное имя
поля.
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3. Задача
Зав.
кафедрой
Преподаватель
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет №27
1. Типы бинарных
связей. Привести
примеры.
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3. Задача
Зав.
кафедрой
Преподаватель
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 28
1. Пример программы
работы с двумя
БД (с использованием
окон).
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3. Задача
Зав.
кафедрой
Преподаватель
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 29
1.
Работа с фильтрами.
2. Дана
база данных
(БД) о кадровом
составе фирмы,
которая содержит
следующие
данные:
Название
поля
Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date дата
рождения
OBR
logical наличие
высшего образования
LANG
numeric кол-во
ин. языков, кот-ми
влад. работник
STAG
numeric стаж
работы на фирме
DETI
numeric количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
Определить,
каков процент
работников
фирмы имеет
детей.
3. Задача
Зав.
кафедрой
Преподаватель
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 30
1. Установление
связей 1:1 и 1:N в
FoxPro.
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3. Задача
Зав.
кафедрой
Преподаватель
КИЕВСКИЙ
НАЦИОНАЛЬНЫЙ
ЭКОНОМИЧЕСКИЙ
УНИВЕРСИТЕТ
КРЫМСКИЙ
ЭКОНОМИЧЕСКИЙ
ИНСТИТУТ
по
дисциплине:
«Информатика
и компьютерная
техника»
Экзаменационный
билет № 18
1.
Средства разработки
меню (POPUP – меню).
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3. Задача
Зав.
кафедрой
Преподаватель
2 .
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2 .
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2. Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
Экзаменационный
билет № 1
3.
Вывести в
BROWSE-окне список
работников,
средняя зарплата
которых находится
в интервале
[350;700). Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Создать вычисляемое
поле-nadbavka:
4% от среднемесячной
зарплаты за
знание каждого
языка. Оформить
задачу в виде
процедуры,
обеспечить
ее вызов.
|
Экзаменационный
билет № 2
3.
Вывести в
BROWSE-окне список
работников
(женщин). Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Оформить в
виде процедуры,
стаж работы
должен быть
параметром
при оформлении
процедуры.
Предусмотреть
вызов процедуры.
|
Экзаменационный
билет № 3
3.
Вывести в
BROWSE-окне список
работников
(женщин). Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Оформить в
виде процедуры,
дату рождения
передавать
как параметр.
|
Экзаменационный
билет № 4
3.
Вывести в
BROWSE-окне список
работников,
имеющих 3-х и
более детей.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Добавить
вычисляемое
поле-nadbavka:
3% за каждого
ребенка (от
средней зарплаты).
|
Экзаменационный
билет № 5
3.
Вывести в
BROWSE-окне список
работников,
фамилии которых
начинаются
на букву ‘Л’.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Добавить
вычисляемое
поле для сотрудников,
стаж работы
которых более
10 лет-надбавка-10%
от средней
зарплаты.
|
Экзаменационный
билет № 6
3.
Вывести в
BROWSE-окне список
работников,
работающих
не менее 10 лет
на фирме. Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Добавить
вычисляемое
поле-субсидии,
для этих сотрудников,
которая начисляется,
если средняя
зарплата меньше
100-10 % от средней
зарплаты.
|
Экзаменационный
билет № 7
3.
Вывести в
BROWSE-окне список
работников
с высшим образованием.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски,
и вычисляемое
поле-надбавка
за знание ПК-10%
от средней
зарплаты.
|
Экзаменационный
билет № 8
3.
Вывести в
BROWSE-окне список
работников,
владеющих не
менее, чем двумя
иностранными
языками. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Если работник
проработал
на фирме более
15 лет, предусмотреть
надбавку в
размере 10 % от
годового оклада.
Вывод списка
оформить в
виде процедуры.
В качестве
параметра
использовать
знание работником
иностранного
языка
|
Экзаменационный
билет № 9
3.
Вывести в
BROWSE-окне список
работников
(мужчин), достигших
пенсионного
возраста.
Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Оформить в
виде процедуры.
Обеспечить
вызов этой
процедуры.
|
Экзаменационный
билет № 10
3.
Вывести в
BROWSE-окне список
работников
(женщин), владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Оформить в
виде процедуры,
пол использовать
как параметр
при реализации
процедуры.
Предусмотреть
вызов процедуры.
|
Экзаменационный
билет № 11
3.
Вывести в
BROWSE-окне список
работников
с высшим образованием,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Оформить в
виде процедуры,
которая использует
пол сотрудника
в качестве
параметра.
Обеспечить
вызов процедуры
для пола «М»
и «Ж».
|
Экзаменационный
билет № 12
3.
Вывести в
BROWSE-окне список
работников
со стажем 10 лет,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Оформить решение
в виде процедуры,
стаж работы
предавать
как параметр.
Предусмотреть
вызов процедуры.
|
Экзаменационный
билет № 13
3. Вывести
в BROWSE-окне список
всех работников,
которые владеют
иностранными
языками. Сформировать
вычисляемое
поле NADBAVKA, в котором
предусмотреть
выплату премиальных
в размере 15% и
30% от средней
зарплаты
работникам,
владеющим 2
и более языками
соответственно.
Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
|
Экзаменационный
билет № 14
3. Вывести
в BROWSE-окне список
всех работников,
которые владеют
иностранными
языками. Сформировать
вычисляемое
поле NADBAVKA, в котором
предусмотреть
выплату премиальных
в зависимости
от стажа работы:
25 лет – 20% от средней
зарплаты.
Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
|
Экзаменационный
билет № 15
3. Вывести
в BROWSE-окне список
всех работников,
которые владеют
иностранными
языками. Сформировать
вычисляемое
поле SUBSIDIA,
в котором
предусмотреть
выплату субсидий
работникам
в размере 15% от
средней зарплаты
работникам,
имеющим 3 и более
детей. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
|
Экзаменационный
билет № 16
3. Найти
и вывести на
экран содержимое
полей FIO,
DATA, SRZAR, POL для
работника,
дольше всех
проработавшего
на фирме
|
Экзаменационный
билет № 17
3. Найти
и удалить
(логически и
физически)
из БД все записи
для работников,
достигших 40
лет. Оформить
в виде процедуры.
|
Экзаменационный
билет № 18
3. Найти
и удалить
(логически и
физически)
из БД все записи
для работников
(мужчин), достигших
пенсионного
возраста.
|
Экзаменационный
билет № 19
3.
Вывести в
BROWSE-окне список
работников
со стажем 10 лет,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Выводимые в
BROWSE-окне
упорядочить
по дате рождения,
предварительно
удалив записи,
в которых возраст
сотрудника
более 50 лет.
|
Экзаменационный
билет № 20
3. Вывести
в BROWSE-окне список
работников
с высшим образованием,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Выводимые в
BROWSE-окне
упорядочить
по дате рождения.
Оформить в
виде процедуры,
предусмотреть
ее вызов.
|
Экзаменационный
билет № 21
3. Вывести
в BROWSE-окне список
работников
с высшим образованием.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Выводимые в
BROWSE-окне
упорядочить
по табельному
номеру, предварительно
удалив записи
сотрудников
пенсионного
возраста (женщин).
|
Экзаменационный
билет № 22
3. Вывести
в BROWSE-окне список
работников
(женщин), владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Выводимые в
BROWSE-окне
упорядочить
по фамилии.
Оформить в
виде процедуры,
в которой пол
передается
как параметр.
Обеспечить
вызов процедуры.
|
Экзаменационный
билет № 23
3. Вывести
в BROWSE-окне список
работников
с высшим образованием,
владеющих
навыками работы
на ПК. Предусмотреть
вывод названия
таблицы и
заголовков
полей по-русски.
Выводимые в
BROWSE-окне
упорядочить
по полю
«стаж».
Оформить в
виде процедуры,
предусмотреть
вызов процедуры.
В качестве
параметра
использовать
работников
с высшим образованием.
|
Экзаменационный
билет № 24
3. Вывести
в BROWSE-окне список
работников,
имеющих 3-х и
более детей.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Выводимые в
BROWSE-окне
упорядочить
по полю «количество
детей». Добавить
вычисляемое
поле-надбавка:
2 % от зарплаты
за каждого
ребенка. Оформить
в виде процедуры.
|
Экзаменационный
билет № 25
3. Вывести
в BROWSE-окне список
работников,
имеющих 3-х и
более детей.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Выводимые в
BROWSE-окне
упорядочить
по дате рождения.
Добавить
вычисляемое
поле-надбавка:
15 % от зарплаты,
если она меньше
150. Оформить в
виде процедуры.
Обеспечить
вызов процедуры.
|
Экзаменационный
билет № 26
3. Вывести
в BROWSE-окне список
работников,
имеющих 3-х и
более детей.
Предусмотреть
вывод названия
таблицы и
заголовков
полей базы
данных по-русски.
Выводимые в
BROWSE-окне
упорядочить
по дате рождения.
Добавить
вычисляемое
поле – надбавка:
3% за ребенка
(каждого) от
средней зарплаты
|
Экзаменационный
билет № 27
3. Найти
максимальное
значение из
двух величин.
Оформить
нахождение
максимального
значения в
виде функции.
Написать фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 28
3.
Найти минимальное
значение из
2 величин. Оформить
нахождение
минимального
значения в
виде функции.
Написать
фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 29
3.
Дано 2 переменных.
Найти количество
нулевых значений.
Оформить
нахождение
нулевых значений
в виде
функции.
Написать
фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 30
3.
Дано 2 переменных.
Найти количество
положительных
значений. Оформить
нахождение
положительных
значений в
виде
функции.
Написать фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 31
3.
Дано 2 переменных.
Найти количество
отрицательных
значений. Оформить
нахождение
отрицательных
значений в
виде функции.
Написать фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 32
3.
Дано 2 переменных.
Найти количество
значений, меньших
10 . Оформить
нахождение
значений, меньших
10, в виде
функции.
Написать фрагмент
программы,
реализующей
вызов данной
функции.
|
Экзаменационный
билет № 33
3.
Написать фрагмент
программы,
устанавливающую
связь один
ко многим между
двумя базами
данных KADR1
и
KADR2 по полю
TAB
|
Экзаменационный
билет № 34
3.
Написать фрагмент
программы,
устанавливающую
связь один к
одному между
двумя базами
данных BRIG1
и
BRIG2 по полю
KOD
|
Экзаменационный
билет № 35
3.
Создать справочник
товаров по
базе данных
SUPPLY. В справочник
должны быть
включены поля
код_товара и
наименование_товара.
|
Экзаменационный
билет № 36
3. Найти
и вывести на
экран максимальную
зарплату на
фирме.
|
ВВЕДЕНИЕ
Методические
указания
предназначены
для проведения
практических
и лабораторных
занятий по
дисциплине
«Информатика
и компьютерная
техника» для
всех форм обучения.
В них кратко
изложены технологии
реляционных
СУБД, реализация
их средствами
СУБД FoxPro,
а также даны
практические
приемы их реализации.
Основное внимание
уделено изложению
команд языка
программирования
среды FoxPro
с пояснениями
на конкретных
примерах и
заданиях по
основным темам.
РЕЛЯЦИОННАЯ
МОДЕЛЬ
По
способу установления
связей между
данными различают
реляционную,
иерархическую
и сетевую
модели.
Реляционная
модель является
удобной и наиболее
привычной
формой представления
данных в виде
таблицы. В
математических
дисциплинах
таблице соответствует
термин отношение
(relation). Отсюда и
произошло
название модели
– реляционная.
Одним
из основных
преимуществ
реляционной
модели является
ее однородность.
Все данные
рассматриваются
как хранимые
в таблицах, в
которых каждая
строка имеет
один и тот же
формат. Каждая
строка в таблице
представляет
некоторый
объект реального
мира или соотношение
между объектами.
Пользователь
модели сам
должен для себя
решить вопрос,
обладают ли
соответствующие
сущности реального
мира однородностью.
Этим самым
решается проблема
пригодности
модели для
предполагаемого
применения.
Реляционная
модель имеет
два главных
свойства:
базовые
порции данных
представляют
собой отношения
(relations);
операции
над таблицами
затрагивают
только соотношения
(relation closure).
Соотношение
– это
математическая
концепция,
описывающая,
как соотносятся
между собой
элементы двух
множеств.
Модель
предъявляет
к таблицам
следующие
требования:
данные
в ячейках таблицы
должны быть
структурно
неделимыми.
Каждая ячейка
может содержать
только одну
порцию данных.
Это свойство
часто определяется
как принцип
информационной
неделимости.
Недопустимо,
чтобы в ячейке
таблицы реляционной
модели содержалось
более одной
порции данных,
что иногда
называется
информационным
кодированием.
Примером служит
идентификационный
номер автомобиля.
Если записать
его в одну ячейку,
то будет нарушен
принцип неделимости
информации,
поскольку в
ячейке окажутся
разделяемые
данные такие,
как наименование
производителя,
модели, сведение
о нахождении
предприятия
и т.д.;
данные
в одном столбце
должны быть
одного типа;
каждый
столбец должен
быть уникальным
(недопустимы
дублирования
столбцов);
столбцы
размещаются
в произвольном
порядке;
строки
размещаются
в таблице также
в произвольном
порядке;
столбцы
имеют уникальные
наименования.
Два
фундаментальных
правила:
правило целостности
объектов
(entity integrity rule) и правило
ссылочной
целостности
(referential
integrity rule).
Первичный
ключ
– это
столбец или
некоторое
подмножество
столбцов, которые
уникально, т.е.
единственным
образом определяет
строки. Первичный
ключ, который
включает более
одного столбца,
называется
множественным
или комбинированным
или составным.
Остальные
ключи, которые
можно также
использовать
в качестве
первичных,
называются
потенциальными
или альтернативными
ключами.
Внешний
ключ
– это
столбец или
подмножество
одной таблицы,
который может
служит в качестве
первичного
ключа для другой
таблицы. Внешний
ключ
таблицы является
ссылкой на
первичный ключ
другой таблицы.
Правило целостности
объектов утверждает,
что первичный
ключ не может
быть полностью
или частично
пустым, т.е. иметь
значение null.
Правило ссылочной
целостности
гласит, что
внешний ключ
может быть либо
пустым, либо
соответствовать
значению первичного
ключа, на который
он ссылается.
Формальное
определение
следующее:
Схемой
отношения
R называется
конечное множество
имен атрибутов
{A,A,…,A}.
Каждому имени
атрибута A
ставится в
соответствие
множество D,
называемое
доменом
атрибута
A,
1<=i<=n. Домен атрибута
A
обозначается
также dom(A).
Имена атрибутов
иногда
называются
символами
атрибутов
или просто
атрибутами.
Домены являются
произвольными
непустыми
конечными или
счетными множествами.
Пусть D=DD…D.
Отношение
r со
схемой R – это
конечное множество
отображений
{t,t,…,t}
из R в D; причем
каждое отображение
tr
должно удовлетворять
следующему
ограничению:
t(A)
принадлежит
D,
1<=i<=n. Эти отображения
называются
кортежами.
Семейство
систем управления
базами данных
FoxPro,
является продуктом
известной фирмы
Fox
Software
и имеет широкую
популярность
во всем мире.
В настоящем
пособии рассматривается
версия FoxPro2.6
(нерусифицированная),
работающая
под управлением
Windows.
ТИПЫ
ДАННЫХ
Visual FoxPro 6.0 типы
данных
Тип
|
Описание
|
Размер
|
Диапозон
|
Character
|
Любой
текст |
1
byte per character to 254 |
Любой
символ |
Currency
|
Monetary
amounts (денежно-кредитные
количества)
|
8
bytes |
-
922337203685477.5807 to 922337203685477.5807 |
Date
|
Хронологические
данные, состоящие
из месяца, года,
и дня |
8
bytes |
When
using strict date formats, {^0001-01-01}, January 1st, 1 A.D to
{^9999-12-31}, December 31st, 9999 A.D.
|
DateTime
|
Хронологические
данные, состоящие
из месяца, года,
дня, и времени
|
8
bytes |
When
using strict date formats, {^0001-01-01}, January 1st, 1 A.D to
{^9999-12-31}, December 31st, 9999 A.D., plus 00:00:00 a.m. to
11:59:59 p.m.
|
Logical
|
Boolean
значения
true или
false
|
1
byte |
True
(.T.) or False (.F.) |
Numeric
|
Integers
or fractions(Целые
числа
или
фракции(доли))
|
8
bytes in memory; 1 to 20 bytes in table
|
-
.9999999999E+19 to .9999999999E+20 |
Variant
|
A
variant can contain any of the Visual FoxPro data types and the
null value. Once a value is stored to a variant, the variant
asosumes the data type of the data it contains. Variants are
designated with an e
prefix in language syntax (Вариант
может
содержать
любой
из
Визуальных
FoxPro типов
данных
и
нулевое(пустое)
значение).
|
See
data types above. См.
типы данных
выше.
|
See
data types above. См.
типы данных
выше.
|
В среде
FoxPro установлены
следующие
стандартные
типы файлов
(всего
свыше
60, приводятся
лишь некоторые):
.dbf
- файл базы
данных;
.fpt
- файл для хранения
текстов memo- полей;
.idx
- индексный
файл;
.cdx
-
мультииндексный
файл;
.prg
- командный,
программный
файл;
.mem
- файл для хранения
временных
переменных;
.fxp
- откомпилированный
комадный
prg- файл;
.pjx
- файл проекта.
1. СУБД
FOXPRO: ОЗНАКОМЛЕНИЕ
С СИСТЕМОЙ
РАБОТА В
МЕНЮ-ОРИЕНТИРОВАННОМ
РЕЖИМЕ
Работа
в среде FoxPro
выполняется
в одном из следующих
режимов:
-
непосредственная
интерпретация
команд;
-
меню - ориентированный
режим;
При
работе в первом
режиме пользователь
вводит текст
команды в командном
окне. Среда
осуществляет
синтаксический
контроль и
выполняет
команду. Некоторые
команды в процессе
выполнения
проводят собственный
диалог с пользователем,
другие могут
выдавать лишь
краткие сообщения
об итогах
работы. Второй
режим предназначен
для начинающего
пользователя,
который не
освоил еще
языка команд.
Наконец, режим
выполнения
программ
подразумевает,
что пользователь
будет писать
программы,
используя язык
команд xBase, дополненный
специальными
командами
программирования.
Весь цикл по
написанию,
отладке и выполнению
программ можно
осуществлять
в среде системы.
МЕНЮ -
ОРИЕНТИРОВАННЫЙ
РЕЖИМ.
Рабочее
пространство
FoxPro представлено
окном, верхняя
строка которого
является строкой
главного меню
системы. Под
ней
- рабочая
зона пользователя.
В рабочем
пространстве
открыто также
командное окно,
размер и положение
которого можно
изменять либо
удалить.
Активизация
строки меню F10
Выбор
заголовка меню
клавиши
управления
курсором
Вход в
меню следующего
уровня Enter
Отмена Esc
За
клавишами
F1-F10 закреплены
стандартные
директивы,
назначение
клавиш можно
переопределить.
Горячие
клавиши (например,
CTRL+F2 -
активизация
командного
окна, CTRL+D
- выполнение
программ)
Главное
меню состоит
из заголовков
групп операций
и команд:
Для FoxPro
2.6 системное
меню выглядит
следующим
образом
SYSTEM
FILE EDIT DATABASE RECORD PROGRAM WINDOW
Каждой
группе соответствует
меню второго
уровня
- меню
операций и
директив, некоторые
из них открывают
свои диалоговые
окна. Перемещения
внутри окон
– клавишами
управления
курсором, по
полям окон
- Tab.
В диалогах
используются
командные
"кнопки", изображенные
на экране. К
ним относятся,
например. Ok
(подтверждение
установок).
Cancel (отмена
установок).
Save (сохранение)
и многие другие.
Недоступные
пункты главного
меню и директивы
имеют пониженную
яркость.
Рассмотрим
некоторые
пункты главного
меню.
System-меню
–
вспомогательные
средства FoxPro,
в том
числе:
About
FoxPro - предъявление
фирменного
знака.
Help -
помощь. Просмотр
и выбор варианта
помощи
–
клавиши
управления
курсором.
Вход
в следующее
меню
- Enter.
Перемещение
–
клавиши
управления
курсором.
Контекстная
помощь вызывается
из любого
режима
- F1.
Macros
-
закрепление
макрокоманд
за клавишами
F1 - F10.
Filer
-
менеджер файлов
- выполняет
функции управления
файлами.
Выбор
полей
- Tab. Левое
поле
- просмотр
файлов
(скроллинг).
Правое
поле
- выбор
накопителя,
каталога,
маркировка.
Нижнее поле
-манипуляция
файлами.
Calculator -
вызов калькулятора.
Calendar-Diary
-
вызов календаря
для внесения
записей. Левое
поле
–
выбор
дня (по стрелкам),
месяца (PgUp, PgDn), года
(Shift +PgUp,
Shift+PgDn), текущая дата
- Т. Правое
поле
- для
записей (Вход
- Tab, Выход
-Shift Tab).
Special
Characters
-
таблица символов
псевдографики.
ASCII Chart
-
таблица
ASCII-кодов.
Capture
-
взятие в буфер
заданной области
экрана.
Puzzle -
игра
File-меню:
New -
создание
Open -
открытие
Close -
закрытие
Save -
сохранение
Save as -
сохранение
с новым именем
Revert -
возврат предыдущей
версии файла
Printer Setup -
установки
принтера
Print -
печать файла
Quit -
выход
При
создании нового
файла (New) пользователю
предлагается
выбрать тип
создаваемого
файла: базы
данных, программный,
текстовый,
индексный,
генератора
отчетов или
др. Выбранный
тип получает
пометку
(•) .
Edit –
меню
– встроенный
текстовый
редактор системы.
Undo -
отмена последнего
действия,
Redo -
повторение
отмененного
действия,
Cut -
вырезка части
текста в буфер,
Сoру -
копирование
части текста
в буфер,
Paste -
вывод содержимого
буфера в текст,
Clear -
очистка части
текста,
Select All -
выделение всего
текста окна,
Goto Line -
переход к строке,
Find -
поиск заданного
фрагмента
текста,
Find Again -
поиск следующего
вхождения,
Replace and Find
Again -
последовательный
поиск с заменой,
Replace All -
полная замена
всех вхождений,
Preference -
настройка
редактора.
Database
–
меню
– работа с данными,
хранимыми в
БД
Setup -
модификация
баз данных,
индексов, фильтров,
Browse -
вызов команды
полноэкранного
редактирования,
Append From -
добавление
записей из
других БД или
файлов,
Copy То -
копирование
в другие БД или
файлы,
Sort -
сортировка
записей,
Total -
создание БД
с суммами по
заданному
признаку,
Average -
среднее арифметическое
числовых полей,
Count -
подсчет записей
с указанным
признаком,
Sum -
суммирование
числовых полей,
Calculate -
вычисления
в БД,
Report -
подключение
ранее созданной
формы отчета,
Pack -
физическое
удаление помеченных
полей,
Reindex -
переиндексирование
базы.
Record-меню
– работа
с записями
файлов БД
Append
-
вызов окна
дополнения
БД новыми записями,
Change -
вызов окна
редактирования
записей,
Goto
-
переход к указанной
записи,
Locate -
последовательный
поиск записи
по ключу,
Continue -
продолжение
поиска,
Seek -
ускоренный
индексный поиск
по ключу,
Replace -
изменения
(вычисления)
в БД,
Delete -
пометка записей
для удаления,
Recall
-
снятие пометок
для удаления.
Program –
меню
– средства
работы с программами
Do
- выбор
командного
файла и исполнение,
Cancel
- прерывание
программы,
Resume -
продолжение
программы,
Compile -
переход в окно
компиляции,
Generate -
вызов генератора
приложений,
FoxDoc
-
вызов документатора
программ,
FoxGraph -
вызов графического
пакета.
Window-меню
–
работа с окнами
Hide
- удаление
командного
окна с экрана,
Clear
- очистка рабочего
поля,
Move
- перемещение
командного
окна,
Size, Zoom
- изменение
размера командного
окна,
Cycle
- циклическое
переключение
активных окон,
Color
- выбор
цветовой схемы,
Command -
активизация
командного
окна,
Debug
- вызов
отладочного
окна,
Trace
- трассировка
программ,
View
- переход
в View
Подробную
информацию
о работе в меню
- ориентированном
режиме можно
получить из
контекстной
помощи (Help
- F1).
Ввод,
редактирование,
удаление, поиск,
просмотр данных
можно выполнить
для открытой
в
View-окне
базы данных
с помощью команд
Record-меню
из главного
меню:
-
добавление,
ввод данных;
-
изменение,
корректировка
полей записей;
- пометка
записей к удалению;
- отмена
пометки к удалению;
- замена
значений полей;
- переход
к записи, положение
которой указывается
в
диалоговом
окне с помощью
селекторных
кнопок:
<Тор>
-
к первой записи,
-
к последней
записи
- по
указанию номера
записи,
- смещение
от активной
записи по указанию
шага
-
поиск
данных путем
указания в окне
критериев
поиска:
-
область поиска
выбирается
из альтернатив:
- все
записи файла;
- следующая
за активной
записью;
- по
указанию номера
записи;
- оставшиеся,
начиная с активной;
- указание
логических
условий отбора
по значениям
полей в
окне
редактора
выражений;
- отбор данных,
пока истинно
логическое
условие
;
- быстрый поиск
для индексированного
файла данных
Команды
Record-меню
не затрагивают
физической
структуры базы
данных. Замечание:
В открытом
Browse-окне
удобно использовать
комбинации
клавиш:
^ N -
дополнение,
^Т -
пометка к удалению,
^W- выход с сохранением
изменений.
Команды
Database-меню
дают следующие
возможности:
-
аналоги одноименных
команд из меню
Window/View;
- сжатие данных,
удаление помеченных
записей.
- сортировка
записей по
заданному ключу
с перезаписью
в
другой
файл данных.
Дополнительные
возможности
работы с данными
в меню
— ориентированном
режиме можно
освоить с помощью
Help-меню.
Более
широкий круг
возможностей
работы с созданной
базой данных,
удовлетворяющих
всем информационным
потребностям
пользователя,
обеспечивает
покомандный
режим работы
(набор команд
в
Command-окне)
либо программный
режим (создание
командных
prg-файлов).
2.ОСНОВНЫЕ
КОМАНДЫ
FOXPRO
В настоящем
разделе приводится
краткое описание
основных команд
языка программирования
среды FoxPro, которые
можно задавать
непосредственно
в Command- окне либо
использовать
в тексте программ.
Получение
командные файлы
выполняются
в режиме интерпретации.
Продуктивное
освоение языка
возможно только
при практической
проработке
материала на
компьютере.
Формат
команды FOXPRO:
ИМЯ_КОМАНДЫ
[<границы>] [<список
выражений»]
[
FОR<условие>]
[WHILE< условие>]
Здесь
< зона действия
> - границы действия
команды:
ALL
- все
записи;
REST
- все
записи от текущей
до конца;
NEXT
- следующие
N записей;
RECORD
-
запись с номером
N;
FОR<условие>
-
выполнение
команды только
для записей,
удовлетворяющих
условию;
WHILE< условие
> - выполнение
команды только
до тех пор, пока
не
перестанет
выполняться
условие.
Пример:
LIST ALL FIELDS num, name FOR
name = 'A'
Для
длинных записей
команд используется
символ переноса
на следующую
строку - ";".
КОМАНДЫ
УСТАНОВКИ
Кроме
приведенных
выше команд
в FOXPRO имеется
большой класс
команд, называемых
командами
установки. Они
не выполняют
каких-либо
действий, но
влияют на работу
других команд.
Имеется
два типа команд
установки:
SET < параметр
> ON|OFF
SET < параметр1
> TO < параметр2
>
ON|OFF
– означает,
что установка
либо включена,
т.е. работает,
либо
выключена.
Примеры:
SET TALK OFF
– погашения
вывода служебных
сообщений
о работе команд
на экран;
SET
PROCEDURE TO a:\proc1
– назначение
процедурного
файла.
Перечень
наиболее часто
используемых
команд установки
приведена в
Приложении
2.
Перейдем
к рассмотрению
конкретных
команд.
ДИАЛОГОВЫЕ
КОМАНДЫ
Создание
и изменение
структуры файла
базы данных.
СRЕАТЕ<имя_файла>
- создание
структуры БД
в диалоге.
Пример
Название
поля Тип
Пояснение
TAB
numeric
табельный
номер
FIO
character ФИО
POL
character пол
DATA
date
дата рождения
OBR
logical
наличие
высшего образования
LANG
numeric
кол-во ин.
языков, кот-ми
влад. Работник
STAG
numeric
стаж работы
на фирме
DETI
numeric
количество
детей
SRZAR
numeric
среднемесячная
зарплата
COMP
logical знание
ПК
MODIFY
STRUCTURE -
изменение
структуры
открытой БД.
При вызове
этих команд
среда открывает
диалог, предоставляя
экран-форму
для ввода данных
о структуре
создаваемого
файла базы
данных.
КОМАНДЫ
РЕДАКТИРОВАНИЯ
APPEND
[BLANK]
- добавление
записи в конец
открытой БД
([BLANK]
-пустая запись).
INSERT
[BLANK]
[BEFORE]
- вставка
записи до [BEFORE]
или после
текущей
записи.
CHANGE
[<зона
действия>]
[FIELDS<список
полей>] [WHILE
<условие>]
[ FOR
< условие >]
- редактирование
значений полей.
DELETE
[зона
действия] [WHILE
<условие>][FОR<условие>]
пометка
записей
признаком
удаления.
BROWSE...
- команда доступа
пользователя
к данным.
При
вызове этих
команд и наличии
открытой базы
данных среда
развертывает
для пользователя
окно
редактирования.
Команда BROWSE
будет
рассмотрена
несколько
позже.
ПРОСМОТР
ДАННЫХ.
Команды
DISPLAY
и
LIST
DISPLAY
[<зона действия
>][<поля>]FOR[<условие>]WHILE[<условие>]
[OFF]
[TO PRINT / TO FILE<файл>]
Команда
LIST
с похожими
функциями не
делает остановок
при выдаче
данных и по
умолчанию
область ее
действия
- весь
файл, а команды
DISPLAY-
одна текущая
запись.
Примеры:
DISPLAY
REST FOF fio= ’И’
LIST
'фамилия',
fio FOR dolg = "инженер"
Удаление
данных
ERASE
<файл>
- удаление закрытого
файла;
ZAP
- удаление
всех записей
с сохранением
структуры;
DELETE
[<зона действия
>] [WHILE<
условие >] [FOR<
условие >] - пометка
к удалению
или логическое
удаление записей;
PACK
- физическое
удаление, помеченных
к удалению
записей;
RECALL
[<зона
действия >]
[WHILE<
условие >] [FOR<
условие >] - снятие
пометок к удалению;
Замечание.
помеченные
к удалению
записи остаются
в БД, однако
они могут не
обрабатываться
другими командами,
если была выполнена
установка
SET
DELETE ON.
Выполнение
команды PACK
приводит к
физическому
уничтожению
записей,
БД
при этом сжимается.
Фильтрация
данных
SET
FILTER
ТО [<условие>]
- установка
FOR-условия для
всех команд
обработки
данных (остальные
данные недоступны).
SET
FILTER
TO
без
параметра
- отменяет
ограничения.
Пример:
Изменение
данных
REPLACE
[<границы>]
[WHILE<условие>]
[FОR<условие>]
<поле1>
WITH<выражение>[,<поле2>
WITH<выражение>
…] [ADDITIVE]
-
множественное
изменение полей
в соответствии
с выражениями.
Пример:
REPLACE zarp with zarp*
1.25 for dolg=”инженер”
Последовательный
поиск
LOCATE
FОR<условие>
[<границы>]
[WHILE<условие>]
- поиск первой
удовлетворяющей
FOR-условию
записи,
При успешном
поиске
указатель
записей устанавливается
на найденную
запись.
CONTINUE
- продолжение
поиска
Пример:
USE KADR
LOCATE FOR stag > 12
DO
WHILE
! EOF() &&
пока не достигнут
конец файла
данных
? FIO
CONTINUE
ENDDO
Перечисленные
команды могут
быть выполнены
путем выбора
из в системном
меню или непосредственным
набором в
Command-окне.
Наряду с другими
командами и
средствами
программирования,
приводимыми
далее, они могут
использоваться
также в текстах
программ.
3. СОЗДАНИЕ
КОМАНДНЫХ
ФАЙЛОВ
Командные
файлы представляют
собой исходные
тексты программ
и имеют тип
.prg.
Они создаются
с помощью встроенного
редактора
FoxPro ,
вызываемого
командой
MODIFY
COMMAND <имя
файла
>
По
команде MODI
COMM (допустимое
сокращение)
без указания
имени по умолчанию
создается
prg-файл
без имени. Присвоить
имя следует
при первом
сохранении
текста программы.
Удобно использовать
комбинацию
клавиш
^W
для сохранения
текста программы.
Для редактирования
ранее созданной
программы
используют
команду
MODI СОММ
<имя>.
Для запуска
программ используется
команда
DO <имя
командного
файла>
Созданная
программа
выполняется
в режиме интерпретации
. При
обнаружении
ошибки выполнение
прерывается
и комментируется
сообщением.
Пример.
Приводится
текст программы,
предназначенной
для отображения
всех записей
БД, содержащих
информацию
о сотрудниках,
получающих
зарплату меньше
200.
SET TALK OFF
SET DATE BRITISH
USE KADR
LOCATE FOR Zarp < 200
DO WHILE
!EOF() &&
пока не достигнут
конец файла
данных
DISPL
CONTINUE
ENDDO
4.Команда
полноэкранного
редактирования
BROWSE
Команда
BROWSE
представляет
собой целую
среду редактирования.
Она имеет более
20 различных
параметров.
Рассмотрим
наиболее часто
используемые
из них.
Формат
команды.
BROWSE
[FIELDS<пoля>] [FОR<условие1>]
[FORMAT] [FREEZE<поле>]
[КЕУ,<выр
1 >[,<выр2>]] [LAST]
[LEDIT
/ REDIT] [LOCK<вырN1>]
[LPARTITION] [NOAPPEND]
[NOCLEAR] [NODELETE]
[NOEDIT/NOMODIFY] [NOLGROD
/ NORGRIG]
[NOLINK] [NOMENU]
[NOOPTIMIZE] [NORMAL]
[NOWAIT] [PARTITION<вырN2>]
[REST] [PREFERENCE<вырC1>]
[TIMEOUT<вырN3>] [ТITLЕ<вырС2>]
[NOOPTIMIZE] [WHEN<
ycловие3>]
[window<окно>] [NOWAIT]
[VALID[F:] [ERROR<вырC3>]
[COLOR
SCHEME<вырN5>
/ COLOR<список
цветовых пар>]
Действие
некоторых опции
команды.
1.
Выбор полей
FIELDS<
список полей>
- перечень
полей (по умолчанию
- все).
Ключи:
:R
- разрешен
только просмотр
поля;
:<выр
N>
- видимый размер
поля;
:У=<выр
L1>
- контроль выхода
из поля;
:F
- проверка
вводимых и
существующих
данных;
:Е=<вырС2>
- выдача собственного
сообщения;
:Р=<вырС2>
- задание формата
отображения
данных по шаблону;
:Н=<вырСЗ>
- указание
собственного
заголовка поля;
:В=<выр1>,<выр2>[:Е]
- указание границ
чисел или дат;
:W=<вырL2>
- контроль входа
в поле.
В список
полей могут
включаться
так называемые
вычисляемые
поля, которые
являются функциями
других полей
или переменных.
2. Отбор
данных
FОR
<условие 1> -
устанавливает
фильтр для
записей; выводятся
только
записи,
удовлетворяющие
<условкю1>;
REST
-
предотвращает
повторный поиск
сначала;
КЕУ<выр1>[,<выр2>]
-
ограничение
действия команды
диапазоном
ключевого
выражения
активного
индексного
файла
З. Разделение
окна
LOCK<вырN1>
BROWSE
-
окно делится
на две части,
где первые
<вырN1>
полей
дублируются
в левой части
окна (переход
^Н);
PARTITION<вырN2>
-
то же, но граница
проходит по
полю <вырN2>
LEDIT/REDIT -
действуют
только в разделенном
окне и задают
форму
представления
данных (формуляр);
LPARTITION -
курсор устанавливается
в левой половине
окна;
NOLINK -
несинхронное
перемещение
видимых записей;
NOLGRID/NORGRID -
удаляет вертикальные
линии разделители
полей.
4.
Контроль
редактирования
записей
VALID<условие2>[ERROR<вырC3>] -
анализирует
условия для
текущей записи;
WHEN<условие3> -
определяет
возможность
доступа к записи;
NOAPPEND -
дополнение
по Ctrl-N
невозможно;
NOEDIT/NOMODIFY -
редактирование
невозможно;
NODELETE -
редактирование
невозможно;
FREEZE<поле> -
единственное
доступное поле.
5.
Конфигурирование
BROWSE-окна
LAST -
сохранение
конфигурации;
PREFERENCE
FORMAT -
использование
форматного
файла;
NOCLEAR -
после выхода
окно не удаляется;
NOMENU -
подавляет вывод
системного
меню;
TIMEOUT -
время работы
с окном;
TITLE<вырC3> -
заголовок окна;
WINDOW -
позволяет
открыть другое
окно.
Пример:
Set
talk off
set
date British
use
kadr.dbf
browse
;
title
'^t-удаление
^n-добавление
^w-выход';
fields
;
fio
:h='ФИО'
:20, ;
dolg
:h='должность',
;
zarp
:h='зарплата '
,;
birth
:h='день рождения'
,;
pol
:h='рол'
,;
adress
:h='адрес'
,;
godzarp
= zarp*12 :h='год.зарплата'
:p='#####,##'
pack
close
all
5.КОМАНДЫ
ВВОДА-ВЫВОДА
Средства
неформатированного
ввода/вывода
Команда
вывода ? / ??
? /
?? [<выр1>]
[АТ<выр N>][,<выр
2>...]
Команда
?
выводит выражения
[<выр1>] …[,<вырN>]
с новой строки,
??
- в текущей
строке; AT -номер
столбца в строке
вывода.
Команда
вывода TEXT
TEXT
<текст
>
ENDTEXT
Эта
команда удобна
для вывода
больших объемов
текста, текст
выводится в
том виде, как
он выглядит
в команде.
Команды
вывода \ и \\
\
<строка текста>
- вывод
строки и перевод
курсора в начало
следующей
строки.
\\ <строка
текста>
-
вывод без перевода
курсора.
Другие
команды ввода-вывода
INPUT <сообщение>
ТО <переменная>
ACCEPT <сообщение>
ТО <символьная
переменная>
WAIT [<сообщение>]
[ТО<символьная
переменная>]
[TIMEOUT<вырN>]
[WINDOW] [CLEAR]
Подробные
комментарии
и примеры можно
найти в соответствующем
разделе HELP среды
FoxPro.
СРЕДСТВА
ФОРМАТНОГО
ВВОДА/ВЫВОДА
Команда
@ ... SAY ... GET
Формат
команды
:
@
[SAY<вырl>
[PICTURE<вырCl>]
[COLOR SCHEME<вырN1>
/
COLOR<список
цветовых пар>]]
[GET
[PICTURE<вырC2>]
[DEFAULT<выр2>]
[ENABLE / DISABLE]
[MESSAGE<вырC3>]
[[OPEN] WINDOW
]
[RANGE [<выр3>][<выр4>]]
[SIZE<вырN2>,<вырN3>]
[VALID<вырLl>/<вырN4>[ERROR<вырC4>]]
[WHEN<вырL2>]
[COLOR
SCHEME<вырN5>/COLOR<список
цветовых
пар>]]
Здесь
Y,X -
пара чисел или
переменных,
определяющих
номер строки
и столбца. Команда
@ без других
параметров
устанавливает
курсор в заданную
позицию и очищает
строку
Y вправо
от
X.
Параметры
команды
@ Y,X SAY<вырl>
-
выдает с заданной
позиции <выражение>
любого
типа
(поля БД, переменные
и пр.); в сложном
выражении
элементы соединяются
знаком "+";
@ Y,X GET
<переменная/поле>
-
с заданной
позиции выдается
переменная
или
поле записи
с возможностью
редактирования
(переменная
уже должна
существовать);
DEFAULT <выр2>
- действует
только при
работе с переменными;
задает
выражение по
умолчанию и
предъявляет
к
редактированию;
ENABLE/DISABLE
-
разрешает/запрещает
доступ к
get-полю;
MESSAGE <вырСЗ>
-
для данного
поля выдает
пояснение в
строке
вывода
сообщений;
RANGE<выр3><выр4>
- контролирует
диапазон значений;
SIZE<вырN3><вырN4>
- определяет
область, отводимую
под
редактирование;
VALID... -
логический
контроль ввода;
WHEN<вырL2>
- вход
в редактируемое
поле допускается
только при
истинности
выражения;
[OPEN]
WINDOW
- используется
с
memo-полями;
COLOR SCHEME
<вырN>/COLOR<список
цветовых пар>-
определяет
раскраску
полей ввода-вывода.
Возможно
соединение
фраз SAY
и GET в одной команде.
При этом GET осуществляет
предъявление
и возможность
редактирования.
После команды
или группы
команд GET должна
обязательно
следовать
команда READ. Эта
команда приостанавливает
выполнение
программы до
заполнения
всех GET -полей
и присваивает
соответствующие
значения переменным
или полям базы
данных.
Примеры:
1) В 10
строке, 15 колонке
вывести текст
'ЗАРПЛАТА
- ', в этой же строке
обеспечить
поле ввода для
переменной
и контроль за
правильностью
ввода (введенное
значение должно
находится в
интервале
[100.00,1778.00] ).
X
= 100.00
@
10,15
SAY 'ЗАРПЛАТА
- '
GET X RANGE
100.00,1778.00
READ
2) Обеспечить
ввод значений
зарплат только
кратным 10
@
10,15
SAY 'ЗАРПЛАТА
- '
GET X VALID MOD(X/10) = 0
READ
Шаблон
PICTURE разрешает
ввод только
определенных
символов данных:
А
- ввод
только букв;
L
- ввод
только логических
данных T / F;
N
- ввод
только букв
и цифр;
Х
- ввод
любых символов;
Y
- ввод
только логических
данных Y/N;
9 -
ввод только
цифр в символьных
данных, цифр
и знаков
"+","-" -
в числовых
данных;
#
-
ввод цифр, пробелов
и знаков
"+","-";
! -
преобразует
строчные буквы
в прописные;
* -
перед числами;
. -
задает позицию
десятичной
точки.
Пример:
@
10,8
SAY 'ЗАРПЛАТА
- '
PICTURE ###.##'
3)
Пример создания
форматного
файла CADR.FMT, для
редактирования
данных в отношении
CADR.DBF. Вид экранной
формы:
ДАННЫЕ
О СОТРУДНИКЕ
Текст
файла CARD.FMT
@
4, 30 SAY 'ДАННЫЕ
О СОТРУДНИКЕ'
@ 5, 9 ТО
11, 70 DOUBLE
@
5, 41 SAY
‘Сегодня
'+DТОС(DАТЕ( )) + ' '
@
6, 18 SAY
'Фамилия, инициалы:
' GET fio
@
7, 18 SAY
‘Табельный
номер: ' GET tab
@
7, 40 SAY
Должность: '
GET Dolg
@ 10, 12 SAY
'Выход с сохранением
изменений
- ^End, без
- Esc'
Созданный
форматный файл
может быть
использован
в программе
с помощью команды
SET FORMAT ТО <имя файла>.
Фрагмент
программы:
SET FORMAT TO CARD.FMT
CHANGE
SET FORMAT TO
6.СРЕДСТВА
ПРОГРАММИРОВАНИЯ
Приведенные
выше команды
относятся к
языковым средствам
определения
данных и манипулирования
данными. Наряду
с ними язык
программирования
среды FoxPro обладает
присущими
языкам высокого
уровня возможностями,
такими как
использование
переменных
и массивов,
организация
ветвлений и
циклов, создание
процедур и
другими.
ПЕРЕМЕННЫЕ
В FoxPro
разрешается
иметь переменные
тех же типов,
что и поля таблиц
БД (кроме мемо).
Тип переменной
определяется
типом последнего
присваиваемого
ей выражения.
Команда
присваивания:
<переменная>
= <выражение>
или
STORE <выражение>
ТО <имена переменных:».
Примеры:
a = b^2 + 2*c – 3*a
STORE 0 ТО a,b,c –
присвоение
нулевого значения
переменным
a,b,c
МАССИВЫ
ПЕРЕМЕННЫХ
Разрешена
работа с одномерными
и двумерными
массивами
переменных.
Описание
массивов выполняет
команда:
DECLARE
/ DIMENSION
<
переменная
>(<выpNl>[,<выpN2>])
.
Пример:
DIMENSION
а(3,4),
b(4)
Максимальное
количество
и максимальная
размерность
массивов
3600. Значения
элементов
массива формируются
присваиванием
им значений
выражений либо
в результате
обмена с БД
посредством
следующих
команд:
Команды
управления
Команда
IF : Команда
DO CASE:
IF
<условие>
DO CASE
<команды>
CASE <условие1>
[ELSE
<команды>
<команды>]
CASE <условие2>
ENDIF
<команды>
[OTHERWIZE
<команды>]
ENDCASE
Кроме
этих команд
имеется очень
полезная функция
IIF ( )
(см. приложение)
Примеры:
1. Найти
максимальное
значение из
двух величин.
CLEAR
INPUT
“ Введите
X” TO X
INPUT
“ Введите
Y” TO Y
IF X > Y
max = X
ELSE
max = Y
ENDIF
? “ Максимальное
значение равно:
”, max
WAIT
2 .
Найти значение
функции Y.
CLEAR
INPUT
“Введите
X” TO X
DO CASE
CASE
X < 0
Y = -2*X^2
+5*X
CASE X>=0 AND X <
5
Y = 15 –
2*X^2
CASE X>=5
Y =
ABS(12*X – SIN(12))
ENDCASE
? "Y = " ,Y
CLOSE ALL
ОРГАНИЗАЦИЯ
ЦИКЛОВ
Цикл
с условием
DO WHILE <условие>
Выход из цикла
- EXIT
<команды>
Возврат к
началу цикла
- LOOP
ENDDO
Цикл
вида DO
WHILE .T. <команды>
ENDDO
применяется
как операторные
скобки.
Цикл
с параметром
FOR <переменная>
= <вырN1> ТО <вырN2>
[STEP <вырN3> ]
<команды>
ENDFOR
ЦИКЛ
СКАНИРОВАНИЯ
SCAN [<границы>]
[FOR<условие>]
[WHILE<условие>]
<команды> ENDSCAN
- применяется
для перемещения
в базе данных
и выполнения
команд
для
каждой записи,
отвечающей
условиям.
Примеры:
Приводятся
фрагменты
программ поиска
в БД Kadr всех записей
с фамилией
на букву 'И'.
1)
USE Kadr
2)
USE Kadr
LOCATE
FOR fio = 'И'
SCAN FOR fio= 'И'
DO
WHILE
!
EOF( ) <команды>
<команды>
ENDSCAN
CONTINUE
ENDDO
ПРОЦЕДУРЫ
В FoxPro
используются
процедуры как
внутренние
так и внешние,
а также процедуры-функции.
Внутренняя
процедура
должна начинаться
командой PROCEDURE
<имя> и заканчиваться
командой RETURN.
Внешние процедуры
могут быть
объединены
в
prg-файл
и подключаются
командой SET
PROCEDURE TO <имя файла>.
Обращение
к процедуре
:
DO <имя
процедуры или
файла> [WITH <список
параметров>]
[IN FILE <имя>],
где <список
параметров>
- список фактических
параметров.
Все входные
фактические
параметры перед
вызовом процедуры
должны быть
определены.
Формальные
параметры
описываются
в процедуре
командой
PARAMETERS<список>.
Процедура-функция
начинается
командой FUNCTION
<имя функции>,
вырабатывает
в результате
своей работы
единственное
значение и
может непосредственно
использоваться
в других командах.
Процедура-функция
завершается
командой
RETURN
<выражение>
, где выражение
есть результат
функции.
Процедуры
В FoxPro
используются
процедуры как
внутренние
так и внешние,
а также процедуры
- функции.
Внутренняя
процедура
должна начинаться
командой PROCEDURE
<имя>
и заканчиваться
командой RETURN.
Внешние процедуры
могут быть
объединены
в
prg-файл
и подключаются
командой SET
PROCEDURE
TO
<имя
файла>. Обращение
к процедуре
:
DO
<имя
процедуры или
файла> [WITH
<список параметров>]
[IN
FILE
<имя>]
Параметры
описываются
в процедуре
командой
PARAMETERS<список>.
Процедура-функция
начинается
командой FUNCTION<имя
функции>, вырабатывает
в результате
единственное
значение и
может непосредственно
использоваться
в других командах.
Завершается
командой
RETURN<выражение>,
где выражение
есть результат
функции.
Параметры
процедур и
функций могут
изменяться
внутри них, но
для передачи
этих изменений
в вызывающую
программу
требуется
использовать
команду
Использование
процедур рассмотрим
далее в разделе
организации
меню.
ЗАДАНИЕ
1.
Приведенную
выше Программу
1, представьте
в виде ряда
процедур:
р21
- просмотр
данных по штатному
расписанию
(отношение
STATE)
р22
- поиск
данных по штатному
расписанию
р31
- просмотр
данных по списку
сотрудников
(отношение
SOTR)
р32
- поиск
данных по списку
сотрудников
р4
- совместный
просмотр двух
таблиц (состояние)
info
- заставка с
краткой информацией
(дополнительная
процедура).
Пример
1.
***********
поиск в таблице
Kadr
***********
PROCEDURE p21
SELECT a
CLEAR
с = 0
@
5, 10 SAY
'Введите табельный
номер: ' GET
с PICTURE
'###'
READ
@
6, 2 SAY
'Результат
поиска '
LOCATE ALL FOR tab = c
DO WHILE ! EOF( )
?
'должность
- ', dolg,
' оклад - ', zarp
CONTINUE
ENDDO
WAIT
'Продолжение
–
Enter ' WINDOW
CLEAR
RETURN
Пример
2.
*********
заставка
**************
PROCEDURE info
CLEAR
@
8, 15 ТО
20, 60 DOUBLE
&&
изображение
рамки
@
9, 25 SAY
'ШТАТНОЕ РАСПИСАНИЕ'
&&
вывод текста
@
12, 20 SAY
'Модель информационной
системы'
WAIT
'Продолжение
–
Enter ' WINDOW &&
пауза
CLEAR
RETURN
7.ОРГАНИЗАЦИЯ
МЕНЮ
Меню
являются основной
формой поддержания
диалога в
информационных
системах. Среда
FoxPro
обладает большим
набором средств
организации
световых и
клавишных меню.
Выделим две
основных технологии
построения
меню, которые
порождают «меню
- программы»
и «меню - объекты».
Меню-программа
является частью
программы,
где оно создается,
используется
и удаляется.
При этом вырабатываются
числовые переменные,
фиксирующие
выбор из меню,
которые анализируются
командами DO
CASE,
требуют использования
циклов DO
WHILE
и т.д. Рассмотрим
два типа таких
меню. Будем
использовать
приведенную
выше программу,
которую
предварительно
разобьем на
ряд процедур.
LIGHTBAR
- меню
строится
с использованием
команд:
@ Y,
X
PROMPT
<выражение>
[MESSAGE<выpaжeниe>]
- выдает
в
позиции
Y,X
строку меню
и дополнительное
сообщение,
если
указано MESSAGE,
в строке заданной
командой
SET
MESSAGE .
MENU
TO
<переменная>
- запоминает
цифру, соответствующую
выбору.
PULLDOWN
- меню
(двухуровневое
меню) использует
команды
MENU
BAR
<массив>,
-
определяет
пункты горизонтального
BAR-меню,
задавая их как
элементы первого
столбца
двумерного
<массива
>, во
второй столбец
заносятся
сообщения,
N-
общее число
пунктов меню.
MENU
<выр1>,
<массив>, <выр2>
- определяет
содержание
вспомогательного
вертикального
меню (POPUP-меню)
READ
MENU
BAR
TO
<перем1>,
<перем2>
- активирует
меню.
Пример
1) **********
LIGHTBAR
МЕНЮ *******
SET TALK OFF
SET DATE BRITISH
USE KADR.DBF
DO WHILE .T.
CLEAR
P=1
@5,20 PROMPT
“Редактирование
данных ”
@7,20 PROMPT
“Поиск данных
”
@9,20 PROMPT
“Средняя заработная
плата ”
@11,20 PROMPT
“Конец работы
”
MENU
TO
P
DO
CASE
CASE
P=1
BROWSE
CASE
P=2
CLEAR
F=SPACE(20)
@
10,15 SAY “ Введите
ФИО
“ GET F
READ
LOCATE FOR
FIO = F
IF !FOUND( )
@
12,15 SAY
“Запись нe
найдена”
WAIT
EXIT
ELSE
DISPL
ENDIF
CASE P=3
CALCULATE
SUM(SRZAR) TO SUMM
SUMM =
SUMM/RECCOUNT( )
@ 12,15 SAY
STR(SUMM)
WAIT
CASE P=4
EXIT
ENDDO
CLOSE ALL
2)
********** PULLDOWN
МЕНЮ *******
SET
MESSAGE ТО
15
DIMENSION
a(5, 3) &&
задание
массива,
содержащего
а(1,
1) = 'Информация'
&&
тексты пунктов
горизонтального
меню
а(2, 1) = 'Штатное
расписание'
а(3, 1) = 'Список
сотрудников'
а(4, 1)
= 'Состояние'
а(5, 1) = 'Выход'
а(1, 2) = '
' &&
тексты сообщений
а(2, 2) =
'Работа с таблицей
должностей'
а(3, 2) =
'Работа с данными
о сотрудниках'
а(4, 2) =
'Совместный
просмотр штатного
расписания
и списка сотрудников'
а(5, 2) = '3авершение
работы'
DIMENSION
b(2)
&& задание
массивов для
вложенных меню
b(1)
= 'просмотр'
b(2)
= 'поиск'
DIMENSION
c(2)
с(1) = 'просмотр'
с(2) = 'поиск'
**
образ меню**
&&
определение
меню
MENU
BAR a, 5
MENU
2, b, 2
MENU
3, c, 2
g
= 1 &&
номер пункта
горизонтального
меню
v
= 1 &&
номер пункта
вложенного
меню
DO
WHILE .T.
CLEAR
READ
MENU BAR TO g, v &&
активация
меню
DO
CASE
&&
обработка
выбора
CASE g = 1
DO info
CASE g = 2 .AND. v = 1
DO p21
CASE g = 2 .AND. v = 2
DO p22
CASE
g = 3 .AND. v = 1
DO p31
CASE g = 3 .AND. v = 2
DO p32
CASE g = 4
DO p4
CASE g = 5
CANCEL
ENDCASE
ENDDO
Меню
- объекты являются
независимыми
объектами и
могут вызываться
из любого места
прикладной
системы. Обработка
выбора из меню
не требует
введения переменных
и организации
циклов, дает
возможность
создавать меню
из имен файлов
и обладает
другими преимуществами.
Рассмотрим
один из вариантов
меню такого
типа.
Вертикальное
POPUP
- меню
создается
с помощью следующих
команд.
DEFINE
РОРUР
<имя> -
определение
меню,
ON
SELECTION POPUP
-
реакция
на
выбор,
ACTIVATE
POPUP -
активация
меню.
3)
**********
POPUP
- меню
****************
CLEAR
DEFINE
POPUP
mmenu
MARGIN
&&
определение
главного меню
DEFINE
BAR
1 OF
mmenu
PROMPT
'Информация'
&& определение
пунктов
DEFINE
BAR 2
OF mmenu PROMPT 'Штатное
расписание'
DEFINE
BAR 3
OF mmenu PROMPT 'Список
сотрудников'
DEFINE
BAR 4
OF mmenu PROMPT 'Состояние'
DEFINE
BAR 5
OF mmenu PROMPT 'Выход'
ON
SELECTION BAR
5
OF mmenu DEACTIVATE POPUP &&
обработка
выбора
ON
SELECTION BAR
1
OF mmenu DO info
ON
SELECTION BAR
4
OF mmenu DO p4
ON
BAR 2
OF mmenu ACTIVATE POPUP ww
&&
выбор
вложенных
меню
ON
BAR 3
OF mmenu ACTIVATE POPUP ss
DEFINE
POPUP
ww
&&
определение
вложенных меню
DEFINE
BAR 1
OF ww PROMPT 'Просмотр'
DEFINE
BAR 2
OF ww PROMPT 'Поиск'
ON
SELECTION BAR
1
OF ww DO p21
ON
SELECTION BAR
2
OF ww DO p22
ON
SELECTION POPUP ww DO ww
DEFINE
POPUP ss
DEFINE
BAR 1 OF ss PROMPT 'Просмотр'
DEFINE
BAR 2
OF ss PROMPT 'Поиск'
ON
SELECTION BAR
1
OF ss DO p21
ON
SELECTION BAR
2
OF ss DO
p22
ON
SELECTION POPUP ss DO ss
ACTIVATE
POPUP mmenu
&&
активация
меню
ЗАДАНИЕ
Программу
1,
представленную
в виде ряда
процедур, дополните
организацией
МЕНЮ одного
из предложенных
типов. В приложении
дан полный
текст программы
с использованием
POPUP-меню для
выбора процедур.
8.ИЗОБРАЗИТЕЛЬНЫЕ
СРЕДСТВА
Из большого
списка возможностей
рассмотрим
лишь некоторые
1.
Построение
рамки
@
ТО [DOUBLE
/
PANEL<окантовка>
COLOR <список
цветовых пар>
/ COLOR SCHEME
В указанных
координатах
строится рамка,
ограниченная
двойной линией
(DOUBLE), с сплошным
заполнением
(PANEL) и желаемого
цвета.
2.
Управление
цветом
Обозначения
цветов:
черный
N
|
желтый
GR+
|
бирюзовый
BG |
коричневый
GR
|
белый
W
|
зеленый
G
|
лиловый
RB
|
красный |
Команда
SET COLOR TO [<текст>[,<доп>]
[,<рамка>] [,<фон>]]
-
устанавливает
цвета для основного
текста, для
вывода сообщений,
рамки
за пределами
используемой
области и фона
для основных
и
дополнительных
сообщений. Цвет
текста и цвет
фона под ним
образуют
цветовую
пару (например,
W/B или R+/ GR).
Цветовую
схему
можно определить
в диалоге и
сохранить в
специальном
файле и командой
SET COLOR OF SCHEME TO
[<список nap>]/[SCHEME].
Можно задать
мерцание изображения:
SET BLINK ON/OFF.
10. РАБОТА
С НЕСКОЛЬКИМИ
БАЗАМИ ДАННЫХ
В FoxPro
допускается
работа сразу
со многими
базами данных,
и при этом можно
устанавливать
между ними
разнообразные
связи, которые
позволяют
синхронно
перемещать
указатели
записей в таких
связанных
базах. База, в
которой указатель
движется произвольно,
считается
старшей, а база
(базы), в которой
указатель
следует за
указателем
старшей базы,
- младший. В старшей
и младших базах
должны быть
совпадающие
поля. Допускается
сцепление одной
базы с несколькими
другими. Младшие
базы, в свою
очередь, могут
быть связаны
с базами следующего
уровня и т.д.
Возможно
установление
двух типов
связей между
записями двух
сцепленных
баз данных.
Связь типа
одна_запись-к-одной
перемещает
указатель в
младшей базе
таким образом,
что он всегда
устанавливается
на первую встреченную
им запись с
совпадающим
признаком.
Остальные такие
записи (если
есть) остаются
«не замеченными».
Эта связь
устанавливается
командой SET
RELATION.
Связь типа
одна_запись-ко-многим
позволяет
обратиться
ко всем записям
младшей базы
с совпадающим
признаком
(команды SET
RELATION
и SET
SKIP
TO).
ПОНЯТИЕ
О РАБОЧИХ ОБЛАСТЯХ
В FoxPro
обрабатывать
сразу несколько
файлов баз
данных (до 25).
Каждый такой
файл типа DBF
и все вспомогательные
файлы (например,
индексные)
открываются
в своей отдельной
рабочей области.
Переход из
области в область
осуществляется
командой:
SELECT
<рабочая область
/ псевдоним>
Первые
десять рабочих
областей
идентифицируются
номерами 1-10 или
буквами A
– J.
Области с 11-й
по 25-ю обозначаются
номерами или
буквенно-цифровыми
именами W11
– W25.
Если в качестве
параметра
указать цифру
0, произойдет
переход в первую
свободную
рабочую область.
Кроме того,
рабочие области
и файлы базы
данных могут
идентифицироваться
так называемыми
псевдонимами.
Псевдонимом
области по
умолчанию
является само
имя находящегося
в ней файла
базы данных.
Область,
в которой в
данный момент
работает
пользователь,
называется
активной рабочей
областью, и в
ней можно работать
с находящейся
здесь базой
данных. В одной
команде можно
работать с
полями других
баз (открытых
в других областях).
В этом случае
имя поля из
неактивной
базы – составное:
имени поля
предшествует
имя рабочей
области или
псевдоним,
разделенные
знаком «точка»:
<
рабочая область
/ псевдоним
> .<имя
поля>
Рабочая
область в составном
имени указывается
любым разрешенным
образом (буквой,
именем ее базы
данных, псевдонимом),
но не номером.
Номер может
быть указан
в команде SELECT
и в функциях.
При
входе в СУБД
активизируется
область 1 (или
А), и, если пользователь
работает только
с одной базой,
заботиться
об открытии
областей не
нужно.
В
команде USE
можно одновременно
указывать и
область, в которой
открывается
база. Пример:
USE
delivery IN
b.
Однако
переход в указанную
область с помощью
такой команды
не происходит
(для перехода
необходимо
воспользоваться
командой SELECT).
ПРИМЕР
РАБОТЫ С НЕСКОЛЬКИМИ
БАЗАМИ ДАННЫХ
В
НЕСКОЛЬКИХ
ОБЛАСТЯХ
В
приведенной
ниже программе
приводится
пример работы
с двумя базами
данных, базой
Поставщик
(Delivery)
и базой Поставка
(Supply).
Структура баз
и назначение
полей приводится
в Приложении
№ 3. Данная программа
позволяет по
введенному
коду товара
найти всех
поставщиков,
поставляющих
данный товар.
CLEAR
SET
TALK OFF
SET
EXACT OFF
SELE
A
USE
Supply
KOD=0
@
1,2 SAY 'Введите
код
товара'
GET KOD PICTURE'#####'
READ
LOCATE
FOR indgoods = kod
IF
!FOUND()
WAIT
'Такого кода
нет'
RETURN
ENDIF
ind
=
inddel
SELE
B
USE
Delivery
LOCATE
FOR inddel=ind
IF
!FOUND ()
WAIT
'Такого поставщика
нет'
RETURN
ENDIF
DISPL
namedel, count, tel, A.namgoods, A.pricegds
CLOSE
ALL
Связь
вида одна_запись-к-одной
Команда
SET
RELATION TO <ключ>
INTO <область>
[,<ключ
> INTO <
область
>…] [ADDITIVE]
связывает
указатель
записей в активной
рабочей области
с указателем
записей из
других рабочих
областей, которых
указаны после
слова INTO,
по заданному
общему полю
(ключу). Единственное
условие
– файл базы
данных, с которым
устанавливается
связь, должен
быть проиндексирован
по этому полю.
Пример
Связать
базы данных
SUPPLY.DBF
и DELIVERY.DBF
по полю INDDEL.
По коду поставщика
вывести список
поставщиков
и их реквизиты.
SET
TALK OFF
CLEAR
SELE
A
IF
FILE ('Inddelivery.ind')
USE
Delivery INDEX Inddelivery
ELSE
USE
delivery
INDEX
ON inddel TO Inddelivery
ENDIF
SELE
B
USE
Supply
SET
RELATION TO inddel INTO A
DO
WHILE .T.
kod=0
CLEAR
@
12,23 TO 14,50 DOUBLE
@
13,25 SAY 'Введите
код товара'
GET kod PICTURE '#####'
READ
LOCATE
FOR indgoods = kod
IF
!FOUND()
WAIT
'Такого товара
нет'
LOOP
ENDIF
name=namgoods
IF
kod <>0
SET
FILTER TO indgoods = kod
BROWSE
;
TITLE
' Список поставщиков,
поставляющих
' + name
;
FIELDS
;
INDDEL
:H
= ' Код поставщика
' ,;
A.NAMEDEL :H
= 'Название
поставщика
' ,;
A.ADRDEL :H
= 'Адрес ' ,;
A.TEL :H
= 'Телефон '
SET
FILTER TO
ENDIF
IF
LASTKEY()=27
EXIT
ENDIF
ENDDO
PACK
CLOSE
ALL
В этой
программе
выводятся
записи, в которых
для каждого
кода поставщика
inddel
из текущей базы
данных Supply.dbf
(открытой в
области В) выводятся
поля A.namedel
(Название
поставщика),
A.adrdel
(Адрес) и A.TEL
(Телефон) из
базы данных
Delivery.dbf
(открытой в
области A).
В FoxPro
имеется возможность
устанавливать
связи с несколькими
базами одновременно.
Если со старшим
файлом, который
уже связан с
другим, необходимо
связать некоторый
третий (четвертый
и т.д.), следует
во все последующие
команды SET
RELATION
включать
слово ADDITIVE,
которое обеспечит
сохранение
связей, установленных
ранее.
Связь
между всеми
файлами разрывается
командой SET
RELATION
TO
без
параметров.
Связь с отдельным
файлом в заданной
<области> - командой
SET
RELATION
OF
INTO
<область>.
Связь
вида одна_запись-ко-многим
Команда
SET
SKIP
TO
[< область1
> [,<
область2 >]
… ]
устанавливает
связь типа
одна_запись-ко-многим
между двумя
или несколькими
базами данных.
С
каждой записью
из старшей базы
могут быть
сцеплены несколько
записей из
младшей базы.
Связь может
быть установлена
сразу с несколькими
младшими базами,
находящимися
в указанных
<областях>.
Прежде
чем использовать
команду SET
SKIP
TO,
необходимо
выполнить
начальное
сцепление вида
одна_запись-к-одной
командой SET
RELATION.
Удаление связи
одна_запись-ко-многим
осуществляется
командой SET
SKIP
TO
без параметров.
Пример
Установить
связь между
тремя базами
данных. В программе
используется
третья
база Товаров
(Goods.dbf),
получаемая
из БД Supply.dbf
SET
TALK OFF
IF
FILE ('Goods.dbf')
ERASE
Goods.dbf
ENDIF
IF
FILE ('Indnum.idx')
ERASE
Indnum.idx
ENDIF
SELE
A
USE
Supply
IF FILE ('Indg.idx')
SET
INDEX TO Indg.idx
ELSE
INDEX ON indgoods TO Indg UNIQUE
ENDIF
COPY TO Goods FIELDS indgoods,
namgoods, measure
SELE C
USE Smdeliv
IF FILE ('Indexdel.idx')
SET INDEX TO Indexdel.idx
ELSE
INDEX ON indgoods TO Indexdel
UNIQUE
ENDIF
SELECT SUPPLY
SET RELATION TO inddel INTO
Delivery ADDITIVE
SELE B
USE Goods
INDEX ON namgoods TO Indnum
SET RELATION TO indgoods INTO
Supply ADDITIVE
SET SKIP TO Supply
BROWSE TITLE "Товары"
;
FIELDS ;
Goods.Namgoods :H = "Имя
Товара" ,;
Delivery.Namdel :H = "Имя
Поставщика"
,;
Delivery.Adrdel :H = "Имя
Поставщика"
,;
Delivery.Count :H =
"Счет", ;
Goods.Measure :H =
"Ед.Измерения"
,;
Supply.Pricegds
:H
= "Цена Единицы"
,;
Supply.Quant
:H
= "Кол-Во Единиц"
,;
Totalamount=Supply.Quant *
Supply.Pricegds :H = "Общая
Сумма"
CLOSE
ALL
11. РАБОТА
С ОКНАМИ
Использование
окон
- очень
удобное и эффектное
средство создания
пользовательского
интерфейса
в прикладной
программе.
Определение
окна
DEFINE
WINDOW <имя
окна>
FROM, TO
,
<Х2>
[FOOTER<выр>]
[TITLE<выр>]
[SYSTEM/DOUBLE/PANEL/NONE]
[CLOSE][FLOAT][GROW][SHADOW][ZOOM][FILL<выр>][MINIMIZE]
FOOTER, TITLE
-
нижний и верхний
заголовки;
форма
границ окна:
SYSTEM -
стандартная,
DOUBLE -
двойная линия,
PANEL
- сплошная полоса,
NONE -
не определяется,
CLOSE -
допускает
закрытие окна
мышью,
FLOAT -
перемещение
с помощью ^F7 или
мышью,
GROW -
изменение
размера (^F8 или
мышью),
ZOOM /
MINIMIZE -
распахивание
и свертывание
окна;
SHADOW -
теневая рамка,
FILL -
символ заполнения
окна.
Активация
уже определенного
окна
ACTIVATE
WINDOW [[<окно1>][,<
окно2>]]
[,...]] ALL [BOTTOM
/
TOP]]
Здесь
указаны имена
открываемых
или всех (ALL) окон.
BOTTOM / TOP - размещение
нового окна
под/перед уже
имеющимся.
Удаление
с экрана
DEACTIVATE WINDOW
<окно1>[,<окно2>][,...]
/ALL
Удаление
с экрана и из
памяти
CLEAR WINDOW -
Удаление с
экрана и из
памяти ВСЕХ
окон
RELEASE WINDOW
<окна>
- Перечисленных
окон.
Восстановление
окна
RESTORE WINDOW
Сохранение
в файле
SAVE WINDOW <окна>
/ALL TO <файл>
12.ПРИЛОЖЕНИЯ
12.1.
СТАНДАРТНЫЕ
ФУНКЦИИ FOXPRO
Арифметические
функции
ABS(<вырN>) -
абсолютное
значение числа
<вырN>
BETWEEN(<выр>,<выр1
>,<выр2>) -
истинно (.Т.), если
<выр1>
<выр>
<выр2>,
иначе ложно
(.F.) (для
чисел,
строк,
дат)
CEILING(<вырN>)
-
округление
числа<вырN>с
избытком
FLOOR(<вырN>) -
округление
числа <вырN> с
недостатком
INТ(<вырN>)
-
целая часть
числа <вырN>
МАХ(<выр>,<выр1>[,<выр2>...]) -
максимальное
значение из
списка
аргументов
(числа, строки,
даты)
MIN<выр>,<выр1>[,<выр2>...])
-
минимальное
значение из
списка
аргументов
MOD(<вырN1
>,<вырN2>) -
целочисленный
остаток от
деления
<вырN1
> на
<вырN2>
ROUND(<вырN1
>,<вырN2>) -
округление
числа <вырN1>
до <вырN2>
знаков
после запятой
RAND(<вырN>])
-
псевдослучайное
число в диапазоне
0...1
SIGN(<вырN>) -
знак числа
<вырN>
Степенные,
тригонометрические
и другие функции
ЕХР(<вырN>) -
экспонента
<выpN>
LOG(<вырN>) -
натуральный
логарифм <вырN>
LOG10(<вырN>) -
десятичный
логарифм <вырN>
SQRT(<вырN>) -
квадратный
корень числа
<вырN>
SIN(<вырN>) -
синус <вырN> от
угла в радианах
COS(<вырN>) -
косинус <вырN>
TAN(<вырN>) -
тангенс <вырN>
ASIN(<вырN>) -
арксинус <вырN>
(результат в
радианах)
ATAN(<вырN>) -
арктангенс
<вырN>
PI ( ) -
число
DTOR(<вырN>) -
преобразование
градусной меры
угла в
радианы
RTOD(<вырN>) -
преобразование
радианной меры
угла в
градусы
Строковые
функции
<вырС1>$<вырС2> -
вхождение
<вырС1> в <вырС2>
(результат
.Т. или .F.)
AT /
ATC(<вырC1>,<вырC2>[,<вырN>)
-
поиск слева
направо в строке
<вырС2>
позиции вхождения
подстроки
<вырС1>,
начиная с
<вырN>
позиции строки
<вырС2>
RАТ(<вырС1>,<вырС2>[,<вырN>) -
то же справа
налево
INLIST(<выp1>,<выp2>[,<выp2>…]) -
вхождение <выр>
в последующий
список
(результат .Т.
или .F.)
LEN(<вырC>)
-
длина строки
<вырС>
LIKE(<вырC
1 >,<вырС2>) -
вхождение
<вырС1> в <вырС2>
(результат
.Т. или .F.) с
использованием
символов маски
* и ?
OCCURS(<вырC1>,<вырС2>)
-
число вхождений
<вырС1>в<вырС2>
LEFT(<вырC,<вырN>) -
вырезка слева
из строки <вырC>
символов
в колич. <вырN>
RIGHT(<выpC,<выpN>)
-
то же справа
SUBSTR(<вырС>,<нач.поз.>,[<число
символов>]) -
вырезка из
строки
<вырС1>
подстроки
символов от
<нач.поз.>
в
количестве
<число
символов>
LTRIM(<вырC>)
-
удаление начальных
пробелов
TRIM /
RTRM(<вырC>) -
удаление завершающих
пробелов
ALLTRIM(<вырC>) -
удаление начальных
и завершающих
пробелов
REPLICATE(<выpC>,<выpN>)
-
повтор <вырN>
раз строки
<вырC>
SPACE(<вырN>) -
формирование
строки пробелов
длины
<вырN>
Функции
преобразования
АSС
(<вырC>) -
выдает ASCII код
первого символа
CHR
(<вырN>) -
преобразует
число в символ
в
соответствии
с кодом
STR
(<выpN>,[,[<дec.знaки>]])
-
преобразует
число <вырN> в
строку
длиной
<длина> с указанным
числом
<дес.знаки>
VAL
(<вырС>) -
преобразует
символьную
запись числа
в число
Функции
обработки
мемо-полей
ATLINE(<вырc>,<мемо
поле>) -
первое вхождение
строки <вырC>
в <мемо
поле>
ATCLINE
(<вырC>,<мемо
поле>) -
то же без различения
строчных и
прописных
букв
RATLINE(<вырC>,<
мемо поле >) -
последнее
вхождение
строки <вырС>
в <мемо
поле>
MLINE(<мемо
поле >,<вырN>) -
возвращает
строку <вырN>
из
<мемо
поля>
MEMLINES(<мемо
поле>) -
число строк
в мемо поле
Функции
работы с датами
СТОD(<вырC>) -
преобразование
даты из строки
символов
в формат даты
DATE( ) -
системная дата
DAY(<вырD>)
-
число месяца
из даты
DMY(<вырD>) -
представление
даты в виде
ДД
МЕСЯЦ ГГ (или
ГГГТ)
DOW
(<вырD>) -
номер дня недели
DTOC
(<вырD>) -
преобразование
выражения типа
даты
в строку
символов
GOMONTH(<вырD>,<вырN>) -возвращает
дату, которая
отстоит от
<вырD>
на ±<вырN> месяцев
MONTH(<вырD>)
-
числовое значение
номера месяца
по
дате
YEAR(<вырD>) -
числовое значение
года по дате
Функция
анализа условий
BOF(<условие>,<выр1>,<выр2>) -
выдает значение<выр1>,
если условие
истинно,
и <выр2> если
ложно.
Функции
проверки файлов
и дисков
ВОF([<область>])
-
достижение
начала файла
(результат
.Т. или
.F.)
ЕОF[(<область>])
-
достижение
конца файла
(результат
.Т. или
.F.)
DBF([<область>]) -
выдает полное
имя файла БД
в
текущей
области
DISCSPACE ( )
-
число свободных
байт на активном
диске
DELETED([<область>]) -
наличие пометки
записи к удалению
(результат
.Т. или .F.)
FILE(<имя>)
-
проверка наличия
файла
FIELD(<вырN>[,<область>]) -
выдает имя поля
по его номеру
в
активной
БД
FOUND([<область>]) -
успешное завершение
поиска
(результат
.Т. или .F.)
FCOUNT([<область>]) -
число полей
в открытом
файле БД
LOOKUP(<поле1>,<выр>,<поле2>) -
ищет первое
вхождение
выражения в
<поле2>
и выдает <поле1>
LUPDATE([<область>]) -
дата последнего
изменения БД
ORDER([<область>]) -
имя главного
индексного
файла
RECNO([<область>]) -
номер текущей
записи активного
файла
БД
RECCOUNT([<область>]) -
общее количество
записей
RECSIZE([<область>]) -
размер записи
в байтах
HEADER([<область>) -
размер заголовка
БД в байтах
SЕЕK(<выр>[,<область>]) -
поиск записи
с <выр> в индексном
файле
ЕМРТY(<выр>) -
наличие данных
в объекте (результат
.Т. или
.F.)
ТYРЕ(<вырС>) -
выдает букву
имени типа
Функции
позиционирования
COL ( ) -
номер текущей
колонки экрана
или окна
ROW ( ) -
номер текущей
строки экрана
или окна
РСОL
( ) - номер
текущей колонки
на принтере
PROW ( ) -
номер текущего
столбца на
принтер
12.2.
SET - КОМАНДЫ
Эти
команды служат
дня задания
флажков состояний,
параметров
среды и т.п., которые
обычно задаются
в начале текста
программы и
в случае необходимости
переопределяются
или отменяются.
В среде FoxPro имеется
свыше 100 таких
команд. Приведем
некоторые из
них. За дополнительными
разъяснениями
можно обратиться
к HELP.
SET ALTERNATE
ON/OFF - установить
флаг вывода
данных с экрана
в файл
SET BELL ON/OFF
- установить
флаг звукового
сигнала
SET BLINK ON/OFF
- установить
флаг мигания
символов
SET SENTURY
ON/OFF - установить
флаг отображения
столетия
в датах
SET CLOCK ON/OFF
- установить
флаг вывода
времени
SET COLOR TO
- задать
цвета меню и
окон пользователя
SET
COLOR OF SCHEME -
задать
цвета
схемы
SET
CURRENCY TO -
задать
денежный
знак
SET
DATE TO... -
определить
формат даты
SET DECIMALS
TO… -
установить
число цифр в
дробной
части
числа
SET
DEFAULT TO... -
задать диск
и каталог по
умолчанию
SET DELETED
ON/OFF - установить
флаг доступа
к записям с
пометкой
удаления
SET ECHO ON/OFF
- установить
флаг активизации
окна отладки
SET ESCAPE ON/OFF
- установить
флаг прерывания
по
клавише
ESC
SET
FILTER TO… -
задать фильтр
доступа к записям
SET
FUNCTION...TO... -
связать команду
с функциональной
клавишей
SET HELP ON/OFF
- установить
режим доступа
к помощи
SET
INDEX TO… -
открыть индекс
SET KEY TO -
задать предельное
значение ключевого
индекса
SET
MESSAGE TO... -
задать местоположение
сообщений
SET ORDER TO...
- задать
основной индекс
SET PATH TO… -
задать список
каталогов для
поиска файлов
SET
PRINTER ON... -
установить
флаг вывода
на принтер
SET
PROCEDURE TO... -
открыть заданный
процедурный
файл
SET
RELATION TO… -
установить
связь 1:1 с другой
БД
SET RELATION OFF
- разорвать
связь с другой
БД
SET
SHADOWS ON/OFF -
установить
флаг
наличия
тени
SET
SKIP TO… -
установить
связь 1:N с другой
БД
SET SPACE ON/OFF
- установить
флаг вставки
пробелов
SET TALK
ON/OFF - установить
флаг вывода
результатов
выполнения
команд
SET
WINDOW OF MEMO TO... -
задать имя окна
редактирования
мемо-полей
12.3.
ТЕКСТЫ ПРОГРАММ
Структура
для базы данных:
DELIVERY.DBF
Field
Field
Name Type
Width
Dec Index
1 INDDEL Numeric 2
2 NUMDEL Character
10
3 ADRDEL Character
20
4 COUNT Character
8
5 TEL Numeric
6
Структура
для базы данных:
SUPLY.DBF
Field
Field
Name Type
Width
Dec Index
1 INDSUP Numeric
5
2 INDDEL Numeric
2
3 DATE Date
8
4 NAMGOODS Character
15
5 QUANT Numeric
5
6 PRICEGOODS Numeric
5
2
7 MEASURE Character
3
8 INDGOODS Numeric
5
***********************
Работа
с
несколькими
БД
*****
USE
Suply
ERASE
Goods.dbf
INDEX
ON indgoods TO Indg UNIQUE
COPY
TO Goods FIELDS indgoods;
,namgoods,measure
SELECT
2
USE
Goods
BROWSE
CLOSE
ALL
SET
TALK OFF
DEFINE
WINDOW vvod FROM 2,
2
TO 7,
35
DOUBLE FLOAT SHADOW
DEFINE
WINDOW vivod FROM 8,
2
TO 20,70 SYSTEM ;
COLOR
SCHEME 10
CLEAR
SELECT
A
IF
FILE ('Inddeliv.idx')
USE
Delivery INDEX Inddeliv
ELSE
USE
Delivery
INDEX
ON inddel TO Inddeliv
ENDIF
SELECT
B
USE
Suply
SET
RELATION TO inddel INTO Delivery
DO
WHILE .T.
ACTIVATE
WINDOW vvod
CLEAR
A=0
@
2,5 SAY 'Введите
код
товара'
GET A PICTURE '#####'
READ
LOCATE
FOR indgoods=A
IF
!FOUND()
WAIT
'Такого кода
нет'
LOOP
ENDIF
name=namgoods
IF
A<>0
SET
FILTER TO indgoods=A
ACTIVATE
WINDOW vivod
BROWSE
;
TITLE
'Список поставщиков,
поставляющих
'+name ;
FIELDS
;
A.inddel
:H
=
'Код
поставщика',
;
A.namdel
:H
=
'Имя
поставщика',
;
A.adrdel
:H
=
'Адрес
поставщика',
;
A.tel
:H
=
'Телефон
поставщика',
;
A.count
:H
=
'Счет
поставщика'
DEACTIVATE
WINDOW vivod
SET
FILTER TO
ENDIF
DEACTIVATE
WINDOW vvod
IF
LASTKEY()=27
EXIT
ENDIF
ENDDO
PACK
CLOSE
ALL
CLEAR
SET
TALK OFF
SELECT
B
USE
Goods
SELECT
A
USE
Suply
INDEX
ON indgoods TO Indg
SELECT
C
USE
Delivery
INDEX
ON inddel TO Indexdel
SELECT
Suply
SET
RELATION TO inddel INTO Delivery
SELECT
Goods
INDEX
ON namgoods TO Indnum
SET
RELATION TO indgoods INTO Suply
SET
SKIP TO Suply
BROWSE
TITLE
'Товары'
;
FIELDS
;
Goods.namgoods
:H
=
'Имя
товара'
,;
Delivery.numdel
:H
=
'Имя
поставщика',;
Delivery.adrdel
:H
=
'Его
адрес',;
Delivery.count
:H
=
'Счет'
,;
Goods.measure
:H
=
'Единица
измерения' ,;
Suply.pricegoods
:H
=
'Цена
единицы' ,;
Suply.quant
:H
=
'Количество
единиц' ,;
Totalamount=Suply.quant
*
Suply.pricegoods
;
:H
=
'Общая
сумма'
CLOSE
ALL
3.1. Линейная
программа
**********
установки
***********
CLEAR
SET
TALK OFF
CLOSE
ALL
USE
state IN a && открыть
в
зоне
а
файл
STATE
USE sotr IN b &&
открыть в зоне
b файл CADR
*********** работа
с таблицей
state **************
SELECT a
BROWSE
;
TITLE
'Штаты
^Т
– удал
^N - добав
^W – coxp ' ;
FIELDS
cod :H = ‘Код’
,;
dolg :H
= 'Должность'
,;
zarp :H = 'Оклад'
,;
kol :H = 'Количество'
*********** поиск
данных в таблице
STATE ***********
CLEAR
с = 0
@ 5, 10 SAY 'Задайте
код должности:'
GET с PICTURE '###'
READ
@
6, 2 SAY 'Результат
поиска'
LOCATE
ALL FOR cod = C
DO
WHILE ! EOF ( )
? 'Должность
- ', dolg, ' Оклад - ', zarp
CONTINUE
ENDDO
WAIT
'Продолжение
– ENTER ' WINDOW
******** работа
с таблицей
sotr ****************
SELECT b
BROWSE
;
TITLE 'Список
- ^ T-удал ^ N - добав
^W - сохр' ;
FIELDS
cod :Н
= 'Код'
,;
fio :H = 'Фамилия
И.О.' ,;
tab :H = 'Табельный
номер'
**** поиск
данных в таблице
SOTR ****
CLEAR
с = 0
@ 5, 10 SAY 'задайте
код должности:'
;
GET
с
PICTURE '###'
READ
@ 6, 2 SAY 'Результат
поиска'
LIST 'Фамилия
- ', fio, 'Табельный
номер - ', tab;
WHILE
cod = c
WAIT
'Продолжение
– ENTER ' WINDOW
**** работа
с форматом
****
SET FORMAT TO cadr.fmt
CHANGE
SET
FORMAT TO
******** установление
связи********************
SELECT b
SET
ORDER TO cod
SELECT
a
SET
ORDER TO cod
SET
RELATION TO cod INTO b
SET
SKIP TO b
BROWSE ;
TITLE 'Информация'
;
FIELDS A.dolg :H =
‘должность'
,;
B.fio :H = 'Ф.И.О.'
,;
A.zarp :H = 'оклад'
,;
nal = A.zarp
* 0.2 :H
= 'налог'
SET
RELATION TO
*********
конец
программы**********
3.2 Программа,
состоящая из
процедур, вызываемых
из меню
CLEAR ALL
SET
TALK OFF
CLOSE
ALL
SET
SHADOWS ON
USE
state IN a
USE
cadr IN b
**************
МЕНЮ
****************
DEFINE POPUP mmenu
DEFINE
BAR1 OF mmenu PROMPT 'Информация'
DEFINE BAR2 OF mmenu PROMPT
'Штатное расписание
предприятия'
DEFINE
BAR3 OF mmenu PROMPT 'Список
сотрудников'
DEFINE
BAR4 OF mmenu PROMPT 'Состояние'
DEFINE
BAR5 OF mmenu PROMPT 'Запрос'
DEFINE
BAR6 OF mmenu PROMPT 'Выход'
ON
SELECTION BAR6 OF mmenu DEACTIVATE POPUP
ON
SELECTION BAR1 OF mmenu DO about
ON
SELECTION BAR4 OF mmenu DO p2table
ON
SELECTION BAR5
OF mmenu DO pspr
ON
BAR2 OF mmenu ACTIVATE POPUP wow
ON
BAR3 OF mmenu ACTUVATE POPUP sos
DEFINE
POPUP wow
DEFINE
BAR1 OF wow PROMPT ‘Просмотр'
DEFINE
BAR2 OF wow PROMPT 'Поиск'
ON
SELECTION BAR1 OF wow DO pstate
ON
SELECTION BAR2 OF wow DO psearch
ON
SELECTION POPUP wow DO wow
DEFINE POPUP sos
DEFINE
BAR1 OF sos PROMPT 'Просмотр'
DEFINE
BAR2 OF sos PROMPT 'Поиск'
ON
SELECTION BAR1 OF sos DO pstate
ON
SELECTION BAR2 OF sos DO psearch
ON
SELECTION POPUP sos DO sos
ACTIVATE POPUP mmenu
************
работа
с
таблицей
state **************
PROCEDURE pstate
SELECT
a
BROWSE
;
TITLE
'Штаты
^T - удал
^N - добав
^W - coxp' ;
FIELDS
cod :Н
= 'Код'
,;
dolg :H = 'Должность'
,;
zarp :H = 'Оклад'
,;
kol :H = 'Количество'
RETURN
******** поиск
данных в таблице
STATE ************
PROCEDURE psearch
CLEAR
c
= 0
@ 10, 15 SAY 'Задайте
код должности:'
;
GET
с
PICTURE '###'
READ
@ 12, 10 SAY 'Результат
поиска'
LOCATE
ALL FOR cod = c
DO
WHILE ! EOF ( )
?
'Должность - ',
dolg, 'Оклад - ', zarp
CONTINUE
ENDDO
WAIT
'Продолжение
– ENTER ' WINDOW
CLEAR
RETURN
******** работа
с таблицей cadr
***************
PROCEDURE pcadr
SELECT
b
BROWSE
;
TITLE
'Список ^T
- удал ^N
- добав ^W
- сохр' ;
FIELDS
cod :H = 'Код'
,;
fio :H = 'Фамилия
И.О.' ,;
tab
:H
= 'Табельный
номер'
RETURN
******** поиск
данных в таблице
SOTR *******
PROCEDURE
рcadrsr
CLEAR
с
= 0
@ 5, 10 SAY ‘Задайте
код должности:'
;
GET
с
PICTURE '###'
READ
@ 6, 2 SAY 'Результат
поиска'
LIST 'Фио
- ', fio, ' Табельный
номер - ', tab;
WHILE
cod = c
WAIT
'Продолжение
– ENTER ' WINDOW
CLEAR
RETURN
******** установление
связи ******************
PROCEDURE p2table
SELECT
b
SET
ORDER TO cod
SELECT
a
SET
ORDER TO cod
SET
RELATION TO cod INTO b
SET
SKIP TO b
BROWSE ;
TITLE 'Информация'
;
FIELDS A.dolg :H = 'Должность'
,;
B.fio :H = 'Ф.И.О.'
,;
A.zarp :H = 'Оклад'
,;
nal = a.zarp*0.2 :H = 'Налог'
SET
RELATION TO
RETURN
*********
заставка
************
PROCEDURE about
CLEAR
@ 8, 15 TO 20, 60 double
@ 9, 25 SAY ‘Штатное
расписание'
@ 12, 20 SAY 'Модель
информационной
системы'
WAIT
'Продолжение
– ENTER ' WINDOW
CLEAR
RETURN
*********
запрос
************
PROCEDURE pspr
CLEAR
DEFINE
WINDOW spr FROM 10, 10 TO 18, 40 ;
TITLE
'Справка'
SHADOW
ACTIVATE
WINDOW spr
@ 1, 1 SAY 'Запрос
о занятых должностях
и общем'
@ 2, 1 SAY 'Количестве
ставок по ним'
WAIT
'Продолжение
– ENTER ' WINDIW
DEACTIVATE
WINDOW spr
SELECT
B
SET
ORDER TO cod
SELECT
A
SET
ORDER TO cod
SET
RELATION TO cod INTO b
SET
SKIP TO B
SELECT
A.dolg, A.kol, COUNT(B.fio) AS cnt, SUM(A.zarp) AS ssum ;
FROM state A, cadr B INTO CURSOR
qq ;
WHERE B.cod = A.cod ;
GROUP by A.dolg
BROWSE TITLE 'Занятые
должности' ;
FIELDS dolg :Н =
'Должность' ,;
kol :Н = 'По
штату' ,;
cnt :Н = 'Занято'
,;
ssum :Н = 'Суммарный
оклад'
CLEAR
SET
RELATION TO
RETURN
11. Задания.
1.
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
2 .
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
3.
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
4 .
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
5.
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
6 .
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
7.
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции y,
используя
оператор ветвления
case.
Функция имеет
вид:
8.
Обеспечить
форматный ввод
переменной
x
и форматный
вывод значения
функции yзуя
оператор ветвления
case.
Функция имеет
вид:
РЕКОМЕНДУЕМАЯ
ЛИТЕРАТУРА
1. Дейт
К. Введение в
системы баз
данных. - М.: Наука-1980.-
463 с.
2. Мидоу
Ч. Анализ информационных
систем. - М.: Прогресс.
- 1977.- 400 с.
3. Цикритзис
Д., Лоховски Ф.
Модели данных.-
М.: Финансы и
статистика.
-1985.-344 с.
4. Мейер
Д. Теория реляционных
баз данных. -
М.: Мир. -1987.-608 с.
5.
Бойко В.В., Савинков
В.Ф. Проектирование
баз данных
информационных
систем.- М.: Финансы
и статистика.
-1982 .- 382 с.
6. Джексон
Г. Проектирование
реляционных
баз данных для
использования
с микро-ЭВМ. -
М.: Мир. - 1991. - 252 с.
7. Попов
А.А. Программирование
в среде FoxPro2.0. - М.:
Финансы и статистика.
- 1993. - 350 с.
Бемер
С. FoxPro 2.6 для WINDOWS. - Киев:
Торгово-издательское
бюро BHV.- 1995.-463 с.
|