Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 487

.pdf
Скачиваний:
3
Добавлен:
30.04.2022
Размер:
441.77 Кб
Скачать

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Воронежский государственный технический университет

Гурова И.Н., Лапшина М.Л.

НАЧАЛЬНЫЙ КУРС ПО FOXPRO

Учебное пособие

Воронеж 1998

Оглавление

Введение ............................................................................................................

Базы и банки данных.......................................................................................

Глава 1

Основные файлы, расширения, создание и редактирование БД .................

Основные файлы FoxPro ............................................................................

Типы файлов, используемых в FoxPro .....................................................

Загрузка FoxPro и выход из него...............................................................

Создание, заполнение, просмотр и редактирование базы данных........

Глава 2

Константы, переменные, операции, функции, выражения ..........................

Основные типы констант и переменных в FoxPro..................................

Массивы .......................................................................................................

Поля баз данных..........................................................................................

Операции......................................................................................................

Выражения...................................................................................................

Функции .......................................................................................................

Простейший ввод-вывод ............................................................................

Команды.......................................................................................................

Глава 3

Индексирование ................................................................................................

Что такое индекс .........................................................................................

Типы индекса ..............................................................................................

Создание индекса........................................................................................

Упорядочение по индексу..........................................................................

Примеры упорядочения .............................................................................

Открытие индекса .......................................................................................

Другие операции с индексами и справочник функций ..........................

Глава 4

Поиск в базах данных и связи между ними ...................................................

Последовательный (безиндексный) поиск...............................................

Индексный поиск ........................................................................................

Что такое связь между базами данных .....................................................

Команда установления связей ...................................................................

Связь вида одно-со-многими.....................................................................

Глава 5

Системный интерфейс......................................................................................

Диалоговый блок ........................................................................................

Системное меню .........................................................................................

1.Секция меню SYSTEM...........................................................................

2.Секция меню FILE ..................................................................................

3.Секция меню EDIT .................................................................................

4.Секция меню DATABASE .....................................................................

5.Секция меню RECORD ..........................................................................

6.Секция меню PROGRAM.......................................................................

7.Секция меню WINDOW .........................................................................

8.Секция меню RUN ..................................................................................

Глава 6

Команда экранного ввода-вывода SAY/GET.................................................

Создание элементов интерфейса...............................................................

Глава 7

Основные конструкции языка FoxPro ............................................................

Команды управления ..................................................................................

Организация циклов ...................................................................................

Глава 8

Организация меню в FoxPro ............................................................................

Световое меню ............................................................................................

FOX меню ....................................................................................................

LIGHTBAR меню ........................................................................................

DBASE меню ...............................................................................................

Вертикальное POPUP меню.......................................................................

Отключение меню.......................................................................................

Клавишное меню.........................................................................................

Использование функциональных клавиш ................................................

Литература .........................................................................................................

ВВЕДЕНИЕ

БАЗЫ И БАНКИ ДАННЫХ

Определим сначала некоторые общие понятия и введем обозначения, которыми будем пользоваться в дальнейшем.

База данных (БД) - это совокупность связанных данных конкретной предметной облас-

ти (ПО). Например, для ведения торговых операций необходима информация о производите-

лях и поставщиках продукции, ценах на товары и др. . Аналогично, кадровая деятельность на любом предприятии требует данных о работниках (их образовании, возрасте, занимаемой должности и т.д.), библиотечная деятельность использует информацию о книгах, и т.д.

Часто бывает так, что одни и те же данные нужно использовать в разном виде. Так ино-

гда требуется список одних и тех же книг по названию, а иногда по авторам, т.е. мы прихо-

дим к понятию управления БД.

Система управления базой данных (СУБД) - это программные средства, позволяющие формировать БД, корректировать их, реализовывать доступ к данным и осуществлять их за-

щиту от несанкционированного доступа.

Несмотря на некоторые минусы хранения данных в ЭВМ (например, различные сбои мо-

гут привести к потере информации ), решающим аргументом в пользу электронного способа хранения информации явилась возникшая с появлением сетей ЭВМ возможность централи-

