Visual FoxPro является постоянно развивающейся



Что нового появилось в Visual FoxPro 8.0

Visual FoxPro является постоянно развивающейся системой. По сравнению с предыдущей версией, в Visual FoxPro 8.0 сделан еще один шаг в расширении функциональных возможностей системы, улучшены имеющиеся средства, касающиеся интерфейса среды разработки и обработки ошибок, добавлены новые команды, базовые классы и функции и расширены имеющиеся.
Новая версия обладает всеми возможностями для работы с XML Web-сервисами, а также улучшенной совместимостью с Microsoft Visual Studio.NET и Microsoft SQL Server 2000. Вид диалоговых окон, открывающихся при создании и открытии объектов, приведен к стандарту Windows.
В Visual FoxPro 8.0 появился Task Pane Manager (Менеджер панели задач). В нем сосредоточены функции, призванные облегчить разработку приложения. Содержащиеся в окне Task Pane Manager (Менеджер панели задач) ссылки позволяют запустить мастера создания приложения и базы данных, открыть справочную систему, приложение или базу данных из списка открывавшихся в последнее время, перейти на сайт Microsoft Visual FoxPro в Интернете, просмотреть примеры, поставляемые с системой, и многое другое.
К средству, призванному облегчить разработку, относится также панель Toolbox (Инструментарий), отображающая элементы, добавленные на панель автоматически в результате использования их при создании приложений. Для ее открытия предназначена команда Toolbox (Инструментарий) из меню Tools (Сервис) и одноименная кнопка стандартной панели инструментов.
В Visual FoxPro расширены средства конструктора таблицы. При создании таблицы теперь можно применять построитель выражения для поля Caption (Надпись). Для полей таблиц можно использовать новый тип данных Integer (Autolnc). Значения данного поля увеличиваются автоматически с заданным шагом при добавлении в таблицу новой записи. Этот тип данных удобно применять в случае, если поле содержит уникальные значения. Поле с таким типом доступно только для чтения.
Расширены функции конструктора меню. В процессе разработки можно перемещать созданные пункты меню по иерархической структуре, а также располагать слева от пункта ниспадающего меню графическое изображение. В конструкторе представлений данных и в конструкторе запросов расширены возможности объединения таблиц.
В Visual FoxPro появился новый класс CursorAdapter, реализующий функции универсального доступа к данным. Создаваемый на его основе объект CursorAdapter (Адаптер курсора) поддерживает широкий диапазон источников данных, используемых при создании форм и отчетов и настраиваемых с помощью построителя:

непосредственное соединение с базой данных; ODBC; ActiveX Data Object (ADO); XML. В редакторе кода Visual FoxPro появились дополнительные возможности:

расширенные средства поиска нужной информации; автоматическое форматирование исходного текста с целью улучшения читабельности; печать исходного кода в цветах. Для настройки конструктора отчетов в Visual FoxPro 8.0 можно использовать вкладку Reports (Отчеты) диалогового окна Options (Параметры) которое открывается командой Options (Параметры) из меню Tools (Сервис)





Знакомство с Visual FoxPro



Глава 1. Знакомство с Visual FoxPro

Реляционные базы данных Современные реляционные СУБД Объекты Visual FoxPro Что нового появилось в Visual FoxPro 8.0

Объекты Visual FoxPro



Объекты Visual FoxPro

