Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / lab7OBDFoxmenu.doc
Скачиваний:
8
Добавлен:
07.02.2016
Размер:
79.87 Кб
Скачать

Масиви тимчасових перемінних.

Крім простих тимчасових перемінних FOXPRO також використовує масиви. Задаються масиви за допомогою команди DECLARE (або DIMENSION) із указівкою розмірності масиву в дужках.

DIMENSION a(3,8),b(4)

Дозволений повторний опис масивів з метою економії пам'яті. Найчастіше масиви використовуються при створенні меню, але можна також використовувати масиви для роботи з даними як тимчасове їхнє сховище. Для цього використовують такі команди:

Для одномірних масивів:

SCATTER [FIELDS<поля>][MEMO]TO<масив>[BLANK]/[MEMUAR][BLANK]- перенесення значення полів тільки з поточного запису активного файлу в масив (одномірний) або перемінні (MEMVAR). Якщо масив описаний або його довжина недостатня, він буде створений командою. Параметр [BLANK] - створюється множина незаповнених перемінних або елементів масиву, розміру і типом співпадаючих з полями даних. Якщо не зазначені поля, то переносяться всі поля даних.

Наприклад:

SCATTER FIELDS fam, tab, per TO a MEMO

SCATTER FIELDS fam, tab MEMUAR

Для виконання зворотної дії з масивами служить команда:

GATHER FROM<масив>/MEMUAR[FIELDS<>][MEMO

Для двовимірного масиву використовуються аналогічні команди:

COPY TO ARRAY<масив>[FIELS<поля>][<границя>][FOR<усл>]- пересилає поля з записів поточної бази в елементи рядків масиву. Масив повинний бути оголошений

.APPEND FROM ARRAY<масив>[FOR<усл>][FIELDS<поля>]- виконує зворотну дію.

Крім того існують кілька функцій:

  • функція: AELEMENT() і ASUBSCRIPT() дозволяє з'ясувати місцезнаходження елемента, заданого будь-яким способом.

  • функція ASUBSCRIPT(<масив>,<вир>,<1/2>) повертає з двовимірного масиву положення його елемента номер. Якщо 1- номер рядка 2- номер стовпця.

  • Функція: AELEMENT(<масив>,<вир1>[,<вир2>]) повертає одномірний номер елемента двовимірного масиву по номеру рядка <N1> і стовпця <N2>

Вертикальне popup-меню

Таке меню створюється командами

@ ... MENU і READ MENU TO.

Наступна команда описує форму і зміст меню:

@ Y,X MENU <масив>,<вир1>[,<вир2>] [TITLE <вирс>]

Масив - ім'я одномірного масиву який містить елементи меню символьного типу довжиною до 50 знаків.

Вир1- число елементів меню (до 128).

Вир2- число одночасне зображуваних на екрані меню ( до 17). По умовчанні пред'являються 17 елементів або усі меню.

TITLE <вирс>- заголовок меню, зображений у його верхній частині.

Команда @...MENU тільки відображає меню на екрані. Активація меню здійснюється командою

READ MENU TO <перемінна> [SAVE]

  • Тут <перемінна>- перемінна числового типу, що фіксує номер позиції меню, обраної користувачем. Якщо <перемінна> перед включенням у команду визначена , її значення вкаже початкове положення курсору в меню. Якщо немає або це значення перебуває за межами <масиву>, курсор установиться на перший рядок меню.

  • Параметр SAVE дозволяє зберегти меню на екрані після його використання. Далі воно може бути стерто командою CLEAR.

Виявлення вибору користувача в програмі здійснюється шляхом аналізу <перемінної>, звичайно в структурі DO CASE ... ENDCASE.

П р и м е р:

приведемо програму створення трьохрядкового меню з масиву А(3) і меню-перемінної М, а також саме меню. При його активації курсор виявиться в позиції редагування (m=2).

CLEAR

DIMENSION a(3)

a(1)=' УВЕДЕННЯ ДАНИХ'

a(2)='РЕДАГУВАННЯ'

a(3)=' ВИДАЛЕННЯ'

m=2

@ 8,30 MENU a, 3 TITLE 'МЕНЮ'

. . .

READ MENU TO m

Приклад:

use ccc

clear

c=2

set confirm off

dimension a(3)

a(1)='Перегляд'

a(2)='очищення'

@ 15,15 menu a,2 title 'спробне меню'

read menu to c

do case

case c=1

browse

case c=2

clear

endcase

Соседние файлы в папке Базы данных