зованного хранения данных и одновременного доступа к ним многих и многих пользовате-

лей. Система продажи билетов в аэрофлоте и на железной дороге, система кредитных карто-

чек на западе и некоторые другие - яркие примеры нового образования, называемого Банком данных.

Автоматизированный банк данных (БнД) – это совокупность базы данных, системы управления базой данных, системы администрирования БД и прикладных программ обра-

ботки информации.

КЛАССИФИКАЦИЯ СУБД

СУБД классифицируются по типу представления данных – иерархические, сетевые, ре-

ляционные.

Примером иерархической модели является генеалогическое дерево, или дерево катало-

гов NORTON COMMANDER.

В сетевых моделях связи между данными устроены по типу сети (иерархическая модель данных является частным случаем сетевой модели). Сетевая модель удобна при наличии больших ресурсов ЭВМ: либо памяти (чтобы хранить все связи между данными на диске),

либо быстродействия (чтобы при необходимости быстрее генерировать такие связи).

Реляционная модель является простейшей и наиболее привычной формой представле-

ния связей между данными в виде таблиц (отношений). Эту таблицу можно интерпретиро-

вать и как просто таблицу, и как математический объект – отношение (relation – отсюда и

название “реляционная”).

“Смычка” математики, программирования и обыденных представлений приводит к есте-

ственному разнобою в терминологии: одно и то же в разных контекстах называется по-

разному. Поэтому мы постараемся устранить этот недостаток, приведя таблицу соответствия наиболее часто употребляемых понятий:

Обыденная терминология

Терминология реляционных БД

Терминология реляционной

 

 

алгебры

Таблица

Файл

Отношение

Строка

Запись

Кортеж

Столбец

Поле

Атрибут

Мы будем, как правило, употреблять терминологию БД.

Для экономии места данные стараются размещать так, чтобы не было ни пропусков

(кроме необходимых), ни дублирования. При этом основную проблему представляет осуще-

ствление связей между данными.

Реляционные базы данных никогда не завоевали бы такой прочной позиции, как сейчас,

если бы не замечательное изобретение, которое называется индексом (индексным файлом) и

которое представляет собой табличку, одна колонка которой содержит одно из полей базы данных, в котором записи упорядочены (например, по алфавиту, если это фамилии или по возрастанию если это числа), а вторая – номера соответствующих записей в исходной базе данных. Это позволяет резко ускорить поиск и производить его практически мгновенно даже в больших базах.

ГЛАВА 1

ОСНОВНЫЕ ФАЙЛЫ, РАСШИРЕНИЯ, СОЗДАНИЕ И РЕДАКТИРОВАНИЕ БД

Эта глава знакомит с основными файлами БД FoxPro , загрузкой и выходом из него,

созданием, заполнением и редактированием БД.

ОСНОВНЫЕ ФАЙЛЫ FOXPRO

База данных FoxPro обычно располагается на диске с программным обеспечением в ка-

талоге FOXPRO20 или FOXPRO25 илиFOXPRO26 (в зависимости от версии).

Обычно в этом каталоге и подкаталогах находится до сотни различных файлов (Foxpro

занимает от 4-5 до 15 Мб), однако есть файлы, которые являются наиболее существенными, “главными”. Перечислим их:

1.foxpro.exe, foxpro.ovl, либо foxprox.exe – сам Foxpro соответственно простой ли-

бо расширенной версии. Расширенная версия может работать на компьютерах 386 и

выше с не менее 4 Мб оперативной памяти. Требование естественное, если учесть,

что сам foxpro.exe занимает более 2 Мб. Для компьютеров с меньшими возможно-

стями используется пара foxpro.exe+foxpro.ovl.

2. foxhelp.dbf, foxhelp.fpt – подсказка (помощь) в системе Foxpro. Названия у этих файлов стандартизированное, однако содержание может быть различное: есть Help

для версий 2.0, 2.5, 2.6, имеется и русифицированный Help. Все они могут использо-

