логотип каи Группа 4309 самолет ту
Главная
Группа в контакте
Расписание для студентов в КАИ.
Преподаватели в КГТУ-КАИ.
Электронная библиотека КАИ

Связывание таблиц в 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. Составьте программу на выполнение вычислительной задачи
                                           1
                 
     где 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. Спроектировать базу данных  маршрутов  городского  транспорта. Возможные атрибуты:  номер маршрута,  вид транспорта, начальный пункт, конечный пункт маршрута, протяженность маршрута, количество остановок, время в пути.

 

Универсиада 2013 в Казани