- •5 Работа в системе visual foxpro
- •5.1 Базовые концепции Visual FoxPro
- •5.1.1 Общая характеристика субд
- •5.1.2 Элементы проекта
- •5.1.3 ИнтерфейсVisualFoxProи создание проекта
- •5.1.4 Принципы создания проекта и его основных компонентов
- •5.1.5 Создание базы данных, таблиц и индексов
- •5.1.5.1 Создание базы данных
- •5.1.5.2 Создание таблиц
- •5.1.5.3 Типы данных вVisualFoxPro
- •5.1.5.4Создание индексов вVisualFoxPro
- •5.1.6 Организация межтабличных связей
- •5.1.7 Обеспечение целостности данных
- •5.2 Извлечение и представление информации средствами интерфейсаVisualFoxPro
- •5.2.1 Средства формирования запросов
- •5.2.2 Организация многотабличных запросов и вычисляемого поля
- •5.2.3 Представление результатов запросов
- •Основы программирования вVisualFoxPro
- •5.3.1 Общие положения и соглашения о синтаксисе команд
- •5.3.2 Разновидности, объявление, инициализация и отображение переменных и массивов
- •5.3.3 Взаимодействие программ вVisualFoxPro
- •5.3.4 Команды структурного программирования
- •5.3.5 Команды обработки особых ситуаций
- •5.3.6 Команды установки программной среды
- •5.3.7 Некоторые важные функции языкаVisualFoxPro
- •5.3.8 Визуальное объектно-ориентированное программирование в Visual FoxPro
- •5.3.8.1 Базовые понятия
- •5.3.8.2 Создание объектов на основе базовых классов и задание свойств объектов
- •5.3.8.3 Определение событий и методов для объектов класса
- •5.3.8.4 Вложенность объектов
- •5.3.9 Команды для работы с меню
- •5.3.10 Пример совместного использование программных файлов, формы и меню
Основы программирования вVisualFoxPro
5.3.1 Общие положения и соглашения о синтаксисе команд
Язык программирования Visual FoxPro обеспечивает возможности как структурного, так и объектно-ориентированного программирования. Он состоит из двух основных элементов: команд и функций. Команды могут быть исполнены по одной непосредственно из командного окна Command. С помощью клавиш управления курсором можно установить курсор на любую из ранее выполненных команд и запустить ее снова. Окно Command позволяет выполнять все стандартные (типовые) операции редактирования.
VF также позволяет создавать и выполнять программы, то есть последовательность команд. Программа набирается и модифицируется в окне редактирования и сохраняется в текстовых программных файлах.
Доступ к окну может осуществляться двумя способами:
File→Open…(Type → Program → выбрать целевой файл из списка.
Набрать в окне Command команду
MODIFY COMMAND <имя файла>
и нажать клавишу Enter.
Для запуска программы можно использовать стандартные средства меню или набрать в окне Command команду
DO <имя программы>.
Программные файлы состоят из предложений языка FoxPro, включающих команды, функции и выражения. Если предложение не умещается на одной строке, его можно перенести, используя символ «;» в конце заполненной строки в позиции предложения, содержащей пробел.
Предложение, начинающееся символом «*» в первой позиции строки, является комментарием и игнорируется при выполнении программы.
Возможен построчный комментарий, который записывается в той же строке, что и предложение программы, но отделяется от него двумя символами амперсанда «&&».
Обычно программа на языке Visual FoxPro состоит из нескольких частей (секций). Каждая из них не является обязательной и используется по необходимости.
Первой обычно бывает Setup Section, область присвоения начальных значений переменным и установки системных параметров. В этой же секции открываются все необходимые файлы и устанавливаются связи между ними.
Второй является Main Section – секция, выполняющая основную работу программы. Обычно это команды управления программой и/или команды обработки данных.
В третьей секции, Closing Section, сосредоточены команды, обеспечивающие сохранность полученной в результате работы информации. Это могут быть команды закрытия файлов, сохранения временных наборов данных и команды, восстанавливающие системные параметры, измененные во второй секции. В конце этой области находятся операторы возврата к вызывающей программе.
Команды и функции Visual FoxPro содержат следующие компоненты: ключевые слова, выражения, имена. Пример приведен на рис. 5.21.
REPLACE <field1> WITH <expr1> [ADDITIVE]
[, <field2> WITH <expr2> [ADDITIVE]]…
[<scope>] [FOR <expL1>] [WHILE<expL2>] [NOOPTIMIZE]
Команда содержит:
- ключевые слова REPLACE, WITH, ADDITIVE, FOR, WHILE, NOOPTIMIZE;
- выражения expr1, expr2, expL1, expL2;
- имена field1, field2.
Рис. 5.21 Пример команды языка VF и ее компонентов
Ключевое слово может задаваться своими первыми четырьмя символами.
Примем следующие правила записи (рис. 5.22).
<текст> – указывают текст, который нужно заменить нужным именем, выражением или ключевым словом (в случае <scope>); сами угловые скобки в команде не набираются;
( ) – включаются практически во все функции Visual FoxPro;
[ ] – указывают необязательные компоненты команд (скобки в команде не набираются);
| – разделяет альтернативные компоненты;
… – указывает на возможность продолжения ряда подобных компонентов.
Буква и номер в конце имени или выражения указывают на тип данных и порядок расположения однотипных компонентов (N-число, C-символ, D-дата, L-логический).
Рис. 5.22 Правила записи команд языка VF
Диапазон записей scope определяет, на какие записи в базе данных действует команда. Он задается следующими способами (рис. 5.23).
ALL – команда действует на все записи в базе данных;
NEXT <expN> – команда действует на <expN> записей, начиная с текущей (например, <NEXT 1> действует на текущую запись, то есть на ту запись, на которую позиционирован указатель в базе данных);
RECORD <expN> – команда действует на заданную запись в базе данных под номером <expN>;
REST – команда действует на ряд записей, начиная с текущей записи и заканчивая последней записью в файле.
Можно указать диапазоны записей, используя в командах предложения FOR <expL1> и WHILE <expL2>.
В случае предложения FOR <expL1> команда обрабатывает только записи, удовлетворяющие заданному логическому условию <expL1>.
Предложение WHILE <expL2> заставляет команду действовать на каждую запись базы данных, пока является истинным логическое выражение <expL2>.
В случае одновременного использования в одной команде FOR <expL1> и WHILE <expL2> предложение WHILE имеет приоритет, то есть обработка записей прекращается сразу же после того, как условие <expL2> станет ложным, хотя условие <expL1> может продолжать оставаться истинным.
Рис. 5.23 Правила задания диапазона записей