Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы 2 / ЛекцБазы данных.doc
Скачиваний:
59
Добавлен:
26.04.2015
Размер:
1.08 Mб
Скачать

7.9. Построение экранных форм

Допустим необходимо построить карту ввода

Карта ввода

Фамилия

Доложность

66

Программа карты ввода будет иметь следующий вид

SET TALK OFF

CLEAR

USE SOTR

P = l

V = 'Y'

DO WHILE P = l

@ 5,5 TO 1 2,60 DOUBLE

@ 6,7 SAY "КАРТА ВВОДА"

APPEND BLANK

@ 8,7 SAY "Фамилия" GET FIO

@ 10,7 SAY "Должность" GET DOLGN

READ

@ 14,8 SAY "Ещё добавить? Y/N" GET V

READ

IF V  'Y'

EXIT

ENDIF

CLEAR

ENDDO

CLEAR ALL

Пример экранной формы ввода

Карта ввода

Фамилия студента

Группа Год рождения

Адрес Телефон

SET TALK OFF

USE STUD

P = l

DO WHILE P = l

CLEAR

@ 5,5 TO 12,60 DOUBLE

@ 6,20 SAY "КАРТА ВВОДА"

APPEND BLANK

67

PFAM = FAM

PGRUP = GRUP

PDTR = DTR

PADRES = ADRES

PTLF = TLF

@ 8,7 SAY "Фамилия студента" GET PFAM

@ 9,7 SAY "Группа" GET PGRUP

@ 9,20 SAY "Дата рождения" GET PDTR

@ 10,7 SAY "Адрес" GET PADRES

@ 10,40 SAY "Телефон" GET PTLF

READ

REPLASE FAM WITH PFAM

REPLASE GRUP WITH PGRUP

REPLASE DTR WITH PDTR

REPLASE TLF WITH PTLF

@ 15,10 SAY " Будете продолжать ввод?"

@ 15, col () PROMPT "Да"

@ 15, col () PROMPT "Нет"

MENU TO P

DO CASE

CASE P = l

LOOP

CASE P=2

EXIT

ENDCASE

ENDDO

RETURN

7.10. Работа с массивами

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

Массивы объявляются с помощью оператора DIMENSION, например, DIMENTION A(3,8), В(4).

1) Работа с одномерными массивами (рис. 7.9):

SCATTER [FIELDS <список полей>] ТО <массив>

Массив заполняется последовательно значениями указанных полей. Если операнд FIELDS опущен, выбираются все поля подряд. Полей выбирается не больше, чем число элементов массива.

Обратная операция (заполнение полей из массива) производится командой:

GATHER FROM <массив> [FIELDS <список полей>]

Значения элементов массива последовательно переписывается в указанные поля. Если операции FIELDS нет, заполняются все поля, начиная с первого.

68

Иванов

Инженер

500

SOTR

SCATTER TO A

Фио Должность Оклад

Иванов Инженер 500

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

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

GATHER FROM A

Рис.7.9. Схема взаимодействия базы данных с массивом

2) Работа с двумерным массивом:

COPY TO ARRAY <массив> [FIELDS <поле>] [FOR / WHILE <условие>]

APPEND FROM ARRAY <массив> [FOR <выражение>] [FIELDS <поле>]

Пример 7.5. Записать в массив результаты сдачи экзамена учениками и вычислить средний балл.

SET TALK OFF

DIME A(10)

FOR i = 1 TO 10

INPUT A( i )

ENDFOR

C = 0

FOR i = 1 TO 10

C = C + A( i )

ENDFOR

C = C / 10

? “Средний балл”, C

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