Visual FoxPro состоит из отдельных компонентов, которые используются для хранения информации, ее отображения и редактирования.
В Visual FoxPro вся информация хранится в базе данных, которая состоит из таблиц, отношений между таблицами, индексов, триггеров и хранимых процедур. Каждая таблица имеет уникальное имя и хранится в отдельном файле, наименование которого совпадает с именем таблицы. Созданный файл имеет расширение DBF.
Каждая создаваемая таблица может иметь связанные с ней индексы, используемые для упорядочения данных и быстрого поиска необходимых записей, причем одна таблица может иметь несколько индексов.
Для хранения значений полей типа Memo и General применяются отдельные файлы. Memo-поля таблиц содержат текстовую информацию, а поля типа General используются, как правило, для хранения двоичной информации и данных других приложений, работающих в среде Windows.
В Visual FoxPro реализованы триггеры, которые позволяют централизованно обрабатывать события, возникающие при любых изменениях в базе данных. Вы также можете создавать хранимые процедуры, которые являются частью базы данных и могут использоваться при описании таблиц, для проверки введенных данных, определения значения по умолчанию и т. п.
Чрезвычайно удобным и полезным средством доступа к базе данных являются представления данных. Представления данных позволяют объединять данные таблиц и отображать их в более удобном виде. Вы можете выбрать только интересующие вас поля таблиц, объединить несколько полей в одно поле, вычислить итоговые значения и задать новые имена полей таблицы. Как правило, количество представлений в базе данных намного превосходит количество таблиц. По мере эксплуатации базы данных их количество непрерывно растет. Во многих информационных системах доступ к данным, включая просмотр, добавление и редактирование, осуществляется только с помощью представлений данных. Этот подход позволяет осуществить гибкое управление доступом к информации. При использовании представлений для выборки данных в формах, отчетах, при создании запросов
и в программах применяются те же правила, что и для таблиц. Редактирование данных, включенных в представление, возможно только при определенных условиях. Например, в том случае, если оно создано на основе только одной таблицы.
Для отображения и редактирования данных используются формы, отчеты, запросы и программы. При создании форм, отчетов и запросов применяются конструкторы. Поэтому эти компоненты часто называют конструкторскими объектами. Формы и отчеты являются составными объектами, так как они состоят из более мелких объектов (таких как поля, кнопки, диаграммы, рамки, OLE-компоненты и т. п.), которые называются объектами интерфейса.
Формы используются для просмотра или ввода данных в таблицы. Данные можно вводить непосредственно в таблицы, но использование формы является более быстрым и более эффективным способом ввода. Форма содержит некоторые или все поля таблиц, в которые вы вводите информацию. Для создания форм вы можете использовать мастер создания форм или конструктор форм. Мастер форм содержит целый ряд шаблонов, которые определяют соотношение между помещаемыми в форму таблицами, вид отображения данных и порядок размещения полей. Для создания сложных форм применяется конструктор форм.
Отчеты используются для печати содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов в Visual FoxPro, как и для форм, используются мастер и конструктор отчетов. С помощью мастера отчетов вы можете быстро создать собственный отчет на основе имеющихся шаблонов. Применение конструктора отчетов позволяет создавать отчеты произвольной сложности, включая многоуровневую группировку данных и размещение вычисляемых полей.
Запросы являются средством выборки данных из одной или нескольких таблиц. В Visual FoxPro для создания запроса вы можете использовать как конструктор запросов, так и специализированный язык Structured Query Language (SQL). Результаты выполнения запроса могут отображаться в форме, выводиться в виде отчетов и диаграмм или сохраняться в указанной вами таблице.
Программы, написанные на языке Visual FoxPro, являются объектно-ориентированными. С помощью них вы обрабатываете события в форме, создаете объекты, осуществляете различные вычисления, управляете базой данных. Для удобства работы вы можете объединить программы в библиотеки.
Для создания форм в Visual FoxPro можно использовать не только базовые классы, но и создавать собственные. Например, вы можете определить класс форм, в котором задан определенный цвет фона и стандартный набор кнопок для управления данными. Чтобы стандартизировать разработку, полезно иметь один или несколько пользовательских классов для каждого базового класса. Классы, созданные в Visual FoxPro, хранятся в библиотеках классов.
Для объединения компонентов создаваемого приложения используется проект, в который включаются все перечисленные компоненты. Использование проекта упрощает разработку приложения и его сопровождение.
Каждый компонент хранится в отдельном файле, причем имена файлов, содержащих основные компоненты, вы задаете самостоятельно, а наименования файлов, содержащих объекты, связанные с таблицей, совпадают с именем таблицы. В зависимости от типа содержащегося в нем объекта Visual FoxPro автоматически присваивает каждому файлу расширение, которое помогает в идентификации объекта. Список расширений файлов приведен в табл. 1.1.



Реляционные базы данных



Реляционные базы данных

Перемены, происходящие в нашей стране в последнее время, не могли не затронуть областей информатики и вычислительной техники. Еще десять лет назад работа с базами данных была уделом профессиональных программистов. Сами системы не были предназначены для простого пользователя. Основным потребителем таких систем был военно-промышленный комплекс. С появлением банков, акционерных обществ, частных компаний базы данных нашли более широкое применение. Люди понимают, что информация — это деньги. Ее потеря или несвоевременное получение могут дорого стоить. Именно этим можно объяснить столь бурный рост информационных технологий и стремительное развитие систем управления базами данных (СУБД).