ваться на одной машине, однако должны быть в разных каталогах. Подключение к тому или иному варианту Help‟а производиться, например, в файле конфигурации config.fp (см. ниже).

3.foxuser.dbf, foxuser.fpt – файлы пользовательских установок Foxpro. В них хра-

ниться информация о том, какие базы данных в каком режиме просматривались, ка-

ковы были размеры, расположение, цвета соответствующих окон и т.д. В разных ка-

талогах могут храниться разные по содержанию foxuser, подключением их можно управлять, например, в файле конфигурации config.fp.

4. config.fp – установки конфигурации Foxpro. На самом деле их более 20, однако мы укажем самые необходимые:

WORK=<путь к рабочему каталогу>

PATH=<путь к каталогу, в котором находиться Foxpro> (обычно это что-то типа

C:\foxpro25)

DEFAULT=<путь к каталогу, в котором будут искаться все пользовательские файлы

(базы данных, индексы, экраны и т.д.)>

HELP=<путь к файлу foxhelp.dbf (вместе с именем файла)>

SOURCE=<путь к файлу foxuser.dbf (вместе с именем файла)>

DATE=GERMAN (устанавливет формат даты дд.мм.гг)

CENTURY=ON (год выводится не двумя, а четырьмя цифрами, т.е. включает век,

напр. 1996, а не 96)

5.fox.exe – загрузчик Foxpro. Он проверяет наличие ресурсов машины (памяти,

дискового пространства и т.д.) и запускает один из имеющихся вариантов Foxpro (обычный, расширенный, сетевой и т.п.), причем выбирает “максимально “ возмож-

ный. Обычно рекомендуется запускать Foxpro именно через загрузчик.

6.genmenu.prg, genscrn.prg – программы, позволяющие создавать меню и экраны в

Foxpro. Более подробно о меню и экранах мы будем говорить в соответствующих

разделах.

7.foxswp.com – загрузчик внешних программ – позволяет запускать из Foxpro от-

дельные файлы, содержащие программы на Foxpro/

8.genpd.app - генератор драйверов принтеров – позволяет выбирать драйвер (про-

грамму, обеспечивающую правильное взаимодействие компьютера и принтера) и ус-

тановить некоторые параметры печати. Подробнее см. раздел “Системное меню”.

9.foxdoc.exe, foxdoc.msg, foxdoc.hlp, foxdoc.ovr, config.fxd, prowords.fxd – Докумен-

татор Foxpro. По слухам (как пишут в Help‟е и некоторых книжках) это средство оформления программных продуктов на Foxpro соответственно существующим стан-

дартам. Авторы этим средством пока, что не пользовались, так что сказать о нѐм что-

либо конкретное не могут.

10. Demo.app, demo.bat – демонстрационный ролик Foxpro. При этом Вы вряд ли полностью всѐ поймете, однако начнете привыкать к интерфейсу Foxpro, а это уже кое-что.

 

 

ТИПЫ ФАЙЛОВ, ИСПОЛЬЗУЕМЫХ В FOXPRO

В Foxpro

используется целый ряд файлов со стандартными расширениями. Ниже мы

перечислим их,

а далее, по ходу изложения, мы уже будем подробно объяснять их назначе-

ние.

 

 

.dbf

- файл базы данных

.fpt

- файл примечаний

.cdx, .idx - индексные файлы

.txt

- текстовые файлы

.prg

- программа на Foxpro

.fxp

- откомпиллированная программа на Foxpro

.frx, .frt

- файлы отчета (форматный и примечаний)

.scx, .sct

- файлы планшета экрана (форматный и примечаний)

.spr

- программа, создающая экран (создается из .scx+ .sct – файлов с помощью про-

цедуры генерации)

.spx

- откомпиллированная программа экрана

.mnx, .mnt - файлы планшета меню (форматный и примечаний)

.mpr

- меню-программа (тоже создается процедурой генерации)

.mpx

- откомпилированная меню-программа

.pjx, .pjt

