
- •Программирование в Visual FoxPro.
- •Процесс программирования.
- •Процедуры и функции.
- •Операторы.
- •Выражения.
- •Создание имен в Visual FoxPro.
- •Определение отношений между таблицами. Применение первичных ключей.
- •Отношения между таблицами.
- •Один ко многим.
- •Многие ко многим.
- •Один к одному.
- •Постоянные отношения.
Программирование в Visual FoxPro.
Visual FoxPro является завершенным объектно–ориентированным языком программирования, с собственной средой интерактивного выполнения команд и выполнения скомпилированных программ. Для разработки собственных программ необходимо наличие полной версии программного продукта, а созданные программы могут работать самостоятельно. При компиляции в среде Visual FoxPro команды преобразуются не в машинный код, а в промежуточный уровень, где каждая команда представлена не текстовой строкой, а одним или несколькими байтами кода со ссылками на настоящий машинный код, выполняющий конкретные процедуры или команды Visual FoxPro.
Visual FoxPro сочетает в себе процедурное и объектно-ориентированные программирование. Процесс программирование можно представить как запись последовательных инструкций, выполняющих определенные задания. Кроме этого в Visual FoxPro возможно два способа управления данными:
Составить определенный план, последовательность команд, и записать его в виде программы.
Вручную, в пошаговом режиме, каждый раз задавая команды в окне Command, или используя главное меню Visual FoxPro.
Преимущества первого способа:
Программа выполняет многочисленные команды некоторой программы автоматически, облегчая набор текста и экономя время.
Программы можно изменять и запускать повторно.
Программа может запускать другие программы.
Из окна Command нельзя запускать некоторые структурные операторы.
Процесс программирования.
Процесс программирования включает следующие шаги:
Постановка задачи.
Разбиение задачи на дискретные сегменты.
Конструирование сегментов.
Тестирование и отладка сегментов.
Сборка сегментов в единую программу.
Тестирование всей программы.
Прежде чем приступать к реализации задачи, необходимо запомнить несколько основных правил:
Четко обрисуйте задачу, прежде чем пытаться ее решить. Иначе вы рискуете получить совсем не то что требовалось, и потому придется вносить много изменений, в том числе и глобальных.
Разбивайте задачу на управляемые части, а не пытайтесь решить ее всю сразу.
Тестируйте и отлаживайте программы по мере их создания.
Оформляйте данные и контейнеры данных так, чтобы ими можно было легко управлять в коде программы.
Постановка задачи.
На стадии постановки задачи необходимо четко сформулировать цели и методы решения задачи, архитектуру пользовательского интерфейса, ограничения и возможности программы. Иногда формализация задачи приводит к нахождению новых путей решения задачи и новых требований как к целостности данных, так и пользовательскому интерфейсу.
Разбиение задачи на дискретные сегменты.
Разбиение задачи на дискретные шаги, это следствие того, что инструкции для Visual FoxPro даются в форме операций, команд и функций.
Конструирование сегментов.
После этого приступаем к формулировке отдельных шагов в терминах команд, функций и операторов Visual FoxPro. Что бы найти требуемую команду или функцию, или выяснить ее синтаксис следует обратится к справке.
Тестирование сегментов.
Позволяет выявить ошибки и своевременно их исправить.
Сборка сегментов в единую программу.
Тестирование всей программы.
Устойчивость программы.
Устойчивая программа не только выполняет необходимые действия, но и предупреждает и обрабатывает отдельные ошибки. Это осуществляется внедрением в программу специальных проверочных блоков. Такие блоки могут выполнятся перед началом работы сегмента, включены внутрь сложного сегмента, или обрабатывать результаты работы сегмента.
Программирование в Visual FoxPro.
В Visual FoxPro используют следующие типы данных:
Х
Тип данных
Описание
Размер
Диапазон
Character
Символьный
Произвольный текст
1 байт на символ;
до 254 байт
Любые символы
Currency
Денежная сумма
8 байт
От –922337203685477.5808
До 922337203685477.5807
Date
Хронологическая
дата
8 байт
От 01/01/100
До 12/31/9999
DateTime
Хронологическая
дата + время
8 байт
От 01/01/100
До
12/31/9999, +
от 00:00:00 до 11:59:59
Logical
Numeric
Дополнительно Visual FoxPro
поддерживает только для полей
баз данных:
Double
Число с плавающей
запятой
8 байт
От
+/-4.94065645841247E-324
до +/-1.79769313486232E308
Float
Такое же как и
Numeric
8 байт в памяти;
от 1 до 20 в таблице
От -.9999999999E+19
До 9999999999E+20
General
Ссылка на OLE
объект
4 байта в таблице
Ограничен только
доступной памятью
Integer
Целочисленные
значения
4 байта
От –2147483647
До 2147483646
Memo
Ссылка на блок
данных
4 байта в таблице
Ограничен
доступной памятью
Character
(Двоичный)
Любые символьные
данные, которые нужно сопровождать
без изменения кодовых страниц
1 байт на символ
до 254 байтов
Любые символы
Memo
(Двоичный)
Любые Memo
поля, которые нужно сопровождать без
изменения кодовых страниц.
4 байта в таблице
Ограничен
доступной памятью
В зависимости от объема, типа и предполагаемого использования данных выбирается контейнер для их хранения. Доступность данных определяется тем, каким образом и в каком месте они объявлены. Эта сфера доступности или влияния называется областью видимости. Visual FoxPro позволяет хранить данные в константах, переменных, массивах, записях и объектах.
Константы. (Constants). Это именованный элемент данных, который сохраняет неизменное значение при всех операциях. Константы могут содержать значения любых типов.
Для создания и присвоения значения константе используется директива препроцессора #DEFINE.
#DEFINE «Эта таблица не найдена»
Для отмены константы используйте:
#UNDEFINE tablerr1
Переменные. (Variables). Переменная это область памяти, содержимое которой может изменяться во время выполнения программы. Переменная может содержать значения любого типа, которые можно изменить в любое время, что позволяет отслеживать пошаговую работу приложения.
Для создания и изменения значения переменной используют операторы «STORE» или «=».
STORE 7 TO nVAR
nVSR = 7
Переменные существуют ,пока выполняется приложение или выполняется сеанс Visual FoxPro, в котором они созданы. Область видимости задается при помощи ключевых слов:
LOCAL
PRIVATE
PUBLIC
LOCAL создает локальные переменные, которые могут использоваться и модифицироваться только в той программе, где были созданы, и которые недоступны в программах более высокого или более низкого уровня. Локальные переменные и массивы освобождаются при прекращении выполнения содержащей их программы.
PRIVATE скрывает от текущей программы переменные и массивы, определенные в вызывающей программе. Имена этих переменных можно использовать в текущей программе, не влияя на исходные переменные. После окончания этой подпрограммы все указанные в PRIVATE переменные становятся доступными.
PUBLIC определяет глобальные переменные или массивы. Этот вид может использоваться и модифицироваться из любой программы, запущенной в текущем сеансе Visual FoxPro. Переменные организованные в окне Command всегда являются глобальными.
Если переменная имеет то же имя что и поле, Visual FoxPro отдает предпочтение полю, поэтому для имен переменных часто используют следующую конструкцию:
m.primer
Массивы. (Arrays). Массивы - это упорядоченные наборы значений данных, эти значения называют элементами, и на них ссылаются по их номерам. Массивы располагаются в оперативной памяти, что обеспечивает быстрый доступ и простоту обработки данных. Элементы массива можно легко задавать и адресовать и манипулировать. Пределы видимости такие же как и у переменных. Один массив может содержать переменные разных типов.
Создать массив можно при помощи команд:
Dimension
Declare
А задать значения как и переменной, используя знак равенства, указав имя и позицию элемента:
Dimension Aname [5,2]
Aname [1,2] = 9495
Поля. (Fields). Поле это именованная позиция в записи, содержащая данные определенного типа. Поля могут содержать любой тип данных или тип поля Visual FoxPro. Тип поля задается при создании таблиц. Доступно пока открыта таблица, в которой содержится данное поле.
Записи. Запись - набор полей таблицы. Одна запись может содержать до 255 полей, все записи в таблице содержат одинаковые поля.
Объекты. (Object Properties). Объект - это экземпляр класса. Класс - это описание данных и функционирования группы объектов. Объектами в Visual FoxPro могут быть формы, наборы форм и элементов управления. Чтобы сократить объем программного кода и улучшить возможности его повторного использования при реализации согласованных, надежно работающих приложений, следует пользоваться объектами Visual FoxPro. Каждый объект реагирует на определенные события и имеет свойства и методы. Манипулирование объектами производится с помощью событий, методов и свойств.