Первые системы управления базами данных появились в середине шестидесятых и поддерживали иерархическую модель данных, в которой между записями существовали отношения предок/потомок. Спустя короткое время, были разработаны сетевые базы данных, в основу которых была заложена значительно более сложная сетевая модель. У каждой из этих моделей имелись свои достоинства и недостатки, которые сыграли ключевую роль в развитии реляционной модели.
В 1970 году статья научного сотрудника компании IBM доктора Е. Ф. Кодда о реляционной модели данных произвела революцию в подходе к хранению и обработке информации. На основе этой модели в семидесятые годы были разработаны первые реляционные базы данных, а в настоящее время они рассматриваются как стандарт для современных коммерческих СУБД.
В реляционных базах данных вся информация сведена в таблицы, строки и столбцы которых называются записями и полями соответственно. Эти таблицы получили название реляций, поэтому модель стала называться реляционной.
Записи в таблицах не повторяются. Их уникальность обеспечивается первичным ключом, содержащим набор полей, однозначно определяющих запись. Для быстрого поиска информации в базе данных создаются индексы по одному или нескольким полям таблицы. Значения индексов хранятся в упорядоченном виде и содержат ссылки на записи таблицы. Для автоматической поддержки целостности связанных данных, находящихся в разных таблицах, используются первичные и внешние ключи. Для выборки данных из нескольких связанных таблиц используются значения одного или нескольких совпадающих полей. Например, таблица регистрации междугородних телефонных разговоров может содержать следующие сведения:

Номер заказа

Код услуги

Номер телефона

Дата разговора

Код города

Продолжительность разговора

Стоимость

Примечание

Записи о междугородних разговорах записываются в книгу регистрации в табличном виде в хронологическом порядке (рис. 1.1). Каждая строка имеет одинаковую структуру и состоит из восьми полей. В рассматриваемом Примере ЭТО ПОЛЯ: Номер заказа, Код услуги, Номер телефона, Дата разговора, Код города, Продолжительность разговора, Стоимость.



Книга регистрации междугородних разговоров



Рис. 1.1. Книга регистрации междугородних разговоров


Замечание
Замечание

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

Одним из важных достоинств баз данных является быстрая выборка хранимой в ней информации. Используя телефонно-адресную книгу, в которой данные упорядочены по фамилиям, вы можете найти номер телефона по фамилии его владельца. Однако, если записи в книге регистрации междугородних разговоров упорядочены в хронологическом порядке, вам придется потратить значительное время на получение списка клиентов, заказывавших разговор с определенным городом, или на выяснение того, в каком районе проживают абоненты, приносящие наибольшую прибыль телефонной компании своими продолжительными разговорами.
На помощь приходят компьютерные базы данных. Они, несмотря на огромный объем хранящейся в них информации, обеспечивают высокую скорость поиска необходимой информации. В таких базах данных пользователь может выполнить поиск по любому интересующему его параметру. Кроме того, компьютерные базы данных очень компактны. База данных, содержащая несколько тысяч записей, может поместиться на одной дискете.

Учет междугородних телефонных разговоров с помощью реляционных таблиц



Рис. 1.2. Учет междугородних телефонных разговоров с помощью реляционных таблиц






Отчет в табличном виде, содержащий информацию о клиентах телефонной компании



Рис. 1.3. Отчет в табличном виде, содержащий информацию о клиентах телефонной компании



Информационное письмо, использующее сведения из базы данных



Рис. 1.4. Информационное письмо, использующее сведения из базы данных




Графическое представление...



Рис. 1.5. Графическое представление информации о количестве междугородних телефонных переговоров по клиентам


осуществлять необходимые вычисления при формировании отчетов и выборке данных из таблиц.

В настоящее время имеется более десяти популярных СУБД для персональных компьютеров. Традиционно одной из наиболее распространенных в России и странах СНГ является СУБД Visual FoxPro, новая версия которой Visual FoxPro 8.0 содержит дополнения и улучшения, расширяющие возможности системы.

Современные реляционные СУБД



Современные реляционные СУБД

Для создания базы данных, изменения ее структуры, редактирования и выборки данных используются системы управления базами данных. Современные реляционные системы управления базами данных содержат:

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

На рис. 1.2 показан пример учета междугородних телефонных разговоров с помощью двух таблиц реляционной базы данных в Visual FoxPro.
С помощью средств СУБД вы можете:

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

Расширения имен файлов объектов Visual FoxPro



Таблица 1.1. Расширения имен файлов объектов Visual FoxPro










Наименование объекта Расширения
Проект PRJ, FPC, CAT, PJX, PJT
База данных DBC
Таблица Visual FoxPro DBF
Составной индексный файл CDX
Memo-поле и поле типа General FRT
Форма SCX
Запрос
QPR
Отчет
FRX, FRM
Почтовая наклейка
LBX, LBL
Меню
MNX
Библиотека класса
VCX
Программа, библиотека программ,
текст меню, текст запроса
PRG, FXP, MPR, QPR
Рисунок
BMP, GIF, GIF, ICO, DIB, CUR, ANI
Звукозапись WAV