- проект (файл, устанавливающий связи между различными экранами, отчета-

ми, меню, и пр. и объединяющий их в единое целое)

ЗАГРУЗКА FOXPRO И ВЫХОД ИЗ НЕГО

Загрузка Foxpro может быть произведена следующими способами: 1. Набором в строке DOS полного пути и имени файла fox.exe.

Например,

C:\FOXPRO25\fox.exe (впрочем, расширение .exe писать необязательно).

2. Обычно каталог C:\FOXPRO25 (каталог Foxpro) стоит в числе других в команде PATH в

файле autoexec.bat. Более того, при инсталляции пакета программа-инсталлятор сама допи-

сывает этот каталог в команду PATH, так что, за исключением “нестандартных” случаев этот каталог там есть. В этом случае достаточно просто набрать fox.

3. Обычно команду запуска Foxpro записывают как один из пунктов пользовательского ме-

ню (вызываемого в Norton Commander через F2). В этом случае достаточно нажать F2 и вы-

брать соответствующий пункт меню. Выход из Foxpro осуществляется набором команды quit

в командном окне либо выбором в пункте File системного меню подпункта Quit. После этого экран Foxpro исчезнет, появиться надпись Normal shutdown и Вы вернетесь на панели Norton Commander.

СОЗДАНИЕ, ЗАПОЛНЕНИЕ, ПРОСМОТР И РЕДАКТИРОВАНИЕ БАЗЫ ДАННЫХ

Для создания базы данных используется пункт системного меню File, в котором надо выбрать подпункт New. (Пока не изучено системное меню и не объяснены его функции, мы будем пользоваться “инструктивным” методом объяснения: сделать то-то и то-то). При вы-

боре этого пункта появиться список возможных типов файлов, которые можно создавать. По умолчанию стоит Database (он-то нам и нужен) и нам остается только перейти на Ok и на-

жать Enter. После этого появиться диалог создания структуры базы данных. В первой колон-

ке мы вводим названия полей (при этом могут использоваться только английские буквы,

цифры и знак нижнего подчеркивания “_”, который обычно используется вместо пробела).

Во второй указывается тип поля. Приведем таблицу основных типов полей в Foxpro:

Русское название

Английское название

Сокращение

Допустимая длина

Текстовое

Character

Char

C

до 254 символов

Числовое

Numerical

Num

N

до 20 разрядов

С плав. зпт.

Float

Float

F

до 20 разрядов

Дата

Date

Date

D

8 позиций

Логическое

Logical

Log

L

1 разряд

Примечания

Memo

Memo M

10 позиций

Поле типа примечание – по существу безразмерное. Обычно его используют для хране-

ния информации, размер которой заранее предугадать нельзя или этот размер слишком ве-

лик.

Третья колонка – размер поля (количество знаков, которое оно занимает). Для числовых полей указывается также число знаков после запятой – это делается в четвертой колонке.

Поля можно переставлять местами – для этого нужно попасть курсором на заштрихо-

ванную полосу слева от первой колонки и с помощью Ctrl+стрелочек осуществить переме-

щение. Те же операции можно осуществлять с помощью мыши, не используя заштрихован-

ную полосу: передвижение полей осуществляется просто “зацеплением ” поля и его букси-

ровкой. Для мыши доступны кнопки <Insert> и <Delete> в правой верхней части диалога,

которые позволяют, не используя клавиатуру, вставлять и удалять поля.

После того, как мы заполнили таблицу, перейдем на “OK” и нажмем Enter. После этого Вас спросят. Как назвать и куда записать Вашу БД.

ПРОСМОТР И РЕДАКТИРОВАНИЕ БАЗЫ ДАННЫХ

Просмотр базы данных осуществляется с помощью пункта системного меню Database

выбором подпункта Browse. В Foxpro данные могут быть представлены в двух формах – в

форме таблицы или в форме карточки – когда нам предъявляется содержимое лишь одной записи, с этой формой вы уже знакомились, когда вводили данные.

РАБОТА С НЕСКОЛЬКИМИ БАЗАМИ

