Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
baz_dan / Главы6-7.doc
Скачиваний:
54
Добавлен:
12.03.2015
Размер:
137.73 Кб
Скачать

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

  1. Ветвления

1.1. If <условие> 1.2. Do case

<команды> Case <условие1>

[Else <команды>

<команды>] Case <условие2>

Endif <команды>

…………..

[Otherwise

<команды>]

Endcase

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

    1. Do while <условие> 2.2 For i=n To m [Step l ]

<команды> <команды>

Enddo Endfor

2.3 Цикл сканирования БД

Scan [<границы>][For <условие>][While <условие>]

<команды>

Endscan

Пример программы работы с БД в FoxPro:

Пусть имеется БД «Успеваемость студентов», состоящая из трех таблиц: STUDENT (NS, FIO, GRUPPA)

DISCIPL (ND, NAME_D, KAF)

YSPEV (NS, ND, ОС)

Выдать список студентов, получивших 5 по математике:

SELECT A && открыли рабочую область А

USE STUD && в рабочую область А поместили файл STUD

SELECT В && открыли рабочую область В

USE DISCIPL && в рабочую область В поместили файл DISCIPL

SELECT С && открыли рабочую область С

USE YSPEV && в рабочую область С поместили файл YSPEV

SELECT В && переход в область B

LOCATE FOR NAME_D=”математика” && поиск ND математики

IF FОUND( )

ST=2

SELECT С && переход в область С

LOCATE FOR ND = В. ND AND ОС=5

IF FOUND ()

DO WHILE FOUND ()

SELECT A

LOCATE FOR NS = C. NS

IF FОUND( )

@ ST, 1 SAY FIO

@ ST,20 SAY GRUPPA

ENDIF

ST = ST + 1

SELECT С

CONTINUE

ENDDO

WAIT "Нажмите ввод"

ELSE

@ 1,1 SAY "Отличников по математике нет"

ENDIF

ENDIF

CLOSE ALL

RETURN

6.8.Процедуры в FoxPro

Все программы в FoxPro могут быть оформлены в виде внешних процедур, которые создаются с помощью команды MODI COMM, или же в виде внутренних процедур. Внутренние процедуры располагаются внутри основных программ в любом месте и оформляются следующим образом:

PROCEDURE <имя процедуры>

[PARAMETERS <список параметров>]

……………………

RETURN

Список параметров и во внешней и во внутренней процедуре не обязателен. Но если же он все- таки присутствует, то в процедурах должен стоять в первой строке. Вызов и внешних и внутренних процедур осуществляется командой:

DO <имя программного файла/имя процедуры> [WITH<список параметров>].

Если процедуры оформлены как внешние (программный файл на внешнем носителе), то основная программа, использующая их, выглядит компактно, но при каждой загрузке в оперативную память тратится довольно много времени, особенно при многократном использовании этой процедуры. В этом случае, конечно, лучше использовать внутренние процедуры, т.к. они загружаются в основную память один раз вместе с основной программой, в теле которой они расположены. Но при наличии большого количества внутренних процедур, сама программа становится довольно громоздкой и «нечитабельной». С целью использования преимуществ внешних и внутренних процедур, в FoxPro предлагается использовать процедурные файлы, которые создаются с помощью MODI COMM < имя процедурного файла > и содержат только процедуры:

PROCEDURE < имя 1-ой процедуры >

…………………………….

RETURN

PROCEDURE < имя 2-ой процедуры >

…………………………….

RETURN

…………………………………………….

……………………………………………..

PROCEDURE < имя n-ой процедуры >

…………………………….

RETURN

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

SET PROCEDURE TO <имя процедурного файла>,

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

SET PROCEDURE TO,

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

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