|
|
Связывание таблиц в Microsoft Access.Запросы к связанным таблицам и получение отчетов.(Lab 3) |
FoxPro - реляционная система управления базами данных. FoxPro поддерживает файлы данных в формате dBaseIII+ и на 100% совместима с FoxBase+, а также совместима по языку с dBASE IV. FoxPro работает более, чем в 8 раз быстрее dBase IV и почти в 16 раз быстрее, чем dBaseIII+. FoxPro имеет в высшей степени изящный интерфейс, уникальный среди продуктов для MS DOS, обеспечивающий полную поддержку мыши.
Работа в среде FoxPro
Найдите файл fox.exe (Foxprol.exe, Foxpro.exe) в директории FoxPro и запустите. На экране в верхней кромке высветится строка меню. Строка меню отображает имена (заголовки) всплывающих меню: SYSTEM, FILE, EDIT, DATABASE, RECORD, PROGRAM, WINDOW. Во всплывающих меню содержатся команды.
В FoxPro весьма развита оконная среда, включающая следующие окна:
View - основная панель отображения информации;
Browse/Change - окно просмотра, редактирования и ввода данных;
Сommand - окно комманд;
Окно редактирования программы;
Окно трассировки и отладки.
Окно Command является в FoxPro системным окном, в котором вводятся различные команды. Например, команды создания базы данных, создания программ, просмотра данных и т.д.
Пример. Созданиe базы данных (БД) для отношения КАДРЫ (Фамилия, Должность, Отдел, Оклад)
Для создания базы данных необходимо набрать команду CREATE KADRS и ввести следующие поля (где : KADRS – название создаваемого файла БД).
Структура: KADRS.DBF
Используя только буквы латинского алфавита, введите название поля. Тип поля выбирается в момент, когда курсор находится в колонке TYPE (тип), нажатием первой буквы указания типа (C, N, F, D, L, M) или при помощи «мыши». Введите размер поля в столбце Width. Для числовых полей также можно указать количество позиции после точки (Dec). В этом случае Width равен общему количеству позиции в числе, считая точку.
Созданную структуру сохраните нажатием клавиш Ctrl-W. Модификация (изменение) структуры базы данных может быть произведена по команде MODIFY STRUCTURE, набранной в окне Command.
После создания структуры система может запросить о вашем желании ввести данные (Inputdatarecordsnow?). В случае согласия необходимо ответить YES, иначе NO. Если вы вновь вводите данные после запуска FoxPro, то сначала откройте базу данных по команде USE KADRS, а затем наберите команду для ввода данных – APPEND (название файла не указывать!).
Окно редактирования
При выполнении команд APPEND, INSERT, EDIT, CHANGE, BROWSE пользователь попадает в окно редактирования. В этом окне возможно произвести изменение данных, а также дополнение и удаление записей. В окне редактирования для первых четырех команд все поля базы данных располагаются вертикально (форма такого окна называется CHANGE-окном), а при использовании команды BROWSE (BROWSE-окно) поля располагаются горизонтально – колонками (в виде таблицы).
Перемещение внутри окон редактирования осуществляется с помощью клавиш перемещения курсора или мыши, кроме того для выполнения различных операции над данными используются следующие функциональные клавиши :
Home/End - переход к началу/концу поля;
Tab/Shift-Tab - переход к следующему/предыдущему полю;
Enter - переход к следующему полю;
Ctrl-T - пометка записей к удалению;
Ctrl-N - дополнение базы данных новой записью;
Ctrl-W/End - выход с сохранением измененных данных;
Ctrl-Home - вход в мемо-поле;
Esc - выход без сохранения.
Для перемещения внутри базы данных по записям используются следующие команды (выполняются через окно Command) :
GO TOP - переход к самой первой записи файла;
GO BOTTOM - переход к самой последней записи;
GO n - переход к n-й записи;
SKIP n - продвижение на n записей от текущей записи.
Команды СУБД FOXPRO
Команды добавления новых записей Append, Insert. Команда Append добавляет новую запись в конец файла. Команда Insert без параметров включает новую запись в файл БД сразу после текущей записи. Если используется параметр BEFORE, новую запись включается в файл перед текущей записью.
Для редактирования (изменения) записей базы данных используются команды Browse, Change, Edit.
Для просмотра записей базы данных существуют команды: Display, List. Команда Display, без параметров печатает одну (текущую) запись, команда List выдает на экран все записи БД.
Полный формат перечисленных выше команд:
ИМЯ_КОМАНДЫ [<диапозон>][<поля>][FOR/WHILE<условие>]
диапозоны: ALL, NEXT n, REST, RECORD n
Например,
DISPLAY ALL fio,dolgn FOR otdl="САПР" WHILE okl<200000
Выполните команды DISPLAY, LIST с различными условиями.
Команда BROWSE является мощным и удобным средством доступа к данным в FoxPro. Команда BROWSE позволяет в полноэкранном режиме редактировать данные, вводить новые записи, вставлять и помечать к удалению. Формат отображения полей в BROWSE-окне может настраиваться пользователем. Формат команды может включать, например, следующие опции: BROWSE [FIELDS<поля>][FOR/WHEN<условия>][TITLE<выражение>] ;
[LEDIT/REDIT][WINDOW<окно>]
Опция FIELDS<список полей> может сопровождаться ключами: R,N,V,P,H,B,W. Формат имеет вид: FIELDS <поле> : ключ R - разрешен только просмотр, N - видимый размер поля, V - контроль выхода из поля, P - задание формата отображения данных, H - указание собственного заголовка поля, B - указание границ чисел или дат, W - контроль входа в поле.
Опция TITLE задает заголовок BROWSE-окна. LEDIT/REDIT - опции, действующие в разделенном окне, так что в одном окне поля располагаются вертикально, а в другом горизонтально или наоборот; WINDOW<окно> - позволяет открыть BROWSE-окно внутри другого <окна>, которое предварительно определено командой DEFINE WINDOW.
Удаление данных в FoxPro производится с помощью следующих команд:
- ERASE<файл>- удаление любого не открытого в данный момент файла;
- ZAP - удаление всех записей в активном файле базы данных;
- DELETE[<границы>][FOR/WHILE<условие>]-пометка к удалению записей в указанных границах;
- PACK-физическое удаление помеченных ранее записей и сжатие файла;
- RECALL-снятие пометок к удалению.
Поиск данных. Отбор и просмотр записей может осуществляться с помощью команд DISPLAY и LIST с заданными условиями. Но последовательный поиск одной записи производится командой Locate.
LOCATE FOR<условие>[<границы>][WHILE<условие>]
Например, LOCATE FOR fio='Иванов'.
Для продолжения поиска с заданным условием служит команда CONTINUE.
Для ускорения поиска данных производится индексирование базы данных. Один файл базы данных может быть проиндексирован по нескольким полям. Формат команды обычного индексного файла имеет вид:
INDEX ON <выр> TO <IDX-файл>[FOR<условие>][COMPACT]
Например,
USE kadrs
INDEX ON fio TO kadrfio.idx COMPACT
LIST fio,dolgn
Опция COMPACT используется для создания компактного IDX-файла. Если индексный файл уже существует, то при открытии базы данных необходимо открыть и индексный файл: USE kadrs INDEX kadrfio или произвести установку индексного файла командой SET INDEX TO kadrfio. Индексный файл не только упорядочивает базу данных для просмотра, но и ускоряет поиск в ней по ключу, заданному в индексе с помощью команды: SEEK<выражение>
Пример. USE kadrs INDEX kadrfio
SEEK 'Петров'
DISPLAY
Режим командных файлов
Режим командных файлов служит для прямого программирования процессов обработки данных. При этом программы создаются с помощью внутреннего встроенного текстового редактора FoxPro по команде MODIFY COMMAND <имя файла> или кратко MODI COMM. Созданный файл считается командным (программным) и ему присваивается расширение .PRG. Созданная в редакторе программа запоминается в указанном файле и в дальнейшем запускается на выполнение командой DO <имя файла>
Войдите в редактор по команде - MODI COMM prim1
Наберите команду ?" Мы знакомимся с языком FoxPro "
Сохраните Ctrl-W
Запустите DO prim1
Команды экранного ввода/вывода
?/?? - самая простая команда вывода,
\ и \\ - вывод строки текста,
TEXT - ENDTEXT - удобная для вывода значительных объемов текста,
@ n,m SAY <выражение> [PICTURE<шаблон>]- форматированный вывод,
где n=0-24 -номер строки, m=0-79 - номер колонки.
INPUT, ACCEPT - операторы ввода,
WAIT - оператор ввода с ожиданием,
@ n,m GET <переменная> [PICTURE<шаблон>]
READ - форматированный ввод.
Основные шаблоны опции PICTURE:
A - допускается ввод только букв,
N - допускается ввод только букв и цифр,
X - допускается ввод любых символов,
9 - допускает ввод цифр,
! - преобразует строчные буквы в прописные.
Например,
@ 5,8 SAY "Введите оплату -" GET opl PICTURE '9999.99'
READ
П р и м е р.
* Программа вывода "шапки" таблицы
set talk off
clear
@ 3,1 say " СВЕДЕНИЯ О РАБОТНИКАХ"
@ 4,1 say "---------------------------------------------------------------"
@ 5,1 say " N Фамилия И.О. Должность Отдел Оклад "
@ 6,1 say "---------------------------------------------------------------"
Программа набирается с помощью встроенного редактора FoxPro. В редакторе действуют традиционные клавиши управления курсором. Для удаления и перемещения фрагментов текста используются следующие клавиши:
Shift + <стрелка вправо/влево> - выделение символа справа/слева,
Shift + <стрелка вверх/вниз> - выделение строки,
Ctrl + A - выделение всего текста,
Ctrl + X - удаление выделенного фрагмента в буфер,
Ctrl + C - взятие фрагмента в буфер без удаления,
Ctrl + V - восстановление выделенного и удаленного фрагмента текста.
Выделение текста можно произвести и мышью. Для этого надо поставить ее маркер на начало выделяемого участка, нажать кнопку мыши и, не отпуская ее, переместить курсор в конец участка.
Команды управления
Команды управления служат для изменения хода выполнения программ. К командам управления относятся следующие операторы:
Команда IF.
IF <условие>
<команды>
[ELSE
<команды>
ENDIF
Команда DO CASE.
DO CASE
CASE <условие 1>
<команды>
CASE <условие 2>
<команды>
...
[OTHERWISE
<команды>
ENDCASE
Цикл с условием.
DO WHILE<условие>
<команды>
ENDDO
Цикл с параметром
FOR i=n TO m [STEP l]
<команды>
ENDFOR
Цикл сканирования базы данных (обработка от первой записи до последней)
SCAN [<границы>][FOR/WHILE<условие>]
<команды> ENDSCAN
Ниже приводятся фрагменты поиска записей с именами, начинающимися с буквы 'С'
1. USE kadrs 2. USE kadrs
LOCATE FOR fio='С' SCAN FOR fio='C'
DO WHILE .NOT.EOF() ?fio,dolgn
?fio,dolgn ENDSCAN
CONTINUE
ENDDO
3. USE kadrs 4. USE kadrs
INDEX ON fio TO kdrfio INDEX ON fio TO kdrfio
SEEK 'C' SEEK 'C'
DO WHILE fio='C' SCAN FOR fio='C'
?fio,dolgn ?fio,dolgn
SKEEP ENDSCAN
ENDDO
Порядок выполнения лабораторной работы
1. Поработайте с системным интерфейсом. Для этого нажатием клавиши F10 войдите в главное меню. Просмотрите пункты меню (SYSTEM, FILE, EDIT, DATABASE, RECORD, PROGRAM, WINDOW).
2. Войдите в редактор системы FoxPro. Для этого в окне COMMAND наберите команду MODI COMM prim1. В редакторе наберите текст, например:
TEXT
Мы все учились понемногу
Чему-нибудь и как-нибудь,
Так воспитаньем, слава богу,
У нас не мудрено блеснуть.
А.С.Пушкин
ENDTEXT
Отредактируйте текст. Для этого выделите слово (строчку) и удалите, восстановите. Поменяйте местами слова, строчки. Сохраните текст Ctrl-W. Запустите на выполнение DO prim1
3. Составьте программу на выполнение вычислительной задачи

где a,b произвольные числа, корень и логарифм представлены в виде функций sqrt(x), log(x).
4. Создайте базу данных в соответствии с выданным заданием (см.Приложение).
5. Произведите модификацию структуры базы данных. Введите произвольное дополнительное поле. Поменяйте имя, тип и размер. Удалите введенное поле.
6. Введите в базу данных порядка 7-10 записей.
7. Просмотрите записи по командам Display, List, Browse, Change. Организуйте просмотр по различным условиям.
Например: USE kadrs
LIST ALL fio, dolgn FOR otd="САПР"
С помощью команды Locate найдите отдельные записи.
8. Произведите индексацию базы данных по одному какому-либо полю или по двум полям. Просмотрите базу данных.
Например: USE kadrs
INDEX ON otdl+fio TO idxfile COMPACT
LIST
Произведите ускоренный поиск, например: SEEK "АСУ"
9. Произведите редактирование данных в режиме BROWSE. Поменяйте значения данных. Пометьте 2-3 записи на удаление. Вставьте и добавьте новые записи.
10. В режиме BROWSE-окна для своей базы данных выведите данные со своими собственными русифицированными заголовками. Например: Настроим выходной список базы данных KADRS, таким образом, чтобы он имел общий заголовок и собственные заголовки колонок.
set talk off
clear
USE kadrs
BROWSE TITLE " СВЕДЕНИЯ О СОТРУДНИКАХ ";
FIELDS fio :H='Фамилия',;
DOLGN :H='Должность',;
OTDL :H='Отдел',;
OKL :H='Оклад'
Кроме того, с помощью параметра LEDIT/REDIT произведите конфигурирование окна редактирования в виде двух окон. Перемещение курсора из одного окна в другое можно осуществлять мышью или клавишами Ctrl-H.
11. Создайте экранную форму для ввода информации, например:
| ДАННЫЕ О СОТРУДНИКЕ |
| ФИО |
Дашкова И.Л |
| Должность |
Инженер |
| Отдел |
САПР |
| Кадры |
1200 |
* Бланк ввода данных - файл FKADR.PRG
set talk off
use kadrs
clear
otv='Y'
Do while otv='Y'
append blank && ввод пустой записи
@ 4,11 to 14,55 DOUBL && вычерчивание прямоугольника
@ 5,24 say 'ДАННЫЕ О СОТРУДНИКЕ'
@ 7,13 say 'Фамилия, инициалы'
@ 7,35 get fio picture '@S(20)'
@ 9,13 say 'Должность'
@ 9,35 get dolgn
@ 11,13 say 'О т д е л'
@ 11,35 get otdl
@ 13,13 say 'О к л а д'
@ 13,35 get okl picture '999999руб.'
read
@ 6,12 to 6,54 && вычерчивание линий
@ 8,12 to 8,54
@ 10,12 to 10,54
@ 12,12 to 12,54
@ 7,34 to 13,34
@ 16,11 say 'Еще будете вводить (Y/N)? ' get otv pict 'X'
read
enddo
clear all
12. Программа для просмотра содержимого базы данных
set talk off
clear
use kadrs
s=5
@ 3,15 say 'Сведения о сотрудниках'
scan
@ s,1 say k pict '999'
@ s,5 say fio
@ s,30 say dolgn
@ s,40 say otdl
@ s,50 say okl
k=k+1
s=s+1
endscan
wait
clear all
13. Оформите и сдайте отчет по лабораторной работе
ПРИЛОЖЕНИЕ .Задачи проектирования баз данных.
1.Спроектировать базу данных для получения сведений о студентах данного вуза. Возможные атрибуты: ФИО студента, номер зачет.книжки, номер группы, наимен.специальности, размер стипендии.
2.Составить базу данных посетителей учреждения. Возможные атрибуты: ФИО посетителя, должность, организация, адрес, номер телефона.
3.Спроектировать базу данных получения сведений о поставщиках изделий. Возможные атрибуты: шифр поставщика, наименование поставщика, адрес, телефон, наименование изделия.
4. Спроектировать базу данных для получения сведений о профессиональной деятельности служащих. Возможные атрибуты: ФИО сотрудника, номер отдела, номер профессии, наименование профессии, дата начала работы по этой профессии.
5. Спроектировать базу данных о товарах, поставляемых на склад. Возможные атрибуты: номер товара, наименование товара, дата поставки, количество, цена единицы товара.
6. Спроектировать базу данных для хранения библиографических данных по литературе, поступающей на абонемент библиотеки. Возможные атрибуты: ФИО автора, название, наименование издательства, год издания, количество страниц, УДК, регистрационный номер.
7. Спроектировать базу данных маршрутов городского транспорта. Возможные атрибуты: номер маршрута, вид транспорта, начальный пункт, конечный пункт маршрута, протяженность маршрута, количество остановок, время в пути.
|