Foxpro может работать одновременно с несколькими базами. Для этого предусмотрена система так называемых рабочих областей. Упрощенную рабочую область можно предста-

вить как область памяти, которая обслуживает базу данных, ее файл примечаний и ее ин-

дексные файлы. Рабочие области пронумерованы цифрами 1-225 и могут указываться либо по номеру, либо по имени базы данных, открытой в этой рабочей области. Рабочие области существуют постоянно, но рабочей из них является только одна. Переход из одной рабочей области в другую осуществляется командой SELECT<вырN>|<вырC> ,

Где значение <вырN> указывает номер области, а значение <вырC> - имя базы данных.

Значение <вырN> должно лежать в пределах от 0 до 225. Если <вырN> имеет значение 0, то выбирается первая свободная рабочая область (это позволяет открывать новые базы данных,

не заботясь о том, чтобы они не “забили” (т.е. не закрыли) уже имеющиеся).

Открытие базы данных в текущей рабочей области осуществляется командой

USE [<dbf-файл>]

Если при этом в текущей рабочей области уже была открыта база данных, она закрывается.

ГЛАВА 2

КОНСТАНТЫ, ПЕРЕМЕННЫЕ, ОПЕРАЦИИ, ФУНКЦИИ, ВЫРАЖЕНИЯ

ОСНОВНЫЕ ТИПЫ КОНСТАНТ И ПЕРЕМЕННЫХ В FOXPRO

Русское название

Английское название

Сокращения

Формат констант

Пример

Текстовые

Character

Char C

в кавычках или

“Иванов”

 

 

 

апострофах

„La Shene‟

Числовое

Numerical

Num

N

знак, цифры,

 

 

 

 

 

разделитель-точка

-21.35

С плав. зпт.

Float

Float

F

 

 

Дата

Date

Date

D

в фигурных скобках

{03.02.1996}

Логическое

Logical

Log

L

в точках

.Т. .t. .F. .f.

Переменные в Foxpro не описываются, тип переменной определяется по первому присвоен-

ному ей значению.

МАССИВЫ

Массивы бывают одномерные и двумерные. Они описываются командами

DECLARE <массив1> (<вырN1> [,<вырN2>]) [,<массив2>(<вырN3>[,<вырN4>])]…

DIMENSION <массив1> (<вырN1>[,<вырN2>]) [,<массив2>(<вырN3>[,<вырN4>])]…

действие которых идентично: они создают один или несколько массивов. При этом если ука-

зывается только один размер (<вырN1>), то создаѐтся одномерный массив (одна колонка и

<вырN1> рядов), а если два размера – двумерный массив (<вырN2> колонок и <вырN1> ря-

дов).

ПОЛЯ БАЗ ДАННЫХ

Поля баз данных могут присутствовать с кратким (только название поля) или с полным

(вместе с именем базы данных) именем. В последнем случае имя базы отделяется от имени поля точкой или знаком >. Например:

Surname

поле surname текущей базы данных

Name

поле name текущей базы данных

Lastname

поле lastname текущей базы данных

address.surname

поле surname базы данных address

address>surname

поле surname базы данных address

mathemat.surname

поле surname базы данных mathemat

 

ОПЕРАЦИИ

Арифметические: +, -, *, /, ^ (возведение в степень), ** (возведение в степень).

Логические: .NOT. .AND. .OR. (возможно вместо точек ограничивать пробелами), ! (от-

рицание, совпадает с .NOT.), <, >, =, # (не равно), <= (меньше либо равно), >=.

Отдельно обсудим операции сравнения строк (текстовых переменных и полей), так как это имеет существенное значение для практически всех операций поиска. Сравнение с по-

мощью обычного равенства (А=Б) несимметрично: оно производится по длине второго опе-

ранда, поэтому в результате выполнения логической операции “Иванов”=”Иван” мы получим истину (.Т.), а в результате выполнения операции “Иван”=”Иванов” – ложь (.F.). Для тожде-

ственного (симметричного) сравнения используется операция двойного равенства = =. Име-